Author: Dann Corbit
Date: 12:30:04 03/14/05
Go up one level in this thread
On March 14, 2005 at 12:45:22, Michael Yee wrote: >The protocol proposal has been updated to reflect several good >comments/suggestions. > >(1) There is now a table of what commands are valid in each state. This makes >the protocol clearer and even look simpler than it did before (at least to me >:). Thanks to Harald for this suggestion. > >(2) New commands from GUI to engine : getstartpos, getmovelist, getresult > >This enables the protocol to be truly extensible since variants that aren't >officially supported by the GUI can still be supported by letting one engine be >the "referee" or "arbiter". This interesting idea came from Reinhard (also the >source of the move and position formats for officially supported variants >FRC/CRC). > >(3) New command from engine to GUI : error > >------ > >Even if people are dead set against introducing a new protocol into the mix, I'm >curious what UCI fans think about some of the extensions. Specifically, > >- describing what options mean, >- custom thinking output, and even >- getstartpos, getmovelist, getresult > >could be added without too much fuss (while maintaining the core philosophy of a >stateless engine)... All parameters for all engines should be stored in a database file. Perhaps something like this: CREATE TABLE BooleanParameters ( BooleanParameterID INTEGER NOT NULL, ProgramID INTEGER NOT NULL, ProgramVersionID INTEGER NOT NULL, Name VARCHAR(255), Description VARCHAR(255), DefaultValue TINYINT, CurrentValue TINYINT, PreviousValue TINYINT ); CREATE UNIQUE INDEX BooleanParameters_INDEX_1 ON BooleanParameters ( BooleanParameterID, ProgramID, ProgramVersionID ); CREATE UNIQUE INDEX BooleanParameters_INDEX_0 ON BooleanParameters ( BooleanParameterID, ProgramID, ProgramVersionID ); CREATE INDEX BooleanParameters_INDEX_2 ON BooleanParameters ( Name ); CREATE INDEX BooleanParameters_INDEX_3 ON BooleanParameters ( ProgramID ); CREATE INDEX BooleanParameters_INDEX_4 ON BooleanParameters ( ProgramID, ProgramVersionID ); CREATE INDEX BooleanParameters_INDEX_5 ON BooleanParameters ( ProgramVersionID ); CREATE TABLE CountryCodes ( CountryID INTEGER NOT NULL, abbreviation CHAR(2) NOT NULL, countryname VARCHAR(255) ); CREATE UNIQUE INDEX CountryCodes_INDEX_3 ON CountryCodes ( CountryID ); CREATE UNIQUE INDEX CountryCodes_INDEX_0 ON CountryCodes ( CountryID ); CREATE UNIQUE INDEX CountryCodes_INDEX_1 ON CountryCodes ( abbreviation ); CREATE UNIQUE INDEX CountryCodes_INDEX_2 ON CountryCodes ( countryname ); CREATE TABLE EndGameDataBase ( EgdbID INTEGER NOT NULL, EgdbTypeID INTEGER NOT NULL, EgdbPath VARCHAR(255) ); CREATE UNIQUE INDEX EndGameDataBase_INDEX_1 ON EndGameDataBase ( EgdbTypeID ); CREATE UNIQUE INDEX EndGameDataBase_INDEX_0 ON EndGameDataBase ( EgdbTypeID ); CREATE UNIQUE INDEX EndGameDataBase_INDEX_2 ON EndGameDataBase ( EgdbID ); CREATE UNIQUE INDEX EndGameDataBase_INDEX_3 ON EndGameDataBase ( EgdbID ); CREATE TABLE EndGameDataBaseType ( EgdbTypeID INTEGER NOT NULL, EgdbTypeDescription VARCHAR(255) ); CREATE UNIQUE INDEX EndGameDataBaseType_INDEX_0 ON EndGameDataBaseType ( EgdbTypeDescription ); CREATE UNIQUE INDEX EndGameDataBaseType_INDEX_1 ON EndGameDataBaseType ( EgdbTypeID ); CREATE UNIQUE INDEX EndGameDataBaseType_INDEX_2 ON EndGameDataBaseType ( EgdbTypeID ); 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 ); CREATE UNIQUE INDEX NumericParameters_INDEX_1 ON NumericParameters ( NumericParameterID, ProgramID, ProgramVersionID ); CREATE UNIQUE INDEX NumericParameters_INDEX_0 ON NumericParameters ( NumericParameterID, ProgramID, ProgramVersionID ); CREATE INDEX NumericParameters_INDEX_2 ON NumericParameters ( Name ); CREATE INDEX NumericParameters_INDEX_3 ON NumericParameters ( ProgramID ); CREATE INDEX NumericParameters_INDEX_4 ON NumericParameters ( ProgramVersionID ); CREATE INDEX NumericParameters_INDEX_5 ON NumericParameters ( ProgramID, ProgramVersionID ); CREATE TABLE OpeningBook ( OpeningBookID INTEGER NOT NULL, FormatID INTEGER, ProgramID INTEGER, ProgramVersionID INTEGER, BookName VARCHAR(255), BookPath VARCHAR(20) ); CREATE UNIQUE INDEX OpeningBook_INDEX_1 ON OpeningBook ( OpeningBookID ); CREATE UNIQUE INDEX OpeningBook_INDEX_0 ON OpeningBook ( OpeningBookID ); CREATE INDEX OpeningBook_INDEX_2 ON OpeningBook ( BookName ); CREATE INDEX OpeningBook_INDEX_3 ON OpeningBook ( FormatID ); CREATE INDEX OpeningBook_INDEX_4 ON OpeningBook ( FormatID ); CREATE INDEX OpeningBook_INDEX_5 ON OpeningBook ( ProgramID ); CREATE INDEX OpeningBook_INDEX_6 ON OpeningBook ( ProgramVersionID ); CREATE INDEX OpeningBook_INDEX_7 ON OpeningBook ( ProgramID, ProgramVersionID ); CREATE TABLE OpeningBookFormats ( FormatID INTEGER NOT NULL, Name VARCHAR(50), TechnicalDescription LONGVARCHAR(1024) ); CREATE UNIQUE INDEX OpeningBookFormats_INDEX_1 ON OpeningBookFormats ( FormatID ); CREATE UNIQUE INDEX OpeningBookFormats_INDEX_0 ON OpeningBookFormats ( FormatID ); CREATE TABLE Program ( ProgramID INTEGER NOT NULL, ProgrammerID INTEGER, ProgramName VARCHAR(255) ); CREATE UNIQUE INDEX Program_INDEX_3 ON Program ( ProgramID ); CREATE UNIQUE INDEX Program_INDEX_0 ON Program ( ProgramID ); CREATE UNIQUE INDEX Program_INDEX_1 ON Program ( ProgrammerID ); CREATE UNIQUE INDEX Program_INDEX_2 ON Program ( ProgrammerID ); CREATE TABLE ProgrammerInfo ( ProgrammerID INTEGER, Picture LONGVARBINARY(1024), Greeting LONGVARBINARY(1024), Biography LONGVARCHAR(1024) ); CREATE UNIQUE INDEX ProgrammerInfo_INDEX_1 ON ProgrammerInfo ( ProgrammerID ); CREATE UNIQUE INDEX ProgrammerInfo_INDEX_0 ON ProgrammerInfo ( ProgrammerID ); CREATE TABLE Programmers ( ProgrammerID INTEGER, Firstname VARCHAR(255), ProgramID INTEGER NOT NULL, middlename VARCHAR(255), lastname VARCHAR(255), title VARCHAR(255), countryid INTEGER, countryid INTEGER, notes VARCHAR(255) ); CREATE UNIQUE INDEX Programmers_INDEX_0 ON Programmers ( ProgrammerID, ProgramID ); CREATE INDEX Programmers_INDEX_1 ON Programmers ( countryid ); CREATE INDEX Programmers_INDEX_2 ON Programmers ( countryid ); CREATE INDEX Programmers_INDEX_3 ON Programmers ( Firstname ); CREATE INDEX Programmers_INDEX_4 ON Programmers ( lastname ); CREATE TABLE ProgramVersion ( ProgramID INTEGER NOT NULL, ProgramVersionID INTEGER NOT NULL, ProgramVersionOrDate VARCHAR(255), PhysicalLocation VARCHAR(255), PhysicalName VARCHAR(255), LogicalName VARCHAR(255), EgdbID INTEGER ); CREATE UNIQUE INDEX ProgramVersion_INDEX_1 ON ProgramVersion ( EgdbID ); CREATE UNIQUE INDEX ProgramVersion_INDEX_0 ON ProgramVersion ( EgdbID ); CREATE UNIQUE INDEX ProgramVersion_INDEX_2 ON ProgramVersion ( ProgramID, ProgramVersionID ); CREATE UNIQUE INDEX ProgramVersion_INDEX_3 ON ProgramVersion ( ProgramID, ProgramVersionID ); CREATE INDEX ProgramVersion_INDEX_4 ON ProgramVersion ( PhysicalName ); CREATE INDEX ProgramVersion_INDEX_5 ON ProgramVersion ( ProgramID ); CREATE TABLE StringParameterDomain ( StringParameterDomainID INTEGER NOT NULL, StringParameterID INTEGER NOT NULL, ProgramID INTEGER NOT NULL, ProgramVersionID INTEGER NOT NULL, Value VARCHAR(255), Description VARCHAR(255) ); CREATE UNIQUE INDEX StringParameterDomain_INDEX_1 ON StringParameterDomain ( StringParameterDomainID, StringParameterID, ProgramID, ProgramVersionID ); CREATE UNIQUE INDEX StringParameterDomain_INDEX_0 ON StringParameterDomain ( StringParameterDomainID, StringParameterID, ProgramID, ProgramVersionID ); CREATE INDEX StringParameterDomain_INDEX_2 ON StringParameterDomain ( ProgramID ); CREATE INDEX StringParameterDomain_INDEX_3 ON StringParameterDomain ( ProgramVersionID ); CREATE INDEX StringParameterDomain_INDEX_4 ON StringParameterDomain ( StringParameterDomainID ); CREATE INDEX StringParameterDomain_INDEX_5 ON StringParameterDomain ( StringParameterID ); CREATE INDEX StringParameterDomain_INDEX_6 ON StringParameterDomain ( StringParameterID, ProgramID, ProgramVersionID ); CREATE INDEX StringParameterDomain_INDEX_7 ON StringParameterDomain ( Value ); CREATE TABLE StringParameters ( StringParameterID INTEGER NOT NULL, ProgramID INTEGER NOT NULL, ProgramVersionID INTEGER NOT NULL, Name VARCHAR(255), Description VARCHAR(255) ); CREATE UNIQUE INDEX StringParameters_INDEX_1 ON StringParameters ( StringParameterID, ProgramID, ProgramVersionID ); CREATE UNIQUE INDEX StringParameters_INDEX_0 ON StringParameters ( StringParameterID, ProgramID, ProgramVersionID ); CREATE INDEX StringParameters_INDEX_2 ON StringParameters ( Name ); CREATE INDEX StringParameters_INDEX_3 ON StringParameters ( ProgramID ); CREATE INDEX StringParameters_INDEX_4 ON StringParameters ( ProgramVersionID ); CREATE INDEX StringParameters_INDEX_5 ON StringParameters ( ProgramID, ProgramVersionID );
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.