Author: Dann Corbit
Date: 10:54:46 03/15/05
Go up one level in this thread
On March 14, 2005 at 20:45:49, Michael Yee wrote: >On March 14, 2005 at 15:30:04, Dann Corbit wrote: > >>CREATE TABLE NumericParameters ( >> NumericParameterID INTEGER NOT NULL, >> ProgramID INTEGER NOT NULL, >> ProgramVersionID INTEGER NOT NULL, >> Name VARCHAR(255), >> Description VARCHAR(255), >> MinimumValue DOUBLE PRECISION, >> MaximumValue DOUBLE PRECISION, >> DefaultValue DOUBLE PRECISION, >> CurrentValue DOUBLE PRECISION, >> PreviousValue DOUBLE PRECISION >>); > >Maybe this table could also have fields for StepSize and whether or not the >parameter is restricted to be integer? I would like to keep it as simple as possible, because every change complicates the interface. I would just put that sort of thing into the description. But it could be modified for that purpose, or a new table could be formed that allows only integer values. >>CREATE TABLE OpeningBook ( >> OpeningBookID INTEGER NOT NULL, >> FormatID INTEGER, >> ProgramID INTEGER, >> ProgramVersionID INTEGER, >> BookName VARCHAR(255), >> BookPath VARCHAR(20) >>); > >Your database design looks really great (no surprise...). I especially like how >it allows easy management of different configurations of the same engine. > >But is your scheme more of an implementation choice for how the GUI would manage >its "installed" engines as opposed to part of the communication protocol? This database does not address engine to engine messages. The entire content is designed for gui to engine communication, for setup. The Winboard protocol is flawed, because every engine requires that you edit some ini file and each file is in a different format. How rude. The UCI protocol is flawed because it does not store the engine setup information. You have to communicate this stuff every time. Still, this part of the UCI protocol is clearly better than Winboard, because it at least is uniform. The idea of storing things in a database is so that the constants stored can be: 1. Persistent 2. Consistent You can write a single GUI that will work for all engines. >On a related note, I'm confused about where the FormatIDs for opening books >would come from... Would they be harvested from the engines (i.e., we create a >new ID every time an engine alerts the GUI about the existence of a new opening >book format through a getoptions mechanism), or would they be pre-defined in >some standard? I am aware of: 0. Thompson 1. Nalimov 2. Edwards 3. ChessMaster FEG 4. Ferret 5. Heinz 6. GAFS format Then there are bitbase files (probably as many different types as ordinary tablebase files. I have literally hundreds of chess engines. Probably 2/3 of them require that I spell out the EGTB location in an ini file. And (tragically) each new iteration of the program has a new ini file (possibly with a different format to the previous format) which over-writes the last setting. I think that tablebase files are the biggest mess, as far as engines are concerned. It is very hard to get permission to use them, despite the fact that Eugene Nalimov is a nice guy and eventually grants permission. I get at least one email per month asking *me* to get permission from Eugene because they have not got a response back from him in a long time. Despite the fact that he is right down the street from me, I have no magic portal to get permissions from him. Most of the other formats are unpublished or are unclear on usage. I would like to see a standardized format or set of formats, and also clear usage terms that are easy to obtain. The interface to tablebase files would clearly have to be standardized, and I would propose DLL usage like the case for Aristarch and List. This is clearly superior to everyone on earth writing their own interface over and over and over. What number corresponds to which EGTB would need to be clearly defined and also it makes sense to list the name of the DLL to load, for programs that want to dynamically load them. Clearly, for that to work, the full interface would need to be specified precisely.
This page took 0.01 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.