Fruit 2.1 vs Strelka 2.0

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

Moderator: Ras

User avatar
tiger
Posts: 819
Joined: Sat Mar 11, 2006 3:15 am
Location: Guadeloupe (french caribbean island)

Re: Fruit 2.1 vs Strelka 2.0

Post by tiger »

chrisw wrote:Zach,

Do you seriously imagine Frederik is going to take on publishing Rybka without cast-iron guarantees that it is squeaky clean?

Why risk it?

Do you imagine Vas, if Rybka was just maybe possibly under suspicion, didn't spend all the effort necessary to ensure no possible contamination from other software?

Business is business. Breaches of criminal and/or civil law, unnecessarily, woudl be just dumb. And why woudl it be necessary? Do you imply there isn't sufficient knowledge and capability in the Vas team to be unable to produce independent source code?

Come on.


Chris I forgot to mention that in ALL software distribution contracts I have ever signed in my life, there was a special clause.

The clause states that the author of the program to be distributed guarantees that he owns all the needed rights on the software and that he will protect the distributor against any lawsuit about copyright issues on said software.

So basically the distributor is not taking any risk even if later the copyright is challenged.



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

Re: Fruit 2.1 vs Strelka 2.0

Post by kranium »

geots wrote:
kranium wrote:
Uri Blass wrote:
tiger wrote:
Uri Blass wrote:
tiger wrote:
GenoM wrote:
Uri Blass wrote:I disagree about the 40-50% and it may be something like 10-20%

No similiarity in the move generator that is a significant part of strelka.
No extremely similiar code in the evaluation function that is also important part(there may be similiar ideas about evaluation but not similiar code and strelka has special code for material imbalance tables).

I do not understand how do you get at least 40-50% similiarity.

The functions that you post are clearly less than half of the code of strelka.

Uri
10-20% of similarity -- does that makes a program clone of other?


We are not at all talking about cloning.

I'm afraid this word (clone) is totally out of place in the current discussion.

We are looking at the similarities. If there are similarities then the question is: could such similarities happen in programs that have been written independently?



// Christophe
Nobody claims that strelka and fruit have been written independently
Learning from other programs is certainly legal.

You can say that the similiarity is too much but it is not clear what is the limit of too much.

I use average between opening score and endgame score based on stage of the game in Movei and I learned the idea from Fruit(I did not use it before fruit)

This similiarity is not something independent of fruit and I guess that most new programs are based on some ideas that the author learned from fruit.

Uri


Fine but we are not looking at the re-use of ideas here.

We are looking at the re-use of source code.

If you believe that the similarities are limited to the use of the same ideas, then you should look at the comparisons of source code that have been posted.



// Christophe
I do not claim that the similiarity is limited to the same ideas but I understood that they are not enough for Fabien to consider Strelka as something like toga.

Uri
Hi Uri-

I distinctly remember that a few days ago, Dann Corbit posted Fabiens email response after Fabien reviewed Strelka source code...unfortunately, it was in the 'washed' thread, so it can't be referenced here, but in essence, Fabien's reply was something to the effect of: 'oh well, it's been re-written', and 'i cannot say yes or no' ...

clearly, this is not approval, he's caught between a big rock and hard place.

Norm

I disagree very, very much. Clone is not "out of place" in this discussion. Simply because for me, all this technical stuff is no doubt way over my head. Im just a tester, and you guys lose me with the first sentence in these threads. What IS IMPORTANT for me would be fi Bob, Ingo, Uri, Theron, etc. would tell me where we exactly stand now with the Strelka-Fruit- Rybka issue. IOW, is it still more or less agreed the Strelka is a clone- and i guess im asking "illegal" clone of something- to the point where CCRL should still not be testing it- as we did stop?

Best,
Hi George,
I know you didn't ask me, but ...

i'm shocked and amazed that strelka is readily availble for download, being freely distributed, and being used and tested by thousands (perhaps more) of unaware users. Strelka has had it's source code freely available for download for months now, and it's clear that there are vast sections of strelka code that correspond 1 to 1 with fruit. has no one examined it until now? this is not a difficult determination to make even for a novice. Uri Blass himself has agreed that as much as 20% is extremely similar if not exact. and my estimate, being intimately acquainted with the fruit source code, is as high as 40-50%. in either case this is a vast amount of source code.
with no disrespect to anybody, isn't this a no-brainer?

sincerely,
Norm
Tony Thomas

Re: Fruit 2.1 vs Strelka 2.0

Post by Tony Thomas »

