CRoberson wrote:For me, its a command line start up option that I didn't encode into the xboard/uci protocol subsystem. I could do that.
For the uci engines, polylgot could be modified to kib "book move", but not all the uci based programs use polyglot. If they use Aquarium, ChessAssistant or ChessPartner they don't have that level of control, so its not an option for them.
What is there to kibitz on a book move or single legal move? Do we just want to print the message "book move" or "only move"? Especially the latter seems to add little value.
As to the technical aspects: I guess it depends a lot on which program is consulting the book. For UCI engines running under Polyglot, this could be the engine, the GUI, or Polyglot. For WinBoard engines it could be the GUI or the engine.
When XBoard / WinBoard are responsible for handling the book, the assciated kibitz can only be sent by XBoard itself, as the other entities do not have the information. But -autoKibitz already does that, and the opponent will see somehing like this (copied from the Engine-Output window, so read bottom to top!):
Code: Select all
!!! +0.24/8 (23.14 sec, 3593817 nodes, 155 knps) PV=g1f3 a7a5 e1g1
\ d7d6 d2d3 c8f5 c1e3 h7h5 e3c5 d6c5
!!! +0.00/0 (0.00 sec, 0 nodes, 0 knps) PV=a2a3 (xbook)
!!! +0.00/0 (0.00 sec, 0 nodes, 0 knps) PV=f1g2 (xbook)
!!! +0.00/0 (0.00 sec, 0 nodes, 0 knps) PV=g2g3 (xbook)
!!! +0.00/0 (0.00 sec, 0 nodes, 0 knps) PV=b1c3 (xbook)
!!! +0.00/0 (0.00 sec, 0 nodes, 0 knps) PV=c2c4 (xbook)
Then there is the possibility to have Polyglot handle the book. I don't know how it handles kibitzing of book moves. But this is not a recommended mode in ICS play: any book that could be handled by Polyglot can also be handled by WinBoard / XBoard. Better to do it there, and let WinBoard handle both book and kibitzing. For the foolhardy: There are Polyglot versions around where kibitzing can be switched on and off, and the kibitz command (kibitz or whisper) can be set through the GUI interface.
Finally the engine can do its own kibitzing. WinBoard engines can send whatever they want through "tellics". I know little of UCI, but I think UCI engines can send something called PV info lines, which will be passed to the GUI by Polyglot as Thinking Output, with dummy (zero) values for the score, time and node count, with the same depth as the last PV that was reported by the engine. The text of the info line is then in the PV field of the thinking output. If this is the last line of Thinking Output WinBoard receives before the move, this line will be kibitzed to the ICS when -autoKibitz is on. And you could print anything you want there, e.g. "MOVE (engine book)".
So I don't think there is any technical problem. If we think just sending move + a message teling it came out of a book is not enough, just specify what more you would want to see on a book move, and I could put it into the Thinking Output that XBoard kibitzes on a GUI book hit.