Convekta Logo
Chess Software Sourcebook
Join Chess Reviews<>
Convekta Logo
Secrets of the Chess Assistant trees revealed!
keywords: direct tree, CAP, elm, hsh, hugebase, bookup, chess tree, CA tree, tree configuration, ECO, indexer
Robert Pawlak
Thursday, March 15, 2007

A chess tree presents a tree-like view of the potential moves from a position. Chess Assistant is unique in that it has many different types of chess trees that can be used within the program.

CA 7.1 (and all later versions) provides an interesting new feature for reference database tree maintenance. Now, when you download new games for hugebase, the direct tree will be updated automatically. Make sure you have a recent build of CA if you want to use this feature (see the downloads section for this).

Chess Assistant has a number of different chess trees. Using these different trees can sometimes be a source of confusion for new users of the program. This article discusses the differences between the various types of trees, and well as when and where each type should be used.

CA Tree

CA's most basic tree (called the CA Tree) has been around since the DOS version of the program. This type of tree can be constructed for any Chess Assistant format database, and is in fact, linked to the database. The advantage of this type of tree is that is has relatively small storage requirements (so it does not take up much space on your hard drive), and it can be constructed relatively quickly "on the fly" for moderately sized databases. In fact, CA will automatically prompt you to build a tree for a database, if one does not already exist.

Copying games to a database will require that you rebuild the tree for that base as well. Furthermore, the CA tree is seamless, in that you don't have to think about rebuilding it if new games are added to a database, because the tree and the database are linked. so CA reminds you when the tree needs to be rebuilt.

However, this type of tree is very slow, especially when large databases are being used. So I would recommend that you use it for smaller databases, or for data that you don't access frequently. For instance, if you have a game collection from a particular player, and want to examine that players repertoire, then the normal CA tree is well suited for that.

Direct Tree

CA also has something called a direct tree. This type of tree is used in quite a number of places within the program, and is the underpinning for a number of important functions. The advantages of the direct tree are that it is very fast to move through, and can accommodate all sorts of annotations (the CA tree only contains moves, positions, and statistics). Additionally, direct trees are used exclusively when constructing opening books. The only drawbacks to the direct tree are that it is a bit larger than the CA tree, and it can take longer to build. Furthermore, no explicit link is maintained between the direct tree, and the database or dataset that was used to construct it. So more burden is placed on the user with this type of tree, at least as far as maintaining an up to date tree is concerned.

CA regularly uses several different direct trees: CAP, Master Evaluations, User Evaluations, the Indexer, and the Engine's Analysis trees are all direct trees. The CAP tree is used to store data from the Computer Analysis project (which is discussed in this article). The Master Evaluations tree contains evaluations for many of the opening moves, and is compiled by a team of IM's and GM's in Convekta's employ. The User Evaluations book also contains evaluations, but these are entered by the user of the program. In fact, when a position occurs in both the User Evaluations and the Master Evaluations trees, the User Evaluations take precedence. The Indexer tree contains the full ECO codes for all the opening moves, and the Engine's Analysis tree contains positions and evaluations that are automatically stored when a position is analyzed by an engine.

Direct trees are also used when constructing opening books. This is a topic beyond the scope of the current article, and is very complex. See this article for more details.

The Main Difference

Ok, I've probably given you quite a bit to think about when it comes to trees. But the most important thing that you need to realize is that the normal CA tree is most suited for information that is relatively dynamic in nature. Direct Trees are better suite for information that is relatively static. For instance, CA's indexer uses a direct tree to store the mapping of positions to ECO codes. And you will also notice that the other types of data stored in direct trees, like master and user evaluations are also fairly static.

Don't get the wrong idea though - it's very easy to update information in certain direct trees (like the User evaluations tree). The above description was just meant as a general guideline for tree usage.

Watch for the second part of this article in the coming weeks.

ChessAssistant is a trademark of ChessOK
Syndication available through rss.xml
Click on my name to send me e-mail (must have javascript on)