==Chess File and Database Conversions== ======================================= Categories ========== ASCII formats 1. NTR (Nunn's Text Reader format; ChessBase text format) 2. NIC (NiCBase Text format) 3. PGN (Portable Game Notation format) 4. all others Proprietary Database formats 1. CBASE (ChessBase) 2. NBASE (NiCBase) 3. CASST (Chess Assistant) 4. all others Taking any point from items 1 to 3 of each list, it is possible to get to all others. Samples of ASCII formats ======================== --NTR-- Kramnik,V - Anand,V Groningen PCA Qualifiers (11) 1993 1.d4 d5 2.c4 c6 3.cxd5 cxd5 4.Nf3 Nf6 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bxd3 9.Qxd3 Bd6 10.Bxd6 Qxd6 11.0-0 1/2 --NIC-- Keycode: SL 5.5 Source: Q94 White: Kramnik,Vladimir Title: IGM Elo: 2725 Black: Anand,Vishwanathan Title: IGM Elo: 2740 Place: Groningen PCA Qualifiers Round: 11 Year: 1993 1.d4 d5 2.c4 c6 3.cd5 cd5 4.Nf3 Nf6 5.Nc3 Nc6 6.Bf4 Bf5 7.e3 e6 8.Bd3 Bd3 9.Qd3 Bd6 10.Bd6 Qd6 11.0-0 1/2 Info: Both qualified Annotator: Kramnik/Anand --PGN-- [Event "PCA Qualifiers"] [Site "Groningen, NED"] [Date "1993.12.30"] [Round "11"] [White "Kramnik,V"] [Black "Anand,V"] [Result "1/2-1/2"] 1. d4 d5 2. c4 c6 3. cxd5 cxd5 4. Nf3 Nf6 5. Nc3 Nc6 6. Bf4 Bf5 7. e3 e6 8. Bd3 Bxd3 9. Qxd3 Bd6 10. Bxd6 Qxd6 11. O-O 1/2-1/2 The three formats above can have a number of variations and hold additional fields. PGN, for one, can have more than 30 keyword fields but the seven above are always required in the order shown. In NTR format, a "loaded" first-line header might look like this, Shipman,Joe (2354) - Anderson,C (2294) [B21] In the above line, ratings have been included and the ECO (Encyclopedia of Chess Openings) code for a Morra Gambit. And finally, some additional PGN fields: [WhiteElo "2354"] [BlackElo "2294"] [ECO "B21"] [NIC "SI 48.2.1"] Within chess notation itself between the various formats there are also some subtle differences. NIC format tends toward compact notation, often not indicating captures, e.g., 10.Bxd6 could, on option, be shown as Bd6. PGN mandates a promotion style of a8=Q while others allow a simple a8Q. Castling can be shown variously as 0-0 (zeros) or O-O (capital letters). Sometimes there must be a space after the period of a move number (PGN) and other times this is optional. These differences may seem insignificant but when it comes to computers they are the number-one reason for trouble during conversion runs! Overview of Proprietary formats ================================ These cannot be shown in sample form since they are coded in binary. The principle reason for this is to reduce storage space and speed execution, but vendors also know it helps keep a "captive" audience. CBASE - ChessBase proprietary ----- A downloaded, unzipped file of CBase games will always include at least two files, the larger having an extension of .CBF, and the smaller, an index, having .CBI. You may also find files with .CPO and .CKO extensions and possibly .DOC files. Unless you are using ChessBase, the only ones that are really necessary are .CBF & .CBI. In CBase, if an accompanying DOC file has the same filename as the .CBF and .CBI files, it will automatically display when that database is selected. A number of Forum library files include these DOC files referencing tournament cross-tables or general information on the file itself. You can also view the .DOC file with a text editor or word processor. NBASE - NiCBase proprietary ----- For NiCBase databases there are several files. First, the games and a set of game lengths are stored in files with .G30 and .I30 extensions, respectively. For a complete database, there is a .DBS file that lists all the other files of the database and their location; a .KEY file, which contains information about the games classifications; a file of positions, with .POS extension; and a pointer file, with .PTR extension. A valid database must have all 6 files. "Gamefiles" can be made with only .G30 and .I30 formats, however. Why have a full database when you can have simpler gamefiles? Because a database can be used to classify new games, and information and position searches are much faster (for the same number of games!) in a full database. This point also applies to the other chess databases as well. CASST - Chess Assistant proprietary ----- Here there are 14 different files to make up a database! The largest, the .BGM extension, holds the game data and the .LIB holds library information--a list of player names and tournament (place) names. There has been little study so far of the internal structure of a CA db but a best guess would be that many of them are indexes to speed data searches--a strong point for CA. One will not encounter any CA files in the CIS libraries--or NiCBase files either for that matter--since the only proprietary format which is standard to the Chess Forum is CBase. So far no one has come up with any utility which will perform a direct conversion of a CA db to another format. The only method is to have CA print games in ASCII to a file and then convert to other formats from the ASCII (covered as cafilter, below). Conversion Cross-Table ====================== --------ASCII-------- ------Proprietary------ From To: NTR NIC PGN CBASE NBASE CASST ---- --- --- --- ----- ----- ----- NTR - 1 2 3 4 5 NIC 6 - 7 8 9 10 PGN 11 12 - 13 14 15 CBASE 16 17 18 - 19 20 NBASE 21 22 23 24 - 25 CASST 26 27 28 29 30 - Conversion Items ---------------- (All 'FORMATS' are in UPPER case; conversion 'utilities' are in lower case. A following section briefly describing each utility.) (1) NTR->chessu->NIC (Macintosh utility ChessU) (2) NTR->normal->PGN (Lib 5 freeware Normal.exe) (3) NTR->reader->CBASE (Nunn's Text Reader.exe main program) (4) NTR->reader->CBASE->nicconvert->NBASE (or) normal->PGN->cbascii->CBASE->nicconvert->NBASE (5) NTR->reader->CBASE->cb2ca->CASST (or) normal->PGN->cbascii->CBASE->cb2ca->CASST (6) NIC->wrdmcr->NTR (Lib 5 freeware MS/Word macro) (or) nic2cb->NTR (Lib 5 freeware DOS macro) (or) chessu->NTR (Mac) (7) NIC->wrdmcr/nic2cb->NTR->normal->PGN (8) NIC->wrdmcr/nic2cb->NTR->normal->PGN->cbascii->CBASE (9) NIC->wrdmcr/nic2cb->NTR->normal->PGN->cbascii->CBASE->nicconvert->NBASE (10) NIC->wrdmcr/nic2cb->NTR->reader->CBASE->cb2ca->CASST (or) wrdmcr/nic2cb->NTR->normal->PGN->cbascii->CBASE->cb2ca->CASST (11) PGN->normal->NTR (12) PGN->normal->NTR->(Mac)->chessu->NIC (requires two platforms) (13) PGN->cbascii->CBASE (or)->normal->NTR->reader->CBASE (14) PGN->cbascii->CBASE->nicconvert->NBASE (15) PGN->cbascii->CBASE->cb2ca->CASST (or)->normal->NTR->reader->CBASE->cb2ca->CASST (16) CBASE->print->NTR (17) CBASE->nicconvert->NBASE->print->NIC (18) CBASE->cbascii(export)->PGN (19) CBASE->nicconvert->NBASE (20) CBASE->cb2ca->CASST (21) NBASE->print->NIC->wrdmcr/nic2cb->NTR (or)->cbworld->CBASE->print->NTR (or)->cbworld->CBASE->cbascii->PGN->normal->NTR (22) NBASE->print->NIC (23) NBASE->cbworld->CBASE->print->NTR->normal->PGN (24) NBASE->cbworld->CBASE (25) NBASE->nic2ca->CASST (26) CASST->print->cafilter->PGN->normal->NTR (27) CASST->print->cafilter->PGN->normal->NTR->(Mac)->chessu->NIC (28) CASST->print->cafilter->PGN (29) CASST->print->cafilter->PGN->cbascii->CBASE (or)->print->cafilter->PGN->normal->NTR->reader->CBASE (30) CASST->print->cafilter->PGN->cbascii->CBASE->nicconvert->NBASE Conversion Utilities ==================== reader - Reader.exe (Nunn's Text Reader main program) ------ (as referenced in above chart) Nunn's Text Reader, also NTR (not to be confused with the format), is a commercially available utility from ChessBase, Inc. priced around 60US$ which will take NTR formatted games, converting them to a CBase db. READER.exe is somewhat temperamental to the extent that all games used in a single run must have a very exact notation style. However, program settings allow various notations on a run-by-run basis. If you have mixed games it is a good idea to run NORMAL.exe first to get them in a common syntax. The move model created by NORMAL is: '19.exd4 Bxc6 20.0-0 a1Q 1/2'. It has been found helpful to eliminate the '+' check setting when running READER.exe as, otherwise, it has the idiosyncrasy of rejecting games with discovered checks! cbworld - CBWorld ------- This is a utility available from CBase for converting NiC databases. nicconvert - NiCConvert ---------- This utility is available from NiCBase to convert CBase databases to NiC internal database format. cb2ca - Cb2ca.exe ----- This is a utility included with the purchase of Chess Assistant which converts CBase database files to CA internal format. nic2ca - Nic2ca.exe ------ This is a utility included with the purchase of Chess Assistant which converts NBase database files to CA internal format. nic2cb - NIC2CB Macros ------ A utility written by Bob Appleby (Bob the Geordie), a Forum member, for use with the QEdit text editor program. Bob is currently writing a new set of macros to run on the latest version, QEdit 3.0. cbascii - CBAscii.exe ------- CBAscii is a program originally developed over at Internet and is now in our Library 5 under the name CBASCII.ZIP. It will import and export ASCII to/from CBase format but only using PGN format ASCII. If your games are not in PGN format, first use Normal.exe (below). When using CBAscii.exe you will not be able to preserve ELO ratings. If you wish to keep them tagged onto the player's names, you will need to take the longer route, substituting Normal.exe and Reader.exe for a CBAscii.exe run. normal - Normal.exe ------ Normal.exe converts game headers between NTR and PGN format and also verifies/converts notation. It is available in Library 5 as NORMAL.ZIP. Conversions are handled by setting run switches. When creating a final NTR format file for Reader.exe make sure you have output switches set as follows: fmtOut=NTR, convertHdrs=1, bracketOut=0, comLevelOut=0. Prior to using CBAscii, the switches should be the same except, 'fmtOut=PGN' & 'combEventOut=1'. (See Appendix below for configuration files which can be copied and pasted into your Normal directory.) cafilter - CAFilter, CA->PGN -------- CAfilter requires first that a "dataset" of games be chosen in CA. These then are "printed" to a file. CAFilter then converts the file to PGN format. See the instructions which come with the program--available in Library 5. wrdmcr - Wrdmcr Macros ------ This file exists in Library 5 called "WRDMCR.ZIP" which contains two files. One is a simple ASCII text file that explains the macros. The other file has the name NORMAL.DOT (not to be confused with Normal.exe!) and is a Word for Windows 2 template that contains the macros. If you don't have Windows 3.1 and Word for Windows 2 (or later), this file will be of no use to you! However, if you do use this full environment, these macros will be very useful. They take NIC ASCII format files, such as are common in the Forum Libraries, and change them into NTR format. chessu - Chess Utility 1 (Macintosh) ------ ChessU is an "ASCII database" processing utility which comes with the ChessPub Mac ASCII chess reader and publisher. The combined package is available for about 35US$. Contact Paul Onstad, CIS, 70641.3236 for ordering and information. Appendix ======== Summary Map of common Conversion Paths: -------------------------------------- /->normal->PGN->cbascii->-\ /--<-cbworld--<--\ / \ / \ NTR->---reader->------------------->CBASE---->-nicconvert--->-NBASE->NIC-< \ / / \->----->-(Macintosh)->-chessu->-NIC->-(PC)->----->------->-/ / \ / \-<--------<-nic2cb (or) wrdmcr-<---------------------<-/ Normal.exe configuration files ------------------------------ * NTR->PGN preparation for CBASCII import * copy/paste and "Save as" n2pfin.cfg in your Normal directory [fmtIn=NTR] [fmtOut=PGN] [bracketIn="{}"] [bracketIn="[]"] [bracketIn="()"] [braceTrans=1] [combEventOut=1] [comLevelOut=0] [bracketOut=0] [convertHdrs=1] * PGN->NTR preparation for Nunn's Text Reader.exe import * copy/paste and "Save as" p2nfin.cfg in your Normal directory [fmtIn=PGN] [fmtOut=NTR] [bracketIn="{}"] [bracketIn="[]"] [bracketIn="()"] [bracketOut=0] [comLevelOut=0] [convertHdrs=1] Contributors ============ Chess Coaches, Mitch White 72162,2506 Joe Reynolds 71031,1655 Paul Onstad 70641,3236 [end of file]