Both, sort of.Sylwy wrote:Also is still unclear for me if Syzygy Bases are a sort of bitbases ( loaded into the RAM memory) with general informations (sort win-draw-loss) or show us the distance to mate (access at the root) ? Maybe both ?
If the root position is not yet in the tablebases, then the engine should use the WDL tables. These are a kind of bitbases, but with win/draw/loss information including information on whether the 50-move rule affects the win or loss. Engines can do with the 50-move rule information whatever they want (e.g. ignore it for correspondence games once ICCF has abolished the 50-move rule for tablebase positions, which appears to be the silly plan).
Once the root position is in the tablebases, the engine should use the DTZ tables. These tables give the distance to the earliest winning capture or pawn move. So they are not distance-to-mate (DTM) but distance-to-zero (zeroing move: captures and pawn moves "zero" the 50-move counter).
My adaptation of Stockfish does exactly this, but at the root does not automatically play the winning move with the lowest DTZ value. Instead, it takes all the winning moves (taking into account the 50-move rule) and then searches among those. The result is more natural play (not giving preference to pawn moves only because they have DTZ = 1), but the engine might show confusing scores (in particular if the win is still too deep for the engine to see). When I find some time I will try to improve this.
See also under "What to expect" here: https://github.com/syzygy1/Stockfish