"Do you know SEE?"         (November 26, 2022)

 

Today, one day before the 2023 release, I have everything ready and can use the afternoon for something I have been planning for a long time. During the preparations for the release, I was reminded of the topic again. Hagen, my longtime software tester, wrote to me: "Do you know SEE?" Ok, that's not quite right, because he actually wrote in German: "Kennst Du SEE?" I was happy that I could answer that question with a yes.


I came across SEE on the ARVES website, which I visit quite regularly. There is a reference to a program by Árpád Rusz called SEE and another reference to Emil Vlasák's GUI for SEE called VisualSEE.

 

SEE stands for Syzygy Endgame Explorer, and this is how Rusz introduces the program in its manual:

Syzygy Endgame Explorer (SEE) is a software written by Árpád Rusz for
"mining" the Syzygy endgame tablebases. It is a tool similar to Chess Query
Language (CQL) but one which searches endgame tablebases instead of
PGN files.
This tool can find interesting positions (e.g. mutual zugzwangs, checkmates,
stalemates, fortresses), it can also identify positions where interesting moves
are the only winning or drawing ones (e.g. a piece moves to a corner square
or it is sacrificed, minor promotions), and it can find interesting move
sequences (e.g. a knight manoeuvres from a corner square to another corner
square, or queen staircases). It can "compose" a "study" (almost) by itself!

 

Many years ago I used the old CQL a lot and I knew the new CQL at least a little bit. So I understood the description and was very excited to see SEE. However, if you do not know CQL or SEE, resp., and if you do not have any programming experience of your own, be warned: Using these programs requires the ability to abstract and a lot of patience, too!

The SEE manual, for example, is 158 pages, peppered with many interesting examples, and it really needs to be read and understood.

An old programmer's joke says: Never use a program in version 1.0! The version of SEE is 0.3, so you should expect to have some other issues to fix. One of my first requests resulted in a PGN file with illegal games: according to the FEN for the start position Black had the move, but the first move was always made by White. The problem vanished after rewriting the request.

 

According to the manual, SEE is a Stockfish engine with an additional UCI command "see". This command has a text file as parameter in which the complete search request is formulated. The output is FEN strings and a PGN file is written. In the request,  a Syzygy tablebase has to be specified , say king and pawn vs king and pawn. I assume that the SEE code around Stockfish's original code filters the positions from the tablebase according to the conditions in the request and delegates the evaluation to the Stockfish code.

 

The benefit of SEE depends entirely on the request. For this you need on the one hand an idea of what you want to look for and on the other hand the experience of being able to formulate this as a SEE request. Then SEE will find positions or fragments according to your idea.


Addendum:

1. Some time ago I tried to get in touch with Mr Rusz, but he didn't respond. There has also been no activity on his homepage for a long time. Maybe he is no longer active. I would be grateful if someone could make contact.

 

2. As mentioned above, SEE is a Stockfish program and Stockfish's license (GPL) enforces that the source code of SEE must be made public. I couldn't find the source code anywhere. Any ideas?