My two cents on the whole ippolit thing

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

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

My two cents on the whole ippolit thing

Post by Dann Corbit »

First some history and my opinions pasted to it:
The chess engine Rybka came onto the scene with version 1.0 and it was a stunning world beater.
Sometime later, some enterprising souls did some reverse engineering of Rybka and came to the conclusion that it had striking similarities to fruit.
Here are some links to the analysis:
{analysis links removed}

The inescapable conclusion is that Rybka 1.0 is heavily influenced by Fruit.
That brings up the question: "Is wrongdoing involved on the part of Vas?"
To examine this question, we must first examine the license of fruit:
Fruit is GPL, version 2.
Therefore, if code from Fruit is used, subsequent programs are also GPL V2. Rybka 1.0 is not GPL, V2 and so we may have suspicions raised that wrongdoing has occurred.
On the other hand, it is not wrong to read an algorithm, understand it, and write your own. This will not violate the GPL, since algorithms do not have copyright protection (that requires a patent). Let us also not forget that strong chess players are known to have prodigious memories.

So we are down to this:
Did Vas copy GPL code and modify it, or did he learn from it by studying it carefully and writing his own version. In my opinion it is not possible to know the answer to this question. I think it is possible to harbor doubts and probably many people do harbor some doubts about it. However, we cannot know which path Vas took. We do certainly have this statement from Vas himself:
"Special Thanks

I hesitate to include this section because I know I'll forget people who have been helpful in this project, but (with advance apologies to the omitted) here goes:

Robert Hyatt - For Crafty. There is nothing like an open source program for passing knowledge to the next generation.
Fabien Letouzey - For Fruit, which shattered a number of computer chess myths, demonstrated several interesting ideas, and made even the densest of us aware of fail-low pruning.
{additional details snipped by dcorbit}"

Stage 2:
Yuri Osipov reverse engineers Rybka (probably using tools like IdaPro) and makes a frankenstein of Rybka and Fruit (and a tiny fragment of Beowulf!) called Strelka. This binary is far smaller than Rybka, but seems to be just about as strong. We are not left wondering if the new methods inside of Strelka are highly similar to the ones in Rybka, because Vas himself says so.

Whether Yuri has done something wrong in this regard is also not clear to me. The documents that came with Rybka 1.0 clearly stated:
"Contents & License

In this package, you will find the Rybka 1.0 Beta chess engine (dated Dec 4, 2005), as well as the Turk opening book by Djordje Vidanovic. Both versions of these components are free and can be used and transmitted without restriction."

Because the license says 'used without restriction' it is entirely possible that Yuri has not broken any laws in connection with his reverse engineering. (Moral views as to right and wrong are another matter and are personal preferences of each person).

Stage 3:
Some time after the release of Rybka 3, we have a new project called IPPOLIT. The only evidence that I have that IPPOLIT is derived from Rybka 3 is circumstantial and hearsay evidence. I have had email conversations with Vas that convinced me that it has been derived from Rybka. We can examine the source and it appears (very strongly) to be a product of reverse engineering. We also notice that this product of unknown authors is remarkably strong like Rybka.

So, my opinions:
1. Vas may or may not have done something legally wrong in connection with the fruit code. Whether or not you think he has done something morally wrong is another issue entirely and I also do not know the answer to this question.
2. In the reverse engineering of Rybka 1.0 Yuri also may or may not have done something wrong. I am not sure about it either way. Considering the license agreement it seems to me that legally he probably did not break the law (but I am not a lawyer or legal expert so I can be wrong about it).
3. In the reverse engineering of Rybka 3 to create IPPOLIT (and other offshoots) we have not any definite proof of wrongdoing, but I am convinced fairly well myself (and only an opinion of mine) that IPPOLIT is *probably* reverse engineered from Rybka 3.

So, because of my opinion on the *probable* source of IPPOLIT, I do not think that this site should be used as a hub for trading IPPOLIT source. The reason is that it is "of *questionable* legal status and would therefore be a violation of the charter.

Now, that having been said, any dimwit with 5 minutes of free time and google handy can collect all they would ever like to know about (possibly) illegal Rybka clones.

And now for a confession --> I am an information whore of the worst kind.

Not only have I examined the IPPOLIT sources, but I have also looked not only at Rybka's innards using a debugger (the DAY that I bought it) but also the innards of every professional and amateur chess engine without source code ON THE PLANET. Now, I would never take what I learn and use it to produce a competing product or in any other way intentionally harm the authors of the originals. But I have an almost perverse "want to know" drive that eggs me into this sort of thing. So (in some sense) my hands are also dirty.
Be that as it may, I still side with the "no warez or suspected warez links in CCC" stand.
Last edited by Dann Corbit on Sat Oct 31, 2009 4:34 am, edited 2 times in total.
User avatar
Matthias Gemuh
Posts: 3245
Joined: Thu Mar 09, 2006 9:10 am

Re: My two cents on the whole ippolit thing

Post by Matthias Gemuh »

Interesting and quite accurate, Dann.
However, you have skipped an important point: Ippolit is not reverse engineered (directly) from Rybka 3.
It is reverse engineered from some engine written in a russian programming language "b".
The question is whether "b"-Ippolit is a reverse engineered Rybka 3 or not.
That is where proofs are completely missing.

