version 1.4.39b
[polyglot.git] / README
diff --git a/README b/README
index fa7080c..ac68f66 100644 (file)
--- a/README
+++ b/README
@@ -5,14 +5,15 @@ POLYGLOT(6)                                                        POLYGLOT(6)
 NAME
        PolyGlot -  Winboard protocol to UCI protocol adapter
                 -  book engine for Polyglot books
-                -  a collection of utilities for creating opening books
+                -  a collection of utilities for creating and analyzing open-
+       ing books
                 -  a utility for analyzing epd files
                 -  a perft counter
 
 SYNOPSIS
-       polyglot [configfile]
-
-       polyglot -ec engine
+       polyglot [configfile] [-noini] [-ec engine] [-ed enginedirectory] [-en
+       enginename] [-log] [-lf logfile] [-hash value] [-bk book] [-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] [-uni-
@@ -20,8 +21,13 @@ SYNOPSIS
 
        polyglot merge-book -in1 inputfile1 -in2 inputfile2 [-out outputfile]
 
-       polyglot [configfile] epd-test [-epd inputfile] [-min-depth depth]
-       [-max-depth depth] [-max-time time] [-depth-delta delta]
+       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]
 
@@ -78,6 +84,33 @@ DESCRIPTION
        PolyGlot can compile a pgn file into a binary PolyGlot book and fur-
        thermore 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 posi-
+       tion) 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
@@ -91,17 +124,40 @@ DESCRIPTION
        ever much slower than other more dedicated programs.
 
 OPTIONS
-       When invoked without options or with a config file as argument PolyGlot
-       acts as an adapter. The config file format is documented below.  The
-       default config file is "polyglot.ini".
+       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.
 
-       When invoked as
+       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>"
 
-       polyglot -ec engine
+       -hash
+           This is an alias for -uci "Hash=<value>".
 
-       PolyGlot simply starts "engine" and acts as an adapter. No config file
-       is used and thus it is expected that all properties will be set by the
-       GUI.
+       -log
+           This is an alias for -pg "Log=true".
+
+       -lf (default: "polyglot.log")
+           This is an alias for -pg "LogFile=<value>".
+
+       -bk This is an alias for -pg "Book=true" -pg "BookFile=<value>".
 
        When invoked as
 
@@ -158,10 +214,39 @@ OPTIONS
 
        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 iso-