kranium wrote:
Hi George,
I know you didn't ask me, but ...

i'm shocked and amazed that strelka is readily availble for download, being freely distributed, and being used and tested by thousands (perhaps more) of unaware users. Strelka has had it's source code freely available for download for months now, and it's clear that there are vast sections of strelka code that correspond 1 to 1 with fruit. has no one examined it until now? this is not a difficult determination to make even for a novice. Uri Blass himself has agreed that as much as 20% is extremely similar if not exact. and my estimate, being intimately acquainted with the fruit source code, is as high as 40-50%. in either case this is a vast amount of source code.
with no disrespect to anybody, isn't this a no-brainer?

sincerely,
Norm
Norm, I am not trying to offend you but I couldnt resist. What makes the testing of Strelka any different than the testing of Toga or Cyclops? Arent they all currently open source engines and at the same time, legal?
Uri Blass
Posts: 10888
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Fruit 2.1 vs Strelka 2.0

Post by Uri Blass »

tiger wrote:
Uri Blass wrote:
Zach Wegner wrote:OK, I'm not one of the mentioned persons, but I feel I am enough of an "expert" in this matter... ;)
geots wrote:What IS IMPORTANT for me would be fi Bob, Ingo, Uri, Theron, etc. would tell me where we exactly stand now with the Strelka-Fruit- Rybka issue. IOW, is it still more or less agreed the Strelka is a clone- and i guess im asking "illegal" clone of something- to the point where CCRL should still not be testing it- as we did stop?
In my completely honest opinion, I would say that Rybka is under serious doubt with regards to its origin. There are some similarities that have been discovered, beyond just the simple protocol parsing code, that are just way too much to be a coincidence IMO. I will note that though I have reverse engineered a relatively small amount of Rybka, but everything that I have has matched with Strelka and had remarkable similarities to Fruit. Some have said that we are running a smear campaign without any evidence, but it is coming out. More and more will gather. There is still not proof (and it is of course debatable whether we would be able to prove anything), but there are questions that IMO demand an official response.

I'm not sure about the legalities of the issue, but I'm inclined to believe that Strelka is more legitimate than Rybka (1.0 at least).

I don't know what to think about Rolf's comments. They make no sense at all really. We have tried to present as much and and as solid evidence as possible. Of course, the type of evidence is such that it is not easily understood by a "lay". But we're not simply creating things in order to confuse the non-programmers. Not one programmer has spoken up against the evidence I posted a bit earlier, nor any in this thread

I think that those that know me here can tell that I'm not doing this out of envy--nothing could be further from the truth. I feel that an injustice is being committed, and that since it is against an open source program (I am a big open source advocate, for those that don't know), I feel a personal responsibility to try to get to the bottom of this--not to simply defame someone.
I do not know why do you think that strelka is more legitimate than rybka1

Strelka2 is more similiar to fruit than rybka1

There are some things that both strelka and fruit has when rybka does not have them like null move verification and if we talk about strelka2.0 unlike strelka1.8 I can say that strelka2 use more simple average of opening evaluation and endgame evaluation based on the stage of the game that is an improvement relative to rybka or strelka1.8 code.

I think also that it is not clear if the similiarity between strelka and fruit is enough to make strelka illegal because of the fruit case(it can be illegal because of rybka but this is a different story).

Strelka is not a clear derivative of fruit like toga when almost everything is the same.

Uri


Wouldn't it be more accurate in this context to say that Strelka is a less clear derivative of Fruit than Toga?

The problem is: is Strelka a derivative or Fruit, or not at all?

After reading the comparative analysis of Strelka and Fruit were dozens of source code lines were exactly the same, one can start to answer this question.

But I think more comparative analysis will be published.

I'm not sure you have the right question in mind. We are not talking about cloning here (an almost exact copy, line by line).

The question is about one being a derivative of the other. Is one a modified (maybe deeply modified) version of the other? If it is not the case, it is highly unlikely to find vast portions of code that are the same in both, don't you think?



// Christophe
I think that it is not clear and the question what is considered as derivative

I consider parts that are not about chess as unimportant parts and it is stupid to ask everybody to reinvent the wheel so I consider the way the program handle uci commands as unimportant.

The only important stuff is stuff that effect the moves that the program choose(basically evaluation move generator and search)

In these parts you may find significant similiarity between strelka and fruit only in the search and even here we need analysis to decide how much significant because the algorithm is not the same.

The question that we should answer first is how many lines of strelka search functions are taken from fruit in equivalent functions.

