Gaviota table bases in Scid?

Discussion of anything and everything relating to chess playing software and machines.

Moderator: Ras

Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Gaviota table bases in Scid?

Post by Michel »

Are there any plans to add Gaviota Table Bases (GTB) support to Scid?

Here is why I am asking.

Scid currently supports Nalimov Table Bases. However this has to be disabled
on Linux due to the non-free nature of Nalimov TB's.

GTB of course has no such problems. So a while ago I asked for the
inclusion of GTB in Debian. Oliver Korff, the maintainer of a lot of chess
software on Debian said it would be nice if there was some open source
GUI that could query GTB's. He suggested for example adapting Scid....
User avatar
hgm
Posts: 28331
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Gaviota table bases in Scid?

Post by hgm »

It seems such a waste of effort to do this in a GUI, if that GUI would not intrinsicaly need it for some useful purpose (e.g. adjudicating comp-comp games).

IMO a much more sensible solution would be to provide an engine to probe the tablebases. Using a standard protocol (UCI or WB) would allow you to probe GTB in any GUI. And it would automatically make all features the GUI offers (such as displaying PVs, following up their moves) available without any additional work in the GUI.

E.g. a WinBoard engine could, when it is his turn in a won or lost position, probe the PV all the way to mate (possibly limited by a previous sd command), print that as thinking output, and play the first move. During ponder or analysis it would just print the PV, and refrain from moving. And in response to the bk (book) command, it could print the list of all available moves from the current position.

Such an engine should really be part of the Gaviota Tablebase package itself.
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: Gaviota table bases in Scid?

Post by Michel »

It seems such a waste of effort to do this in a GUI, if that GUI would not intrinsicaly need it for some useful purpose (e.g. adjudicating comp-comp games).
It is not really a big effort if the support in the GUI is already there. In Scid it is just a question of replacing the Nalimov backend by Gaviota TB's.

Of course one has the additional option of loading an engine that understand GTB's (e.g. GnuChess).

Arena and ChessGUI also support GTB's natively.
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Gaviota table bases in Scid?

Post by michiguel »

Michel wrote:
It seems such a waste of effort to do this in a GUI, if that GUI would not intrinsicaly need it for some useful purpose (e.g. adjudicating comp-comp games).
It is not really a big effort if the support in the GUI is already there. In Scid it is just a question of replacing the Nalimov backend by Gaviota TB's.

Of course one has the additional option of loading an engine that understand GTB's (e.g. GnuChess).

Arena and ChessGUI also support GTB's natively.
Actually, Arena supports GTBs using gaviota as a "TB engine" and the bk command. From the point of view of the GUI, it is good enough and it is not even needed to upgrade anything when, for instance, the engine starts supporting 6 pieces TBs. However, if SCID already supports natively other TBs, I do not know what it is easier.

One thing I need to do is to write just a "TB engine" (i.e. a Gaviota version that responds only to bk and setboard) just to make it leaner and open the source.

Miguel
Michel
Posts: 2292
Joined: Mon Sep 29, 2008 1:50 am

Re: Gaviota table bases in Scid?

Post by Michel »

One thing I need to do is to write just a "TB engine" (i.e. a Gaviota version that responds only to bk and setboard) just to make it leaner and open the source.
That should be trivial to write if you don't support san. I think the pseudo engine would not need to have any chess knowledge.

My solution to the upgrade problem (at least on Linux) is to link with a shared library. As long as the api doesn't change the GTB's can be upgraded without breaking the programs depending on it. Of course currently this is a bit hypothetical as only (my) GnuChess uses this shared library and GTB's are not yet in the standard repositories. But I am confident this will change soon.
User avatar
hgm
Posts: 28331
Joined: Fri Mar 10, 2006 10:06 am
Location: Amsterdam
Full name: H G Muller

Re: Gaviota table bases in Scid?

Post by hgm »

michiguel wrote:One thing I need to do is to write just a "TB engine" (i.e. a Gaviota version that responds only to bk and setboard) just to make it leaner and open the source.
I would like that very much, and would probably bundle it with WinBoard. What I had in mind was to make it exactly like a normal engine, except that it would have a dummy search that would always return a CHECKMATED score when called upon (i.e. when the tablebase probe is a miss), making the engine resign. I don't care if it checks move legality, and I don't care whether it spews out SAN or long-algebraic (XBoard now has options to convert any PV to SAN). But I would like to be able to feed it full games in force mode, and only set it thinking when they enter the tablebase.
User avatar
michiguel
Posts: 6401
Joined: Thu Mar 09, 2006 8:30 pm
Location: Chicago, Illinois, USA

Re: Gaviota table bases in Scid?

Post by michiguel »

hgm wrote:
michiguel wrote:One thing I need to do is to write just a "TB engine" (i.e. a Gaviota version that responds only to bk and setboard) just to make it leaner and open the source.
I would like that very much, and would probably bundle it with WinBoard. What I had in mind was to make it exactly like a normal engine, except that it would have a dummy search that would always return a CHECKMATED score when called upon (i.e. when the tablebase probe is a miss), making the engine resign. I don't care if it checks move legality, and I don't care whether it spews out SAN or long-algebraic (XBoard now has options to convert any PV to SAN). But I would like to be able to feed it full games in force mode, and only set it thinking when they enter the tablebase.
I think I can do that. How about the command "resign" rather than "a checkmated score" when there is a tablebase miss? An engine has the right to resign whenever it wants, but checkmated could be misinterpreted by some other software that uses it.

Miguel
Alex

Re: Gaviota table bases in Scid?

Post by Alex »

When you install Scid using the package from e.g. Ubuntu, the TB option is disabled. But you can compile Scid from the source code provided on the Scid project homepage (http://scid.sourceforge.net/download.html). Here the TB function (for Nalimov tablebases) can be used and is not "grey" in the menue.
Alex.
Kurt
Posts: 45
Joined: Mon Aug 01, 2011 3:18 pm

Re: Gaviota table bases in Scid?

Post by Kurt »

Alex wrote:When you install Scid using the package from e.g. Ubuntu, the TB option is disabled. But you can compile Scid from the source code provided on the Scid project homepage (http://scid.sourceforge.net/download.html). Here the TB function (for Nalimov tablebases) can be used and is not "grey" in the menue.
Alex.
Just right Alex
Kurt