+           lated 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 the
-       following options
+       (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.
@@ -170,9 +255,9 @@ OPTIONS
            Unconditionally stop the seach after this amount of time.
 
        -depth-delta (default: 3)
-           Stop the search if the best move has been constant for this many
-           depths, on condition that the mininal depth and minimal time have
-           been reached.
+           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
@@ -206,10 +291,12 @@ CONFIG FILE FORMAT
            option = value
            ...
 
-       Lines starting with "#" are ignored.
+       The characters "#" and ";" serve as comment characters.
 
-       NOTE: There can be spaces in option names or values.  Do not use
-       quotes. Boolean values are written as "true" or "false".
+       By default initial and final white space is stripped from option val-
+       ues. If you want to avoid this, or if you want use one of the comment
+       characters # or ; in option values (such as for NalimovPath), enclose
+       the value in quotes.
 
        [PolyGlot] section
 
@@ -264,6 +351,9 @@ CONFIG FILE FORMAT
            Show search information during engine pondering.  Turning this off
            might be better for interactive use in some interfaces.
 
+       ScoreWhite (default: true)
+           Report score from white's point of view in xboard mode.
+
        KibitzMove (default: false)
            Whether to kibitz when playing a move.
 
@@ -280,12 +370,13 @@ CONFIG FILE FORMAT
            effect only if "KibitzPV" is selected, move kibitzes are always
            sent regardless of the delay.
 
+       KibitzInterval (default: 0)
+           This is another form of throttling. PolyGlot will usually wait this
+           many seconds before doing the next kibitz.
+
        UCI (default: false)
            If true PolyGlot will not understand xboard commands.
 
-       Chess960 (default: false)
-           Play Chess960 (also called Fischer Random Chess or FRC),
-
        MateScore (default: 10000)
            Mate score reported to GUI when in xboard mode.
 
@@ -308,9 +399,16 @@ CONFIG FILE FORMAT
            Select moves according to their weights in the book. If false the
            move with the highest weight is selected.
 
-       BookLearn (default: false)
-           Record learning information in the opening book. Naturally this
-           requires the opening book to be writable.
+       BookRandom (default: true)
+           Select moves according to their weights in the book. If false the
+           move with the highest weight is selected.
+
+       BookDepth (default: 256)
+           Stop using the book after this number of moves.
+
+       BookTreshold (default: 5)
+           Do not play moves with a weight (probability) lower than this (in
+           per mil).
 
        UseNice (default: false)
            Run the engine at nice level 5, or "NiceValue" if it set.  On some
@@ -328,12 +426,20 @@ CONFIG FILE FORMAT
            This a bit vector in which each bit represents the processors that
            a process is allowed to run on. This option works only on Windows.
 
+       SaveSettingsOnExit (default: true)
+           If true then PolyGlot will implement persistence by loading its
+           options from an additional INI file which is specified by the
+           option "SaveFile". At exit PolyGlot will also save its options to
+           this INI file.
+
+       SaveFile (default: <EngineName>.ini)
+           The name of the file from which to take the additional options.
+
        Work arounds
 
        Work arounds are identical to options except that they should be used
        only when necessary.  Their purpose is to try to hide problems with
-       various software (not just engines).  The default value is always cor-
-       rect for bug-free software.
+       various software (not just engines).
 
        IMPORTANT: Any of these work arounds might be removed in future ver-
        sions of PolyGlot.  You are strongly recommended to contact the author
@@ -367,9 +473,26 @@ CONFIG FILE FORMAT
        RepeatPV (default: true)
            When true, PolyGlot repeats the last pv string (which also contains
            score,depth and time usage) it got from the engine. Some engines
-           however do not send a new pv string just before sending the move
-           and the now old pv string might confuse debugtools that parse the
-           winboard debug files.
+           however do not send a new pv string just before sending the move.
+           In that case the output of PolyGlot would be inconsistent.  When
+           RepeatPV is false PolyGlot does not repeat the last pv string.  Due
+           to the way kibitzing is implemented, KibitzMove is disabled in that
+           case.
+
+       WbWorkArounds (default: true)
+           The intention of these options is to provide work arounds for
+           xboard/winboard bugs should they arise.  This one decapitalizes the
+           word Draw in options that contain this word. Some versions of
+           xboard/winboard contain a bug which causes such options to be
+           interpreted as draw claims by the engine.
+
+           Engines that send options with "Draw" in their name are Rybka and
+           HIARCS.
+
+       WbWorkArounds2 (default: false)
+           Old version of Winboard clear the engine output window at depth 1.
+           With this work around PG will send info lines at depth >=2. This
+           may or may not improve the display.
 
        [Engine] section
 
@@ -401,20 +524,31 @@ EXAMPLES
 
            polyglot make-book -pgn games.pgn -bin book.bin -max-ply 30
 
-       Merge books "in1.bin" and "in2.bin" into a book "out.bin".
+       Merge books "w1.bin" and "w2.bin" into a book "w.bin".
 
            polyglot merge-book -in1 w1.bin -in2 w2.bin -out w.bin
 
-       The command line for using the UCI engine "fruit" in a GUI which uses
-       the xboard protocol.
+       Inspect lines for white in "w.bin"
+
+           polyglot dump-book -bin w.bin -color white -out w_white.txt
+
+       Test epd file "test.epd" with a (maximum) search time of 7 minutes per
+       position
+
+           polyglot epd-test -epd test.epd -max-time 420
+
+       The command line for using the UCI engine "fruit" with 128M hash in
+       xboard with logging enabled.
 
-           polyglot -ec fruit
+           xboard -fcp "polyglot -noini -log -ec fruit -hash 128"
 
-       The equivalent config file:
+       The equivalent config file would be:
 
            [PolyGlot]
            EngineCommand = fruit
+           Log = true
            [Engine]
+           Hash=128
 
 EXIT STATUS
        PolyGlot always returns 0 on exit.
@@ -434,4 +568,4 @@ SEE ALSO
 
 
 
-                                  2009-01-14                       POLYGLOT(6)
+                                  2009-08-31                       POLYGLOT(6)