A good analysis should comment every line of fruit by different number and comment every line of strelka by equivalent number to make it easy for people to see how many lines are similiar.

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

Re: Fruit 2.1 vs Strelka 2.0

Post by kranium »

Tony Thomas wrote:
kranium wrote:
Hi George,
I know you didn't ask me, but ...

i'm shocked and amazed that strelka is readily availble for download, being freely distributed, and being used and tested by thousands (perhaps more) of unaware users. Strelka has had it's source code freely available for download for months now, and it's clear that there are vast sections of strelka code that correspond 1 to 1 with fruit. has no one examined it until now? this is not a difficult determination to make even for a novice. Uri Blass himself has agreed that as much as 20% is extremely similar if not exact. and my estimate, being intimately acquainted with the fruit source code, is as high as 40-50%. in either case this is a vast amount of source code.
with no disrespect to anybody, isn't this a no-brainer?

sincerely,
Norm
Norm, I am not trying to offend you but I couldnt resist. What makes the testing of Strelka any different than the testing of Toga or Cyclops? Arent they all currently open source engines and at the same time, legal?
Hi Tony-
no offense taken! it's a good question.
Strelka is being distributed without documentation of any kind, there's no readme, no mention of authorship (except the UCI author string source code = Jury Osipov). other than that nothing is attributed to anybody, there's no GPL..., but Vas has claimed it as his own.
if it's a direct derivative of another program, then the question naturally follows, ok, legal or illegal?
kranium
Posts: 2129
Joined: Thu May 29, 2008 10:43 am

Re: Fruit 2.1 vs Strelka 2.0

Post by kranium »

Uri Blass wrote:
I think that it is not clear and the question what is considered as derivative

I consider parts that are not about chess as unimportant parts and it is stupid to ask everybody to reinvent the wheel so I consider the way the program handle uci commands as unimportant.

The only important stuff is stuff that effect the moves that the program choose(basically evaluation move generator and search)

In these parts you may find significant similiarity between strelka and fruit only in the search and even here we need analysis to decide how much significant because the algorithm is not the same.

The question that we should answer first is how many lines of strelka search functions are taken from fruit in equivalent functions.

A good analysis should comment every line of fruit by different number and comment every line of strelka by equivalent number to make it easy for people to see how many lines are similiar.

Uri
Hi Uri-
i disagree...

do you mean only the evaluation, move generator, and search should be scrutinized? the other code is fair game for anybody who doesn't want to reinvent the wheel?

where in your opinion does a derivative start and end?

as far as the # of lines, just in the example i posted alone, there's more 800 lines (blanks not counted).

regards,
Norm
Last edited by kranium on Tue Aug 19, 2008 8:47 am, edited 1 time in total.
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: Fruit 2.1 vs Strelka 2.0

Post by Zach Wegner »

Uri Blass wrote:I do not know why do you think that strelka is more legitimate than rybka1

Strelka2 is more similiar to fruit than rybka1
The meaning behind my statement is subtle: I think that Rybka is a derivative of Fruit, but it obviously does not follow the GPL. So Strelka is in essence just an attempt to "legitimize" Rybka by reopening its source code.

Some would find this process of reopening to be unethical. I'm not sure where I stand on this issue--but it seems to me that Osipov's motive was a sort of vigilante justice--not just a mere attempt to reverse engineer Rybka.
There are some things that both strelka and fruit has when rybka does not have them like null move verification and if we talk about strelka2.0 unlike strelka1.8 I can say that strelka2 use more simple average of opening evaluation and endgame evaluation based on the stage of the game that is an improvement relative to rybka or strelka1.8 code.
This is true--I think that after Rybka was fully reverse engineered, Osipov decided to try to improve it a bit. I think he intended to try to release it as his own. This is evidenced by Vas' statement that Osipov tried to commercialize Strelka.

IIRC, you had the Strelka 1.0 sources (or was it 1.8?). Would you mind sending them to me? They might be instructive during this whole fiasco.
Last edited by Zach Wegner on Tue Aug 19, 2008 8:53 am, edited 1 time in total.
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: Fruit 2.1 vs Strelka 2.0

Post by Zach Wegner »

Uri Blass wrote:I think that it is not clear and the question what is considered as derivative

I consider parts that are not about chess as unimportant parts and it is stupid to ask everybody to reinvent the wheel so I consider the way the program handle uci commands as unimportant.

The only important stuff is stuff that effect the moves that the program choose(basically evaluation move generator and search)

In these parts you may find significant similiarity between strelka and fruit only in the search and even here we need analysis to decide how much significant because the algorithm is not the same.

