by H.G.Muller » 20 Aug 2009, 12:58
I see. It is a percentage. Perhaps this should be made obvious from the name of the option? Like calling it "Polyglot BookThreshold(x0.1%)"? WB protocol puts no restriction on the characters you can use in an option name.
I guess a standard way for probing polyglot books (and tuning that probing through options) should be developed, so that we can WB and Polyglot probe the books in the same way. It should not matter if a book is probed by the GUI on behalf of both engines, or by Polyglot. But I guess we first have to develop a better prescription of deriving the weights, to solve the problems Marc pointed out.
OK, back to the main topic. I actually do think it is worthwile to review all the Polyglot options to see which would be useful in the Engine Settings dialog and which would only cause distraction / confuson. After all, there aren't that many. We currently have the following control groups:
1) Log + LogFile
2) UseNice + NiceValue
3) Chess960
4) Resign + ResignMoves + ResignScore
5) MateScore
6) Book + BookFile + BookRandom + BookDepth + BookThreshold + BookLearn
7) KibitzMove + KibitzPV + KibitzCommand + KibitzInterval + KibitzDelay
8) ShowPonder
9) UCIVersion
10) PromoteWorkAround
11) CanPonder
12) SyncStop
13) RepeatPV
14) ScoreWhite
15) WbWorkArounds + WbWorkArounds2
Things one would obviously want to have in the Engine Settings dialog, because it is exactly meant for that kind of stuff, would be:
4) Resign control
6) Book control
This probably also holds for the somewhat more "technical" options needed for engines that somehow give you trouble:
1) Logging
8) ShowPonder
9) UCIVersion
10) PromoteWorkaround
11) CanPonder
12) Syncstop
Users would not change these setting for a given engine on a daily basis, but if this dialog also serves as an interface to configure the engines after installation (which is the intention), these options should be there so people cn set it to the unusual non-default needed to suppress problems.
That leaves the following options that could be discussed:
2) Nice Control
This does seem a task for the GUI (as it is not clear why UCI engines would have to be niced, and WB engines not). The OS provides means to impose this on the engines, so I think it is a good idea to let the GUI indeed impose it on the engines, as opposed to requesting the engines to nice down themselves through protocol commands. So it seems that this option is only implemented in Protocol as work-around for a fundamental defect in GUIs.
Nicing down engines potentially affect their playing strength, usually in an unpredictable way. So it is not really useful as a device for handicapping engines. Therefore it would be best if there existed a global GUI setting to control the engine priority. It might be useful to set this interactively, through a menu, making the engines would react immediately to any change of the setting.
Now there might be a problem with this ideal: The GUI would set the priority of an adapter, not knowing that it was an adapter, and the engine might not be affected. I have seen that Polyglot uses setpriority() for the purpose of changing the engine priority in real time, ad that this call supports setting of the priority of process groups. Could this be a solution to the problem? (i.e. have Polyglot create the engine process in the same group it is in, so that the GUI can set the nice of both engine and adapter at once?)
3) Chess960
This option duplicates (or interferes with) the variant and feature variants="..." and should never be transmitted to the GUI.
5) MateScore
Unfortunately WB protocol does not define a default for mate scores. Even if a mate score is known to have a value, it is not defined how the engine would count towards that value (per ply or per move). Once WB protocol would define or recommend a way to represent matescores, we would not want to provide a user with the option merely to do things in a non-compliant way. But even now, without a standard for mate scoring, I see very little use for this option when WB is the GUI. So my first impression is that the default value of 10000 is fine and doesn't require user tuning. (Or is this centi-Pawn and not Pawn?) So no need for this option in the Engine Settings dialog.
7) Kibitz
Under WinBoard (at least under all versions that would understand this feature), I consider this a very damaging option package. We don't want people to decide (e.g.) what ICS command to use for kibitzing, there should be a standard for that, controlled by the GUI. So other software can recognize the kibitzed info and process it. Kibitzing in fact duplicates information that was already sent as Thinking Output. So having engines kibitz themselves is actually poor design. (And by extension that also holds for adapters, as they are supposed to mimic engines.) I can imagine that this option is useful for GUIs that do not support standard kibitzing, but as these GUIs don't implement the option feature it would be enough to control that via the polyglot.ini.
Apart from that, this reminds me of another issue: It is important to have WinBoard understand the kibitz format of Polyglot when it sees it from opponents foolhardy enough to use it through the ICS. Preferably the Polyglot format should be adapted to facilitate recognition of the final kibitz line that belongs to the played move. Otherwise the process of incorporating opponent scores in the PGN would become quite error prone, as ICS are wrought with timing problems.
13) RepeatPV
I am not sure what this option is for. I see no advantage for WB when the PV is repeated. It would just lead to duplication of info in the Engine-Output window. Yet the default of this option is "on".
14) ScoreWhite
This option duplicates a GUI feature to invert the black score. Logically, this is a GUI task, as native WB engines that invert the black score exist as well. I would like to see this option dropped as quickly as possible from the Engine Settings dialog, as it only invites people to do things the non-compliant way. Of course the option itself can be useful as a workaround for GUIs that do not support optional flipping of the black score. (I.e. as an option in the polyglot.ini, as such GUIs typically also reject the option features.)
15) WorkArounds
The WbWorkArounds do not seem useful in the Engine Settings dialog. The first one could only be set after the damage is already done. The second one has been solved. No official WB release that understands these option features would have the problems they are supposed to provide work-arounds for.