Matthias.
My engine was quite strong till I added knowledge to it.
http://www.chess.hylogic.de
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: My two cents on the whole ippolit thing

Post by Dann Corbit »

Matthias Gemuh wrote:Interesting and quite accurate, Dann.
However, you have skipped an important point: Ippolit is not reverse engineered (directly) from Rybka 3.
It is reverse engineered from some engine written in a russian programming language "b".
The question is whether "b"-Ippolit is a reverse engineered Rybka 3 or not.
That is where proofs are completely missing.

Matthias.
Perhaps the Russian language b is the output of a decompiler tool. As I said, it is not proven to be reverse engineered. It is (however) suspected.

At any rate, the origin is questionable (to me at least) and therefore posting links is [IMO] a violation of the charter.
Hart

Re: My two cents on the whole ippolit thing

Post by Hart »

Why were the links removed? I do not recall ever having seem them before or the line by line comparison of Fruit and Rybka code.
Dann Corbit
Posts: 12540
Joined: Wed Mar 08, 2006 8:57 pm
Location: Redmond, WA USA

Re: My two cents on the whole ippolit thing

Post by Dann Corbit »

Hart wrote:Why were the links removed? I do not recall ever having seem them before or the line by line comparison of Fruit and Rybka code.
The author of the links did not give me permission to post them.
Eventually, they will be published but the author wants to post them in his own due time.
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: My two cents on the whole ippolit thing

Post by Zach Wegner »

Hart wrote:Why were the links removed? I do not recall ever having seem them before or the line by line comparison of Fruit and Rybka code.
Sorry about that. They were to my personal website, and I didn't want to make them public quite yet, since I hadn't finished the analysis. I sent them to Dann a while back to look over, and I guess I forgot to tell him that it wasn't ready to be published yet.

What was posted was (most of) a comparison of the evaluations. I have a bit more that I can clean up and post, and more that I still need to actually write. It's pretty time consuming work, but if this thread turns into a flamewar (which seems rather likely), I suppose I'll be forced into finishing it...
Hart

Re: My two cents on the whole ippolit thing

Post by Hart »

Really interesting stuff. Is the Rybka code taken from Strelka or a new decompilation effort, or both, or should I wait for you to finish and then ask you all these questions?
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: My two cents on the whole ippolit thing

Post by Zach Wegner »

Hart wrote:Really interesting stuff. Is the Rybka code taken from Strelka or a new decompilation effort, or both, or should I wait for you to finish and then ask you all these questions?
It was a new decompilation effort. Strelka was mostly used as an aid in decompilation. I would look there if I was not sure about something. There are some differences between Rybka and Strelka, so I wanted to verify all of the Rybka-equivalent code I posted was accurate.

I had planned to make a page documenting this, but I have yet to do so.
adieguez

Re: My two cents on the whole ippolit thing

Post by adieguez »

Dann Corbit wrote:First some history and my opinions pasted to it:
The chess engine Rybka came onto the scene with version 1.0 and it was a stunning world beater.
Sometime later, some enterprising souls did some reverse engineering of Rybka and came to the conclusion that it had striking similarities to fruit.
Here are some links to the analysis:
{analysis links removed}

The inescapable conclusion is that Rybka 1.0 is heavily influenced by Fruit.
wow that's interesting stuff. I don't know if I remember well, but I think before "Rybka 1.0", Vas had already a weaker version right? so he later changed the evaluation then maybe? why would one semicopy an evaluation? including things that may look caprichous, I don't think that's even something that's going to give you too much elo and feels kind of cheap. Was changing the eval an elo-boost? is that Fruit eval specially strong at all?? :) and would an international master prefer to base heavily its eval in another eval instead of try to write it by himself?
adieguez

Re: My two cents on the whole ippolit thing

Post by adieguez »

adieguez wrote:
Dann Corbit wrote:First some history and my opinions pasted to it:
The chess engine Rybka came onto the scene with version 1.0 and it was a stunning world beater.
Sometime later, some enterprising souls did some reverse engineering of Rybka and came to the conclusion that it had striking similarities to fruit.
Here are some links to the analysis:
{analysis links removed}

The inescapable conclusion is that Rybka 1.0 is heavily influenced by Fruit.
wow that's interesting stuff. I don't know if I remember well, but I think before "Rybka 1.0", Vas had already a weaker version right? so he later changed the evaluation then maybe? why would one semicopy an evaluation? including things that may look caprichous, I don't think that's even something that's going to give you too much elo and feels kind of cheap. Was changing the eval an elo-boost? is that Fruit eval specially strong at all?? :) and would an international master prefer to base heavily its eval in another eval instead of try to write it by himself?
Actually I don't want to "acuse" no one of nothing. I wrote just with my first impression. Taking that aside, I repeat it is a bit strange, coming from an international master one would expect an eval much more complex than an average one. But it's ok. I remember also a webpage where the author did a theory about rybka strength and talk about the better calculation of the potential of the pieces or something like that, pure ilusion?.