Changes

Jump to: navigation, search

Opening Book

2,154 bytes added, 04:04, 11 September 2021
Purposes
=Purposes=
* Save time: Chess programs could use [[Search|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 [https://en.wikipedia.org/wiki/Chess_opening_book_%28literature%29 literature] about different opening linesIn contrast, opening books can play opening moves almost instantly without searching nor heavy computing and help to save time.* Provide a higher quality of play: Searching only even with large depths can't see deep tactics, strategy, compensation, . It may lose temporarily material for long term advantage.* Provide variety: as there already exists a lot of [https://en.wikipedia.org/wiki/Chess_opening_book_%28literature%29 literature] about different opening lines. As book moves are usually can be chosen [[Pseudorandom Number Generator|randomly]], whereas searches are more or less deterministic.
=Types=
Opening books are typically stored in two main formats:
==Text==
The most advantage is that by using text form is that they are readable, understandable, and editable by humans without any special softwareand can be viewed, edited with normal text editors. However, the main disadvantage is that they may take too much space as well as time for searching since an item may take from 50 bytes (for FEN strings) to hundreds of bytes (for PGN text). If we store openings "continuously" (all possible opening positions) both data size and searching time become too huge and become unacceptable for playing. They are usually missing weight values (to compare between items to know which ones are better) either. In practice, those opening books are usually very small with some lines or positions only, they cannot are hard to be used for real game playing but for testing.
They are stored in typical ways for games and positions:
* [[PGN]]: Opening lines are stored as individual games
<span id="BookBuilder"></span>
* Special text formats: In 1999, [[Marc-Philippe Huget]] published a '''Book Builder''' <ref>[https://www.stmintz.com/ccc/index.php?id=44407 Web site updated and new program Book Builder] by [[Marc-Philippe Huget]], [[CCC]], February 24, 1999</ref> in conjunction with his engine [[La Dame Blanche]], a standalone open source program <ref>[http://www.quarkchess.de/ladameblanche/ Book Bilder of La Dame Blanche] by [[Marc-Philippe Huget]], hosted by [[Thomas Mayer]]</ref> to convert a [[Portable Game Notation|PGN file]] into an opening book of the format proposed by [[Kathe Spracklen]] <ref>[[Kathe Spracklen]] ('''1983'''). ''Tutorial: Representation of an Opening Tree''. [[ICGA Journal#6_1|ICCA Newsletter, Vol. 6, No. 1]]</ref>:
<pre>
(e4(e5)(c5))(d4d5)) etc.
==Binary==
Binary books have some important advantages, especially for computer chess engines: space-efficient, fast on accessing and searching, more useful information. Opening databases built on all positions At the most simple form, they are usually more spacejust a conversion of above text-efficient opening books into binary, in the ready form for software and overcome save text-binary converting steps. However, the problem major number of top books is built and worked with hash values from [[Transposition|transpositions]]. Often these positions are each position is stored as a hash values to allow fast access. Some opening database formats store with each position as well as value (8 bytes) and some extra information about it. (e.g. such as the 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). To save space those extra information typically about 2-8 bytes. For example, [[PolyGlot]] uses 16 bytes for each item, including hash, move, weight, learning values. Items of a book should be sorted by their hash. So when a chess program has to decide on a move, it will look up (by using binary-search) using the hash value of the current position to collect all positions information come with that could arise after moving in the database hash value and then make a decision upon the information given with each position. Depends on designs, an item may take 10 - 16 bytesit.  To build and/or edit those opening books, users need to use special software.
The most popular format is [[PolyGlot]].
* [[Chess Opening Wizard]] (COW)
* [[Banksia GUI]]
 
=Book Playing=
* [[Engines]]: They can directly use opening books to make move. Some engines use external books, some others integrate books inside their codes. Those engines need both opening book code and book data to run
* [[GUI]]: They can play opening books thus engines don't need to deal with and they just start computing from the middle period only. This way is quite popular because of some advantages (compared with letting engines play opening books themselves): simplifier for chess engines, save space, easier to manage opening books, more various ways to select openings, more fair-play to compare engines... The main disadvantage is that engines can’t or hardly use some book learning techniques
=Quotes=
* [http://groups.google.com/group/gnu.chess/browse_frm/thread/329b9401059f679b gnuchess.book in Lisp] by [[Steven Edwards]], [[GNU Chess#NewsGroup|gnu.chess]], January 23, 1990
==1995 ...==
* [https://groups.google.com/d/msg/rec.games.chess.computer/twuuIKTUqRw/bCN6Jn9zGOcJ Opening taxonomy] by [[Hugh S. Myers]], [[Computer Chess Forums|rgcc]], September 12, 1995
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/656439670bd7c7fb The MCHESS5 computer killer book...] by [[Ed Schroder|Ed Schröder]], [[Computer Chess Forums|rgcc]], October 14, 1996
* [http://groups.google.com/group/rec.games.chess.computer/browse_frm/thread/f14614c6bdebff95 Killer Books] by [[Andreas Mader]], [[Computer Chess Forums|rgcc]], October 29, 1996
'''2019'''
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=70518 Book creation papers] by [[Robert Pope]], [[CCC]], April 18, 2019
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71386 Database snapshot] by [[Bojun Guo|noobpwnftw]], [[CCC]], July 27, 2019* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=71764 ChessDBCN] by [[Bojun Guo|noobpwnftw]], [[CCC]], September 09, 2019
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=72432 Polyglot FRC/960 Opening Book] by [[Dennis Sceviour]], [[CCC]], November 27, 2019 » [[PolyGlot]], [[Chess960]]
==2020 ...==
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=75205 How many Elo points is a book?] by [[Chris Whittington]], [[CCC]], September 25, 2020 » [[Playing Strength]]
* [http://www.talkchess.com/forum3/viewtopic.php?f=2&t=75878 Chess opening database with names] by Peperoni, [[CCC]], November 20, 2020 » [[ECO]]
'''2021'''
* [http://www.talkchess.com/forum3/viewtopic.php?f=7&t=77507 Opening book implementation questions] by Pedro Duran, [[CCC]], June 18, 2021
=External Links=
* [http://www.g-sei.org/wp-content/Users/Fauzi/fauzi.html Fauzi's Opening Books] by [[Fauzi Akram Dabat]], [[G 6]] site
==Online Opening Tree==
* [https://www.chessdb.cn/queryc_en/ Chess Cloud Database Query Interface] by [[Bojun Guo|noobpwnftw]] <ref>[https://github.com/noobpwnftw/chessdb GitHub - noobpwnftw/chessdb: ChessDB]</ref>* [https://fsmosca.github.io/ChessDB-Online-Book/ ChessDB Online Opening Book] by [[Ferdinand Mosca]]
* [https://database.chessbase.com/?lang=en/ Chess database with eight million games. Openings, players, tournaments - Online] - [[ChessBase (Database)|ChessBase]]
* [http://www.chessgames.com/perl/explorer Chess Opening Explorer] from [http://www.chessgames.com/index.html chessgames.com]

Navigation menu