Polyglot
ALPHA - Polyglot chess opening book program
Install / Use
/learn @ddugovic/PolyglotREADME
POLYGLOT(6) POLYGLOT(6)
NAME PolyGlot - Winboard protocol to UCI protocol adapter - book engine for Polyglot books - a collection of utilities for creating and analyzing opening books - a utility for analyzing epd files - a perft counter
SYNOPSIS polyglot [configfile] [-noini] [-ec engine] [-ed enginedirectory] [-en enginename] [-log true/false] [-lf logfile] [-pg <name>=<value>]* [-uci <name>=<value>]*
polyglot make-book [-pgn inputfile] [-bin outputfile] [-max-ply ply]
[-min-game games] [-min-score score] [-only-white] [-only-black]
[-uniform]
polyglot merge-book -in1 inputfile1 -in2 inputfile2 [-out outputfile]
polyglot info-book [-bin inputfile] [-exact]
polyglot dump-book [-bin inputfile] -color color [-out outputfile]
polyglot [configfile] epd-test [engineoptions] [-epd inputfile]
[-min-depth depth] [-max-depth depth] [-max-time time] [-depth-delta
delta]
polyglot perft [-fen fen] [-max-depth depth]
DESCRIPTION PolyGlot as adapter and book engine PolyGlot is a "UCI adapter". It connects a GUI interface (such as XBoard, Winboard, Arena or Chessbase) to a UCI chess engine.
By specifying an opening book (in PolyGlot book format) chess engines
can transparently use such books.
PolyGlot understands the two main GUI protocols: UCI and xboard.
Normally the protocol will be auto detected but this can be overridden
in the configuration file.
In xboard mode PolyGlot fully translates between the xboard and UCI
protocols. In addition it tries to solve known problems with other
adapters. For instance, it detects and reports draws by fifty-move
rule, repetition, etc ... It also supports Chess960.
When in UCI mode PolyGlot mostly passes commands from the GUI to the
engine and vice versa, except that it will play book moves on behalf of
the engine when the occasion arises.
The engine options are exported as UCI options in UCI mode and as
"feature option=" commands in xboard mode. The latter form an extension
of the xboard protocol as defined by H.G. Muller.
Options which normally appear in the [PolyGlot] section of the config
file (see below) are exported as options with their name prefixed by
"Polyglot". This makes it easy to filter them in the GUI.
NOTE: Not all options are exported, only those that make sense in the
given mode.
Book making utilities PolyGlot supports the "PolyGlot opening book format". This is the defacto standard non-proprietary opening book format. It is fully documented here
http://hardy.uhasselt.be/Toga/book_format.html
Roughly speaking a PolyGlot opening book is a collection of triples
(position, move, weight). A "position" is represented by a 64-bit
Zobrist hash key. The weight is proportional to the probability the
move should be played.
Other opening book formats such as ChessBase's .ctg format and Arena's
.abk format are undocumented and proprietary. They can only be used by
their own GUIs.
PolyGlot can compile a pgn file into a binary PolyGlot book and
furthermore it can merge two such binary books into a third one.
PolyGlot can also extract some useful information from PolyGlot books.
The utility "dump-book" dumps the "lines" in a book for a given color.
By definition a line is a sequence of moves (from the starting
position) in which the given color makes only book moves and the other
color makes arbitrary moves (i.e. not necessarily book moves).
Since a PolyGlot book is built up from positions and not lines there
may be (and there usually are) many positions in the book that are not
on a "line" as defined in the previous paragraph. It is convenient to
call such positions "isolated" positions. The utility "info-book"
counts such isolated positions.
Some of the isolated positions are provably unreachable and they could
in principle be deleted from the book. For example if a book contains
only the move "e4" in the starting position but also the position after
"d4 d5" then this last position is provably unreachable since it
requires white to make a non-book move when a book move is available.
Such situations arise frequently from the priority rules in merging
books.
Unfortunately not all isolated positions are provably unreachable and
it is difficult to identify the latter. If invoked with "-exact" the
utility info-book will attempt to count the isolated positions which
require a player to make a non-book move when a book move is available.
Due to the possibility of transpositions this is not a fool proof
method.
Epd test mode In epd test mode, PolyGlot will search positions in an epd file and record the number of times the right best move was found. The arguments specify when to stop the search in any given position.
Perft counts A perft count is the number of legal move sequence in a given position up to a given depth. PolyGlot can perform such perft counts. It is however much slower than other more dedicated programs.
OPTIONS When PolyGlot is invoked as an adapter of in epd-test mode it gets its options from a config file and then from the command line. The default config file is "polyglot.ini" but an alternative one may be optionally included as first argument. The config file format is described below.
The following engine options may be specified on the command line.
-noini
Do not use a config file, even if one was specified on the command
line.
-pg The argument is a string of the form <name>=<value>. This option
will set the Polyglot option <name> to <value>.
-uci
The argument is a string of the form <name>=<value>. This option
will set the engine option <name> to <value>.
-ec This is an alias for -pg "EngineCommand=<value>"
-ed This is an alias for -pg "EngineDir=<value>"
-en This is an alias for -pg "EngineName=<value>"
-log (default: false)
This is an alias for -pg "Log=<value>"
-lf (default: "polyglot.log")
This is an alias for -pg "LogFile=<value>".
-wb (default: "true")
This is an alias for -pg "OnlyWbOptions=<value>".
When invoked as
polyglot make-book PolyGlot supports the following options
-pgn (default: "book.pgn")
Input file in pgn format.
-bin (default: "book.bin")
Output file in PolyGlot format.
-max-ply (default: 1024)
Specifies the maximum ply-depth of lines included in the book.
-min-game (default: 3)
Specifies the minimum number of games that have to contain this
move for it to be included in the book.
-min-score (default: 0.0)
Specifies the minimum score (or weight) this move should have
received for it to be included in the book. The score is
2*(wins)+(draws), globally scaled to fit into 16 bits.
-only-white
Include only moves for white in the book.
-only-black
Include only moves for black in the book.
-uniform
Set all weights to 1. In other words, all moves will be selected
with equal probability.
When invoked as
polyglot merge-book PolyGlot supports the following options
-in1
First input file (in PolyGlot book format).
-in2
Second input file (in PolyGlot book format).
-out (default: out.bin)
Output file (in PolyGlot book format).
Input files are not symmetrical, "in1" has priority over "in2". In
other words when a position occurs both in "in1" and "in2" only the
moves and weights from "in1" will be retained in "out".
When invoked as
polyglot dump-book PolyGlot supports the following options
-bin (default: book.bin)
Input file in PolyGlot book format.
-color
The color for whom to generate the lines.
-out (default: book_<color>.txt)
The name of the output file.
When invoked as
polyglot info-book PolyGlot supports the following options
-bin (default: book.bin)
Input file in PolyGlot book format.
-exact
Attempt to count the provably unreachable positions among the
isolated ones. Note that this takes a very long time.
When invoked as
polyglot epd-test (possibly with a config file as first argument) PolyGlot supports besides the generic options described above the following additional options.
-max-depth (default: 63)
Unconditionally stop the search when this depth has been reached.
-max-time (default: 5.0)
Unconditionally stop the seach after this amount of time.
-depth-delta (default: 3)
Stop the search if the solution as been found and the best move has
been constant for this many depths, on condition that the mininal
depth and minimal time have been reached.
-min-depth (default: 8)
Minimal search depth when the search is stopped using
"-depth-delta".
-min-time (default: 1.0)
Minimal search time when the search is stopped using
"-depth-delta".
When invoked as
polyglot perft PolyGlot supports the following options
-fen