The question that we should answer first is how many lines of strelka search functions are taken from fruit in equivalent functions.

A good analysis should comment every line of fruit by different number and comment every line of strelka by equivalent number to make it easy for people to see how many lines are similiar.

Uri
Have you seen this: http://www.talkchess.com/forum/viewtopi ... 11&t=23037 ? What do you make of it?

I will note that the parse_go function posted previously has time allocation code in it, which is clearly strength-related.
User avatar
tiger
Posts: 819
Joined: Sat Mar 11, 2006 3:15 am
Location: Guadeloupe (french caribbean island)

Re: Fruit 2.1 vs Strelka 2.0

Post by tiger »

kranium wrote:
Uri Blass wrote:
I think that it is not clear and the question what is considered as derivative

I consider parts that are not about chess as unimportant parts and it is stupid to ask everybody to reinvent the wheel so I consider the way the program handle uci commands as unimportant.

The only important stuff is stuff that effect the moves that the program choose(basically evaluation move generator and search)

In these parts you may find significant similiarity between strelka and fruit only in the search and even here we need analysis to decide how much significant because the algorithm is not the same.

The question that we should answer first is how many lines of strelka search functions are taken from fruit in equivalent functions.

A good analysis should comment every line of fruit by different number and comment every line of strelka by equivalent number to make it easy for people to see how many lines are similiar.

Uri
Hi Uri-
i disagree...

do you mean only the evaluation, move generator, and search should be scrutinized? the other code is fair game for anybody who doesn't want to reinvent the wheel?

where in your opinion does a derivative start and end?

as far as the # of lines, just in the example i posted alone, there's more 800 lines (blanks not counted).

regards,
Norm


Unfortunately the GPL does not mention areas where it is fair game to violate it.

Uri wants to know clearly what is considered a derived work of an existing source code. Uri wants full determinism here.

On the other hand, he proposes to subjectively exempt some parts of the code.

Now imagine that by looking closely to the whole source code of Fruit and Strelka we discover that:
- initialization/cleanup code is identical
- parameter reading is identical
- UCI interpreter is identical
- move generation is identical
- search is identical
- selective heuristics are identical
- evaluation is identical
- time allocation is identical
- draw recognizers are the same
...
Uri would probably consider that Strelka is a derived work from Fruit?

Now imagine that it is like that:
- initialization/cleanup code is identical
- parameter reading is identical
- UCI interpreter is identical
- move generation is different
- search is identical for some parts, different for other parts
- selective heuristics mostly identical, with some differences
- evaluation is different but some parts are like Fruit
- time allocation is identical
- draw recognizers are the same
...
Now it's not as clear and one has to imagine how it happened.

If we find that it looks like the second list above, suddenly the "unimportant" parts of the source become an interesting indication of where Strelka comes.

I mean, if we have a few parts of Fruit's search and selective heuristics, a move generator and an evaluation never seen before and finally other parts already seen in Glaurung or Crafty, it's a Frankenstein-like creature that has been built from different sources, with some original work added. Please note that it violates the GPL by using code from Fruit, Glaurung and Crafty.

Now if we have all parts of Fruit (including what Uri calls the unimportant ones) and differences in the move generation, search and even in the evaluation, then it should become clear that this source code has started its life as Fruit, as been progressively modified, and has finally been published under the name Strelka. And naturally it also infringes on the GPL.

So I believe the "unimportant" parts of the code should definitely be taken into account for a fair and informative comparison.



// Christophe
chrisw

Re: Fruit 2.1 vs Strelka 2.0

Post by chrisw »

Rolf wrote:
geots wrote:I think when all is said and done, Chris Whittington's prior comment really stands out to me. He hit the nail on the head. Whether you like Chessbase or not, they did not get where they are today by making foolish decisions that could ruin them or by being stupid. They would have never touched Rybka with a 10 foot pole if there was ANY chance it could come back to haunt them. Enough said.

Best,
Methinks you forgot the LIST tragedy at Graz Wch. At that time ChessBase had this engine IMO 5.12 version. The same almost like now with Rybka. That alone wont tell you anything. The point will come when in China in a short pre-meeting vdHerigh will "ask" his participants if they allow Toga, and they will shout yeah. And then he will "ask", what is with Rybka, and the crowd will murmer, no, sorry, that is the one who's too strong for the mortals, Jaap, we dont want to see it... Or Vas shows us his source code NOW. Bye bye...
Rolf hits nail on head. If it happens, this will be the reason for the sue.