The Aquarium Book Adapter
If we look at computer chess today, we see a lot of engines and graphical user interfaces (GUIs), so there's an open competition, which is good for innovation and the users of course. One main reason why this is possible is the creation of open standards like the UCI protocol for engines, which allows e.g. the Rybka engine to be used under almost any GUI.
For opening books there is quite a different situation. If you want to use an opening book in Arena format (.abk), you can only do so by using the Arena GUI and so on.
A popular format for opening books is the .ctg format, which is used by Fritz/Chessbase. Official opening books for Rybka are available in this format and many book makers use it.
The situation changed a bit when Aquarium was released by ChessOK. It is able to read .ctg books, but also uses it's own book format .hsh. This alone didn't make a big difference, since reading .ctg books only means you can use .ctg book in one more GUI. But if you wanted to use an Aquarium book like the Rybka 3 Aquarium book by Jeroen Noomen under the Fritz GUI or Arena, it was simply not possible.
To improve that, ChessOK decided to program a tool called the "Aquarium Book Adapter" (ABA). The idea is to have a little program between engine and GUI, which checks if the position is in the book and plays the move from the book, or, if there is no move in the book, just lets the engine take over. This makes it possible to use e.g. Jeroen's opening book for Aquarium on the popular playchess server, where you can let computers play each other. Since Aquarium can read .ctg books, too, you can also use a .ctg book, after loading it under Aquarium, with any GUI that supports UCI engines!
So if you e.g. want to play an engine tournament under Arena to compare Jeroen's books with an opening book for Arena, this is no problem anymore.
More than just a simple Adapter
The basic principle is clear, but ChessOK created something very special with the book adapter, since it can read more than just one opening book! For example at the World Championship in Pamplona we used a book by Nick Carlin as first choice, but also the Aquarium book by Jeroen Noomen for positions that weren't in Nick's book.
You can also combine Aquarium books with ctg books this way. Another nice feature is that the engine starts calculating while the opponent is thinking, so if a move that is not covered by the book is played, the hash is already populated.
Download and Installation
Click on the button to start the download.
The archive contains all the files needed, you just have to extract them to your Aquarium folder.
If you haven't got Aquarium, you could download the Aquarium Demo version or use the standalone version of the adapter, you can get it from here. Since the installation of the standalone version can be quite complicated, we will just discuss how to use the integrated version (usage with the Demo and the full version of Aquarium is identical). For instructions how to use the standalone adapter, look at this guide in our forum.
Book Adapter Setup
After extracting all the files to your Aquarium folder, start the program ABAGui.exe. The following window opens (the most important options are marked with an exclamation mark):
-File: Here you can select the configuration file where the settings are saved. Usually it's AquariumBookAdapter.ini and you don't need to change that, but if you create several configurations, you can easily switch between them this way.
-Engine: Here you can select the UCI-engine you would like to use, for example Rybka. Use the browse button to select the engine file. If you want to use a relative path (if the engine is in the same folder like the ABA and you enter the path manually) you can check the "Relative Parh" box, if you want to write a log file of the communication between ABA, engine and GUI, you can select "Enable Logging". Note that logging can lead to a slow down since writing the log on disk costs some performance.
-Latency: Here you can set a latency for the communication in ms to avoid problems if the response is sent too quick. A low value like 50 ms should be fine.
-Minimal Time: This is a slightly complicated option, when the adapter receives 'go wtime X', then it sends 'go wtime MAX(min_time, X-time_buffer)' to the engine. Some engines do not work correctly with the 'go wtime 0' command. This means that setting min_time to 1 (as it is by default), you can avoid this problem. The value is in ms.
-Time buffer: With this option you can set a small amount of time in ms that is used to compensate lost time because of the GUI<->engine communication. Basically the engine is told that it has x ms less than the GUI says. A good value for fast blitz games is 3000 ms = 3 s.
-Priority: Sets the priority of the Engine task, usually "low" is the best choice, since it gives the GUI a higher priority and therefore avoids a slow down.
-History length: If the same position was reached x or less moves before, the book is not used again. This is useful if you want to avoid repetitions, but can backfire if a line in the book is intended to be a draw by repetition. If you select 0, then this option is disabled.
-Opening books: Here you can select the book configurations used. Book 0 gets the highest priority, so if a position is in book 0, this move is played. If the position is not in book 0, book 1 will be used and so on. With "Depth" you can limit the book to a number of moves.
Of course you can edit the AquariumBookAdapter.ini manually, too. It's less comfortable, but relatively intuitive. It can be useful if you want to use more than 4 books, since you can simply add a fifth entry and so on.
Using the Adapter
After setting all the parameters with the ABAGui.exe, click on OK. Now you can open the graphical user interface (GUI) you would like to use and install the AquariumBookAdapter.exe from your Aquarium folder as UCI-engine there (instructions for installing a UCI-engine). That's all! :)
If you've got any questions, you will find answers in the Aquarium section of our forum www.rybkaforum.net, especially in this thread.
Detailed guide how to use .ctg books with the standalone adapter