The (E)xtended (B)ook (F)ormat
Project
For chess programmers
INTRODUCTION
The goal of this project is to create an extended opening book (or multiple books) for all chess engines that roughly will ensure:
If these numbers are feasible has to be seen, we are going to try it anyway.
All moves in an *.EBF book are analysed by at least one top engine at 30 seconds a move. Meaning that:
Once your engine is out of your (own) opening book consult the (an) *.EBF opening book (just one call with as input an EPD string of the current position) and it for instance will return:
Move | Score | Engine |
d1a4 | 4 | 0 = Stockfish 7 |
b2b3 | 12 | 1 = Komodo 7 |
b1c3 | 4 | 2 = Gull 3 |
rn1qkb1r/p1pp1ppp/bp2pn2/8/2PP4/5NP1/PP2PP1P/RNBQKB1R w KQkq
So now it's up to you the choice to make from the 3 possibilities.
It's well described in the source code.
______________________________________________________________________________________________________
CREATING BOOKS
The base of the book origins from a 883.000 PGN database that contains a mixture games of:
From these 883.000 games with ProTools 1.6 (to be released soon) 30 (depth based) EPD files will be extracted and analysed using the Arena 2.01 Automatic Analysis feature. Note that Arena 3 and 3.5 are bugged, hence version 2.01. This has resulted in the following schedule to analyse.
Depth | Positions |
0 | 1 |
1 | 20 |
2 | 185 |
3 | 780 |
4 | 1.807 |
5 | 3.561 |
6 | 6.349 |
7 | 11.158 |
8 | 17.231 |
9 | 24.817 |
10 | 33.971 |
11 | 44.986 |
12 | 57.996 |
13 | 73.270 |
14 | 90.722 |
Depth | Positions |
15 | 115.775 |
16 | 141.734 |
17 | 184.538 |
18 | 228.833 |
19 | 272.951 |
20 | 315.675 |
21 | 366.892 |
22 | 413.209 |
23 | 485.321 |
24 | 497.669 |
25 | 545.247 |
26 | 585.055 |
27 | 619.162 |
28 | 647.655 |
29 | 672.211 |
Once an EPD is analysed by Arena the results (move + score) will be extracted from the Arena *.LOG file and the positions are added to the book (with ProTools) and made available for download on this page.
'When Protools 1.6 will be available for download (need to clean things up first) you can let Arena 2.01 analyse the games of your own engine with your prefered (stronger) engine and add the results to the book.
______________________________________________________________________________________________________
TIME
With the above schedule in mind it's clear from the onset this will be a very time consuming project. On an 8-core PC I can analyse 23.040 (30 seconds) positions a day. So this project will run for months for only 1 engine, Stockfish 7 being the first candidate. The D=29 with 672.211 positions alone will run for 29 days.
An alternative is to decrease the time control from 30 seconds to 20 | 10 | 5 even 2 seconds, it's still good enough for many engines, SF7 is so strong. The result, time based *.EBF books.
Another solution to tackle the time problem is your participation, not limited to chess programmers only, experienced users are very welcome to help as well. Participation is possible in various ways.
______________________________________________________________________________________________________
FUTURE
*.EBF books can be extended endlessly, size isn't an issue, speed neither, positions are found quickly using the binary search technique. As such one (for instance) can take all the 2.5 million games of MillionBase 2.5 and analyse all the positions from depth 0 to 20 it won't hurt the performance.
Whether it is useful to do such a job elowise is an open question. Depth=10 from our project already is about 33.971 positions, extracting Depth=10 from MillionBase 2.5 the number almost goes up 5-fold to 156.394
On the other hand if you like to play with your engine on chess servers like ICC, FICS or PLAYCHESS then it could be effective. For that purpose consider the massive number of PLAYCHESS games available at the Gladiators website.
______________________________________________________________________________________________________
BETA PERIOD
Before starting with the giant job I would like to have a short beta period if everything functions well. There is no fun in analysing positions for months and then to conclude one has to do it all over. Provided is a small *.EBF book made of all (2005-2015) CCRL 40/40 games analysed at 2 seconds (depths 0-8) with Stockfish 7, Komodo 7 and Gull 3 in total 110.562 positions. Source code included.
Questions either via the contact form or at Talkchess, my handle is REBEL.
______________________________________________________________________________________________________
SUPPORTED ENGINES
This is a typical project (like with PGN & EPD or Winboard & UCI) that stands or falls with the number of chess programmers that are going to support the EBF Extended Book Format. The more engines that support it, the more activity of users that will build stronger and stronger EBF books.
To get things to work takes no longer than 1 hour, you might even want to rewrite the source code yourself for your own purposes, the data structure of the EBF format (as described in the Source Code is quite simple. Therefore I like to maintain a list of engines that support the format. Drop me a note if you want to be named.
Program | Author | Since version |
Ed Schröder | 2.1 | |
|
|
|
|
|
|
______________________________________________________________________________________________________
DOWNLOADS
Source code - Run demo.exe for a first impression.
ProTools 1.6 - Documentation on a special page.
EPD - the 30 EPD sets (see above) (65 Mb) to analyse with Arena 2.01
______________________________________________________________________________________________________
PARTICIPATION
If you want to participate in the project analysing parts of the 30 EPD sets (or your own) then mail me the results via the contact form in case you don't have my email address and I will make them available for download as an *.EBF book.
Finalized Books
for download
Book | Positions | Size | Time | Engines | Depths | Contributors |
110.562 | 500 Kb | 2 secs | Stockfish 7 Komodo 7 Gull 3 | 0 - 8 | Ed Schröder | |
841.029 | 7 Mb | Depth based | Stockfish Komodo | 22 and 22+ | ||
2.561.183 | 20 Mb | 2 secs | Stockfish 7 | 0 - 23 | Ed Schröder | |
111.239.168 | 1.2 Gb | Depth based | Diverse top engines | 20 plies at minimum | Les Fernandez | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
______________________________________________________________________________________________________
In the hope this (for an announcement) is sufficient information to make you enthousiastic.
Match results at the ProDeo 2.1 page.