recognition of UCI protocol version 2

Discussion of chess software programming and technical issues.

Moderators: hgm, Rebel, chrisw

Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

recognition of UCI protocol version 2

Post by Dann Corbit »

For Winboard/Xboard engines, it is easy to recognize protocol version 2 engines by existance of the string:

protover

What can we use for the same functionality for UCI protocol version 2 (IOW, what is the string for these engines that MUST be present for the engine to qualify as UCI protocol version 2)?

I am making automatic recognizers that search through the binary for strings and do a fuzzy estimate to tell if an engine is UCI or Winboard compliant {and fior which of these protocols the engine has greatest flexibility} and also I would like to recognize the protocol verisons.
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: recognition of UCI protocol version 2

Post by kranium »

Hi Dann

There are many...
here are some I can think of:

UCI_AnalyseMode
UCI_ShowCurrLine
UCI_ShowRefutations
UCI_LimitStrength
UCI_Elo
UCI_EngineAbout
UCI_Chess960
UCI_SetPositionValue

I implemented UCI_EngineAbout and UCI_AnalyseMode in Fire 1.31 and Arena does correctly report the engine as UCI-2.
(note the German/Dutch non-English spelling of Analyze here)

I believe anything appended with UCI_ prefix designates it as UCI-2 compliant
...problem is: ATM written specification seems impossible to find.

I'll bet Michael Diosi and/or Martin Blume can help here...
(or Stefan Meyer-Kahlen)

Hope this helps...
Good luck with the project.

Norm
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: recognition of UCI protocol version 2

Post by kranium »

kranium wrote: I implemented UCI_EngineAbout and UCI_AnalyseMode in Fire 1.31 and Arena does correctly report the engine as UCI-2.
(note the German/Dutch non-English spelling of Analyze here)
On further thought...I'd like to correct myself here:
Apparently analyse is also the correct British (Aussie/Kiwi) spelling, as well as Dutch.
American English uses analyze.
User avatar
Graham Banks
Posts: 41428
Joined: Sun Feb 26, 2006 10:52 am
Location: Auckland, NZ

Re: recognition of UCI protocol version 2

Post by Graham Banks »

kranium wrote:
kranium wrote: I implemented UCI_EngineAbout and UCI_AnalyseMode in Fire 1.31 and Arena does correctly report the engine as UCI-2.
(note the German/Dutch non-English spelling of Analyze here)
On further thought...I'd like to correct myself here:
Apparently analyse is also the correct British (Aussie/Kiwi) spelling, as well as Dutch.
American English uses analyze.
Yes, we also use realise and recognise amongst others. :)
gbanksnz at gmail.com
micron
Posts: 155
Joined: Mon Feb 15, 2010 9:33 am
Location: New Zealand

Re: recognition of UCI protocol version 2

Post by micron »

what is the string for these engines that MUST be present for the engine to qualify as UCI protocol version 2)?
What do you mean by version 2? I know of three documents, none of which explicitly versions the protocol:

Undated, but evidently early. No mention of UCI_Xxxxx.
http://terra.fendrich.se/uci-protocol.rtf


2004. Adds UCI_ShowCurrLine, UCI_ShowRefutations, UCI_LimitStrength, UCI_Elo, UCI_AnalyseMode, UCI_Opponent.
http://wbec-ridderkerk.nl/html/UCIProtocol.html


2006. Adds UCI_EngineAbout, UCI_ShredderbasesPath, UCI_SetPositionValue, UCI_Chess960.
http://www.shredderchess.com/download.html
UncombedCoconut
Posts: 319
Joined: Fri Dec 18, 2009 11:40 am
Location: Naperville, IL

Re: recognition of UCI protocol version 2

Post by UncombedCoconut »

Why not just detect strings that denote features/options? Many of those names are protocol-specific, and can make the decision for you. If you find none or a balanced set, it may be OK just to guess between the implemented protocols. Most multi-protocol engines try to expose their full feature set in both languages.
(Apologies to others who have had similar suggestions.)