Sidonia Chess Programs  Online Documentation Incomplete First Draft
Chess Engine, Chess Interpreter, Game recorder, Game analysis
Sidonia Chess Software

Introduction

Sidonia (©) is a collection of chess software programs written by Ivan Urwin.

The Sidonia project (available from Ivan Urwin at Denton Chess Club) contains:

  • A chess engine - a text based program that plays chess, supporting UCI and CEP
  • A script interpreter - a TCL based interpreter which allows chess calculations to be performed from a script file or interactively
  • A chess game recorder - A GUI program that records games in PGN files

Features

Opening Book formats

Sidonia supports a variety of opening book formats

  • Polyglot - These are standard opening books in a non-proprietary format, supported by many chess engines
  • Glass - Sidonia can also handle opening books in the same (published) format as those used by the chess engine Glass.
  • Sidonia - Sidonia has her own opening book format

The publicly available chess software Polyglot can create Polyglot Opening Books from a collection of chess games stored in a file in PGN format. It can also merge two polyglot opening books together.

To avoid unnecessary duplication, Sidonia software - the interpreter - can create opening books in the supported formats, from moves stored in EPD files. It makes more sense to define an opening book from moves rather than games. Even in grandmaster games, there are inaccurate moves often played in winning games. These opening books can then be merged together, on a like with like basis, eg two Glass opening books can be merged together.

Opening book file formats are autodetected.

Endgame Tablebase formats

  • Gaviota - Sidonia can handle endgame tablebases in Gaviota format using a statically linked (ie compiled in) Gaviota library.
  • Retrochess - Sidonia can handle endgame tablebases in Retrochess format using a DLL supplied by the RetroChess developers
  • FinalGen - Sidonia can handle endgame tablebases in FinalGen format using a DLL supplied by the FinalGen developers
  • Kill - Sidonia has a propietary endgame learning bitbase (in development), where "Known Losses" can be remembered and so avoided in future.
  • Kewl - Sidonia has a propietary learning database (in development), where "Known Wins" can be remembered with moves and distance to mate information.

    The known win learning database stores win infomation in EPD files. The files can then be used to generate opening books which play the stored moves automatically, or generated files can consulted like transposition tables stored on disc. The use of multiple file formats makes the learning process complicated, but does mean that the files generated can be exchanged and understood by other chess enthusiasts and their software.

Other file formats

  • PGN - Sidonia software can read and write games in PGN format.
  • EPD - Sidonia software can read and write positions in EPD files.

The Sidonia script interpreter can handle these file formats with special looping commands, eg foreachgame

foreachgame {tag moves} games.pgn code

will read successive games from the file games.pgn, and for each game it will execute code. The code may contain break or contune statements to leave the loop or go on to the next game. Each game is stored in variables, eg tag and moves in the example above, where tag is an associative array containing the tag pairs from the game header and moves is a list containing the moves from the game body. For example if Bobby Fischer won a fool's mate game,

tag(Black)

might contain "Fischer, Robert", and

moves

might contain "f2f3 e7e5 g2g4 d8h4".

Terminology

  • CEP - Chess Engine Protocol. CEP is a protocol for talking to chess engines.
  • EPD - Enhanced Positional Database. EPD files typically store data for chess engine testing.
  • GUI - Graphical User Interface. Popular Chess GUIs include Xboard and Arena.
  • PGN - Portable game notation. PGN is a standard for storing chess games in files.
  • TCL - Tool Command Language. TCL is a commonly used and extensible script interpreter.
  • UCI - Universal Chess Interface. UCI is a protocol for talking to chess engines.

Downloading

Sidonia is still in development, please contact the author for a copy.

Installing

See specific instructions for intalling the chess engine, interpreter, game recorder, etc.

Licencing

Sidonia is a homemade chess program, not a clone of an existing engine or a hybrid of the two extremes - a chess program that started as a clone and then containing significant development. (The exceptions to that statement are the use of the Gaviota tablebase library, and Retrochess and FinalGen DLLs, for compatability reasons.) It is doubtful whether there will ever be any functionality in Sidonia that people will be prepared to pay for, since there is already so much good free chess software out in the public domain already. Anyone that has paid for chess software and that does not have free copies of Houdini 1.5, Stockfish and Arena is almost committing a crime in my opinion. Nevertheless, due to software curiosity and hopefullness, Sidonia contains the seeds of a licencing system.

This licencing system is based on the following ideas

  • software version numbers
  • a licence issue date
  • a licence expiry date
  • the user is it licenced to
  • the hardware it expects to run on

At the moment there is a form of licence check in the software, but this doesn't determine whether the software runs or not. The UCI interface has an 8 digit activation code field. This ought to be used to activate a licence in some way. If anyone wants to volounteer to help me develop my licence ideas more completely, please get in touch. The only reward for doing so is likely to be in the form of continued and preferencial access to Sidonia chess software, but a sort of guinea pig to test things out on would be nice. It is hard to know how secure a safe is when you know the combination or have a copy of the keys!