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.
recognition of UCI protocol version 2
Moderators: hgm, Rebel, chrisw
-
- Posts: 12540
- Joined: Wed Mar 08, 2006 8:57 pm
- Location: Redmond, WA USA
-
- Posts: 2129
- Joined: Thu May 29, 2008 10:43 am
Re: recognition of UCI protocol version 2
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
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
-
- Posts: 2129
- Joined: Thu May 29, 2008 10:43 am
Re: recognition of UCI protocol version 2
On further thought...I'd like to correct myself here: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)
Apparently analyse is also the correct British (Aussie/Kiwi) spelling, as well as Dutch.
American English uses analyze.
-
- Posts: 41428
- Joined: Sun Feb 26, 2006 10:52 am
- Location: Auckland, NZ
Re: recognition of UCI protocol version 2
Yes, we also use realise and recognise amongst others.kranium wrote:On further thought...I'd like to correct myself here: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)
Apparently analyse is also the correct British (Aussie/Kiwi) spelling, as well as Dutch.
American English uses analyze.
gbanksnz at gmail.com
-
- Posts: 155
- Joined: Mon Feb 15, 2010 9:33 am
- Location: New Zealand
Re: recognition of UCI protocol version 2
What do you mean by version 2? I know of three documents, none of which explicitly versions the protocol:what is the string for these engines that MUST be present for the engine to qualify as UCI protocol version 2)?
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
-
- Posts: 319
- Joined: Fri Dec 18, 2009 11:40 am
- Location: Naperville, IL
Re: recognition of UCI protocol version 2
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.)
(Apologies to others who have had similar suggestions.)