Fabien's open letter to the community

General discussion about computer chess...
Post Reply
Tord
Posts: 35
Joined: Mon Jun 14, 2010 9:08 pm
Real Name: Tord Romstad

Fabien's open letter to the community

Post by Tord » Sun Jan 23, 2011 10:15 pm

My good friend Fabien Letouzey, author of Fruit, asked me to post the following message for him:
Hello,

Long time no see.

First, I am not back to computer chess, sorry about that. I just want to clarify a few things. Sorry if that's old but there is some misunderstanding I need to fix, and I found out only yesterday. Bear in mind that I am mostly unaware of what has happened for five years though.

First there was the Strelka case. Dann approached me with some "Strelka" source code for me to check. I had never heard of it. I assumed it was some closed-source free engine and that people wanted to know whether it was based on the Fruit source code.

The short answer was "no", it was not a verbatim copy of the source code. All the code had been typed (can't say "designed" though, see below) by an individual. So legally there was no issue that I knew of. It was however a whole re-write (copy with different words if you like, similar to a translation) of the algorithms. Not just an extraction of a couple of ideas as is common, and normal.

That being said, some original changes and ideas were also included in the program. So it was, as has since been stated many times in fora I suppose, a bitboard re-write of Fruit with some personal (or otherwise) ideas. Also note that the source code Dann sent me might not be the from the 2.0 version.

Edit: I've just had a look at the 2.0 sources. On top of what I said above, there are many constant and function names that are identical to Fruit's. I remember noticing it back then as well.

Hope it helps, because my email answer to Dann was unusually short and cryptic even by my standards. And Dann, please next time make it clear when you want a public statement instead of a private opinion, thanks.

I want to point out something immediately: there was no mention of Rybka whatsoever. Indeed I was unaware of any relation between Strelka and Rybka, this is precisely what I learned only yesterday. I insist because it seems I have often been quoted about "not caring" about the (possible) Fruit/Rybka relationship, but this is not so. Strelka did not look like a problem because I assumed it was free.

Next, I was approached by Ryan (I think) and Christophe Theron about whether I could help with some "possible Fruit code inside Rybka" issues. I answered "yes, but how?", but did not get a reply. This did not make me really aware of a clone possibility however because I thought they were talking about some insignificant UCI-handling code or whatnot. Also this was several years after the initial Rybka release, and I guess quite a few people had a close look at it. Apparently Chrilly did?

Now if someone could tell me a bit more about the major events last five years and the current state of affairs, I'd be much obliged.

A few things I noticed yesterday, can you confirm?
- Rybka search info was obfuscated in some way (like displaying depth-3 or something), any pointers on details please?
- Vasik claimed that Strelka 2.0 is a clone of Rybka 1.0 (and you know what that would imply!)
- Zach Wegner found many Fruit ideas (and nearly identical code) in Rybka 1.0; I think someone else did, too
- Some even stronger open-source program appeared as a decompilation of Rybka (with own ideas, sounds familiar), what came up of looking at those?

Any questions, now is the one time to ask.

Thanks for your attention,

Fabien Letouzey.

User avatar
Ted Summers
Posts: 148
Joined: Thu Jun 10, 2010 12:49 am
Real Name: Ted Summers
Location: Marietta, GA (USA)
Contact:

Re: Fabien's open letter to the community

Post by Ted Summers » Sun Jan 23, 2011 10:25 pm

Thank You Tord!
"Good decisions come from experience, and experience comes from bad decisions."

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Fabien's open letter to the community

Post by BB+ » Sun Jan 23, 2011 10:35 pm

And Dann, please next time make it clear when you want a public statement instead of a private opinion, thanks.
Yeah, some of my colleagues do the same -- this can be annoying. :o
A few things I noticed yesterday, can you confirm?
- Rybka search info was obfuscated in some way (like displaying depth-3 or something), any pointers on details please?
Rybka 1.0 Beta does depth-2. Later versions use depth-3. The node counting is a different matter. Fadden's UCI parsing disassembly contains already the genesis of this.
- Vasik claimed that Strelka 2.0 is a clone of Rybka 1.0 (and you know what that would imply!)
This is true, I will get the link.
- Zach Wegner found many Fruit ideas (and nearly identical code) in Rybka 1.0; I think someone else did, too
Rick Fadden is the other main person behind disassembly efforts (I think he has disappeared from computer chess). I tried to collate their principal findings (some of which are perhaps of lesser relevance to FL) at: Brief Q&A about Rybka 1.0 Beta and Fruit 2.1, while Zach's page handles the eval similarities.
- Some even stronger open-source program appeared as a decompilation of Rybka (with own ideas, sounds familiar), what came up of looking at those?
Not sure what the question is regarding as to "came up of looking at those?" :) Many engines gained a lot of Elo... :!: I think my analysis of R3/IPPOLIT is still considered the most thorough, while Houdini/IPPOLIT (or RobboLito) analyses are in a more nascent state (I am limited to 5 URLs, so don't link it).

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Fabien's open letter to the community

Post by BB+ » Sun Jan 23, 2011 10:39 pm

The whole Strelka/Rybka thread is: http://rybkaforum.net/cgi-bin/rybkaforu ... l?tid=3006

Here is the principal message from VR (emphasis added):
I've taken a look this morning at the Strelka 2.0 sources. The picture is quite clear.

Vast sections of these sources started their life as a decompiled Rybka 1.0. The traces of this are everywhere. The board representation is identical, and all sorts of absolutely unique Rybka code methods, bitboard tricks and even exact data tables are used throughout. Significant portions of the search and evaluation logic are not fully disassembled - the author has left in hardcoded constants and used generic names (such as "PawnStruScore0" & "PawnStruScore1", "PassedPawnValue0" through "PassedPawnValue7", etc) which show that he hasn't yet fully understood what is happening.

In some cases, these traces do also extend beyond the inner search and evaluation kernel. For instance, Rybka and Strelka are the only engines which I know about which don't report "seldepth" and "hashfull". Rybka's UCI strings are used throughout.

The author did at first make attempts to hide the Rybka origins, for example by masking the table values in earlier Strelka versions. He also made significant attempts to improve the program. The attempts at improvement are not very original, but they are everywhere. They include PV collection, null verification (and in fact changes to the null implementation itself), some endgame drawishness heuristics, a handful of new evaluation term, a new approach to blending between opening and endgame eval terms, and so on. They also do include various structural changes, such as knight underpromotions, on-the-fly calculations of many tables, the setting of piece-square table values, etc. These changes are extensive and no doubt lead to differences in playing style and perhaps a useful engine for users to have, but they do not change the illegality of the code base.

In light of the above, I am claiming Strelka 2.0 as my own and will release it in the next few days under my own name. The name of the author with the pen name "Osipov" will be included if he comes forward with hiw own real name, otherwise an anonymous contribution will be noted. The contributions of Igor Korshunov will also be confirmed and noted if appropriate. All usage permissions will be granted with this release.

I do not see obvious signs of other code usage, but perhaps this deserves a closer look. Some of the transplanted ideas, such as the null verification search, are rather naive implementations of the approach in Fruit/Toga, although my first impression is that that code itself is original. The Winboard parser from Beowolf which was added to Strelka 1.0 seems to have been completely removed. If someone else does find other signs of code theft, please get in touch with me and I will give proper credit in the upcoming release.

If someone has suggestions about an appropriate license, and in particular the pros and cons of the GPL for a chess engine and for this unusual scenario, or if someone would be willing to help in preparing this code and license for release, please also get in touch with me.

As this code is two years and several hundred Elo old, I am not going to launch any major action. However, 'Osipov' has already threatened to repeat the procedure with Rybka 2.3.2a. (He did this after I declined to grant him rights to commercialize Strelka.) If this situation does repeat with a newer Rybka version, I will not just stand and watch any more. In the meantime, if someone has information about 'Osipov', please get in touch with me.
In the end, he realised that this release plan was infeasible (see the rest of that thread).

User avatar
thorstenczub
Posts: 593
Joined: Wed Jun 09, 2010 12:51 pm
Real Name: Thorsten Czub
Location: United States of Europe, germany, NRW, Lünen
Contact:

Re: Fabien's open letter to the community

Post by thorstenczub » Sun Jan 23, 2011 11:19 pm

if strelka is fruit (says fabian), and strelka is rybka (says vas rajlich), isn't this saying that rybka is fruit ?


:roll:

User avatar
Ted Summers
Posts: 148
Joined: Thu Jun 10, 2010 12:49 am
Real Name: Ted Summers
Location: Marietta, GA (USA)
Contact:

Re: Fabien's open letter to the community

Post by Ted Summers » Sun Jan 23, 2011 11:25 pm

thorstenczub wrote:if strelka is fruit (says fabian), and strelka is rybka (says vas rajlich), isn't this saying that rybka is fruit ?


:roll:
+1 :D
"Good decisions come from experience, and experience comes from bad decisions."

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Fabien's open letter to the community

Post by Jeremy Bernstein » Sun Jan 23, 2011 11:40 pm

Tord wrote:My good friend Fabien Letouzey, author of Fruit, asked me to post the following message for him:
This is huge. I'm looking forward to the reaction from Vas, but don't expect that he'll dignify it with a response. He can only lose, whatever he says. Thanks for posting it, Tord.

Jeremy

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Fabien's open letter to the community

Post by BB+ » Sun Jan 23, 2011 11:40 pm

Well, if you want my take on the whole lot: "It is a tale told by an idiot, full of sound and fury, signifying nothing."

slobo
Posts: 36
Joined: Sun Jun 13, 2010 2:09 am

Re: Fabien's open letter to the community

Post by slobo » Mon Jan 24, 2011 12:18 am

Thanks, Tord, for this post.
And also thanks to Fabien for his definitive and undubious clarification.

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: Fabien's open letter to the community

Post by kingliveson » Mon Jan 24, 2011 1:19 am

My only comment:

Code: Select all

#!/system/bin/sh
#

ruleOne()
{
  echo Rybka is the strongest chess engine.
}
ruleTwo()
{
  echo Rybka is not the strongest chess engine.
  ruleThree;
}
ruleThree()
{
  echo Any chess engine stronger than Rybka, must per force be a clone of Rybka.
  ruleFour;
}
ruleFour()
{
  echo Any clone of Rybka, is Rybka.
  ruleOne;
}

#main

echo -n "Is Rybka the strongest chess engine? Enter y or n: "
read answer
if [ $answer == "y" ]; then
  ruleOne;
else
  ruleTwo;
fi 
PAWN : Knight >> Bishop >> Rook >>Queen

Post Reply