12 September 2011

Simple Openings Repertoire Database System

In response to a comment from laramonet, here is a description of what could in nice terms be described as a simple and straightforward system designed to store an openings repertoire in a database.  (In not so nice terms, I suppose it could be labeled crude and unsophisticated).  I started my personal openings database quite a while ago, so while I'm sure I could redo the whole thing now in a more sleek and powerful manner, it's not really worth the time investment, since it works just fine for my needs.

The desired objective is to keep a single database (I simply call it "ChessAdmin opening book") containing all of the variations that I consider significant and noteworthy in the openings I use.  My basic criteria for inclusion is that there should be at least a decent chance of facing the line in a tournament game someday, with the corollary that the variation itself is complex or important enough that I need to document and (theoretically) remember it.  For example, I don't have anything in the database for Black defenses against 1. b4 (Sokolsky), 1. g4 (Grob's Attack), etc.  However, the database is always a living document and I regularly update and refine it based on my ongoing practice and study.  For example, I've started to recently encounter a Queen's Gambit Declined setup more often against the English, so have added that to the openings book database.  If in the future I encountered a Grob's player on a regular basis, I'm sure I'd add something on that as well.

More specifically, I will have a "game" in the database for each major variation in an opening.  For example, I currently have nine Caro-Kann games in the database, named as follows:
  • Caro-Kann - 2. c4
  • Caro-Kann - 2. d3
  • Caro-Kann - Advance
  • Caro-Kann - Exchange
  • Caro-Kann - Fantasy
  • Caro-Kann - Main Line - Bronstein-Larsen
  • Caro-Kann - Main Line - Classical
  • Caro-Kann - Panov
  • Caro-Kann - Two Knights
In this case, in the game data "White" is "Caro-Kann" and then "Black" is however I choose to name the particular variation. This allows for easy sorting of the lines by title in the database.  For each of the games, I manually entered the main line of each variation and then selected sub-variations as I desired.  Naturally, some "games" are much more complex than others (like the Caro-Kann Classical), which others are simpler (like the 2. c4 variation) being shorter and with fewer sub-variations.  For my side of the opening in question, I treat it as a repertoire, only giving one preferred line against the opponent in the vast majority of cases.  The idea is not to have a comprehensive openings database, but rather my personal repertoire which I should study in order to prepare for a tournament or other serious play.

I prefer to have the lines named and organized in the above way in the database, as it parallels how openings book authors typically organize chapters.  I can then easily look up a particular major variation in the games list of the database.  Conceptually and practically for me it is cleaner than trying to put everything into just a few or even one massive database game.  Where one draws the line is probably a matter of personal taste, although using a "chapter" analogy is probably a good guide.  For example, I decided to have two Main Line "game" variations (also happening to parallel the framework in Starting Out: The Caro-Kann) largely because they are so different from each other and the large number of branching variations made putting the two in a single database game unwieldy.

One thing that I think is very helpful about a database structure is being able to easily include variations and sub-variations that aren't main line or are never used at the professional level, but can be dangerous or annoying if you aren't aware of them.  Your future opponent likely doesn't know or doesn't care if GMs play the line or not, so if something looks obvious they may just go ahead and play it.  There are a fair number of these types of moves that may even be refuted by a particular sequence, which makes it worth documenting rather than just trusting myself that I can work it out over-the-board.  I will also use game annotations to leave myself notes, for example when my side has a common plan in response to whatever the opponent does, rather than including all of the possible choices.

With my opening book organized per above, it's easy to immediately link from a particular position to the main database in order to look up full games and then load those separately, perform statistical operations based on the position, etc.  With the above setup, I'd hesitate to merge complete games into the base "game" variation, but I've considered setting up a different "examples" database to break out those key games that are worth referring to repeatedly.


  1. How do you review this repertoire? CPT perhaps?

  2. I haven't yet used Chess Position Trainer (CPT) although it has a good reputation and its flashcard-type training methods I think are a great way to break out of the dead-end concept of rote memorization of lines, in favor of understanding what to do in different opening positions. Its other advantage from a data processing perspective is in storing everything as positions, which for people who play openings with many transpositional lines (I don't) can be very useful.

    For tournament preparation, I try to give myself at least three weeks to go over the repertoire in ChessBase 10, so that I'm reviewing a single major or (say) up to three minor opening variations a day maximum. That means stepping through each "game" main variation and all subvariations. For positions that I find particularly interesting or are critical to the line, I'll pull at least a couple recent complete games from the main database to see how high-level players have been handling the position (assuming any such games exist).

    As part of more routine study, I don't try to keep lines in memory so much, but rather review and evaluate my personal repertoire against the results of ongoing training games, as part of the post-game analysis process. I've essentially shifted more towards studying plans/mini-operations in openings, at least away from tournament prep. I think in the future for that, however, I should still keep the focus more on remembering ideas and specific operations rather than whole move sequences as such.

    For the future, I think CPT would be an excellent pre-tournament preparation option, assuming it'd be worth the work to dump all of my database games into PGN format and then make them work with the CPT repertoire format. The CPT import function looks easy enough, but I never completely trust new software to work on the first try, heh.


Your comments and ideas on chess training and this site are welcomed.

Please note that moderation is turned on as an anti-spam measure; your comment will be published as soon as possible, if it is not spam.