ABK

From Chessprogramming wiki
Jump to: navigation, search

Home * Knowledge * Opening Book * ABK

ABK, (Arena's book format)
the opening book format of Arena. It persists a book tree as array of entries, each entry referring one book move with priority and statistics, an entry index of the next move inside a book line (> 0 if any), and an entry index of a possible sibling move (>= 0 if any). The sizeof of an entry is 28, the initial position indexed by 900 [1].

Entry Structure

The array of entries/structures is written to / read from a binary file under Windows (x86), struct and integers implicitely stored little-endian wise:

struct SBookMoveEntry {
  char from;      /* a1 0, b1 1, ..., h1 7, ... h8 63 */
  char to;        /* a1 0, b1 1, ..., h1 7, ... h8 63 */
  char promotion; /* 0 none, +-1 rook, +-2 knight, +-3 bishop, +-4 queen */
  char priority;
  int ngames;
  int nwon;
  int nlost;
  int plycount;
  int nextMove;
  int nextSibling;
} * pOpeningBook;

Sample Tree

  root index
      ▼
┌───────────┐                                  ┌───────────┐  
│nextSibling│ ─────────────── ► ────────────── │nextSibling│ ─────────────── ► ... 
├───────────┤                                  ├───────────┤  
│   e2-e4   │                                  │   d2-d4   │  
├───────────┤                                  ├───────────┤  
│ nextMove  │                                  │ nextMove  │  
└───────────┘                                  └───────────┘  
      ▼                                              ▼
┌───────────┐ ┌───────────┐ ┌───────────┐      ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐     ┌───────────┐ 
│nextSibling│►│nextSibling│►│nextSibling│►...  │nextSibling│►│nextSibling│►│nextSibling│►│nextSibling│►...►│nextSibling│ 
├───────────┤ ├───────────┤ ├───────────┤      ├───────────┤ ├───────────┤ ├───────────┤ ├───────────┤     ├───────────┤ 
│   e7-e5   │ │   c7-c5   │ │   e6-e6   │      │   d7-d5   │ │   g8-f6   │ │   c7-c6   │ │   e7-e6   │     │   f7-f5   │ 
├───────────┤ ├───────────┤ ├───────────┤      ├───────────┤ ├───────────┤ ├───────────┤ ├───────────┤     ├───────────┤ 
│ nextMove  │ │ nextMove  │ │ nextMove  │      │ nextMove  │ │ nextMove  │ │ nextMove  │ │ nextMove  │     │ nextMove  │ 
└───────────┘ └───────────┘ └───────────┘      └───────────┘ └───────────┘ └───────────┘ └───────────┘     └───────────┘ 
      ▼             ▼             ▼                  ▼             ▼             ▼              ▼                ▼
┌───────────┐      ...      ┌───────────┐      ┌───────────┐      ...           ...      ┌───────────┐          ...
│nextSibling│►...           │nextSibling│►...  │nextSibling│►...                         │nextSibling│►...
├───────────┤               ├───────────┤      ├───────────┤                             ├───────────┤ 
│   g1-f3   │               │   d2-d4   │      │   c2-c4   │                             │   e2-e4   │ 
├───────────┤               ├───────────┤      ├───────────┤                             ├───────────┤ 
│ nextMove  │               │ nextMove  │      │ nextMove  │                             │ nextMove  │ 
└───────────┘               └───────────┘      └───────────┘                             └───────────┘ 
     ▼                            ▼                  ▼                                         ▼
	...                          ...                ...                                       ...

See also

Forum Posts

2007 ...

Re: Opening books format by Jury Osipov, CCC, April 15, 2008
Re: Opening books format by Richard Pijl, CCC, April 15, 2008
Re: Opening books format by Dann Corbit, CCC, April 15, 2008
Re: Opening books format by Lance Perkins, CCC, April 17, 2008

2010 ...

2020 ...

External Links

References

Up one Level