bob wrote:Dann Corbit wrote:bob wrote:Ryan Benitez wrote:Please be clear. Are you making any GPL violation claims against either engine? Ideas used from Fruit are not a violation unless code is taken outside of the GPL. I am sure the team of people that worked on Fruit 2.1 are proud to have impacted other engines in a positive way.
I am saying, unequivocally, that code from fruit was copied and used in Rybka 1. Whether or not this code remains in current versions is unknown, but highly probable. ip* is unknown. I have not personally compared it to fruit, but that might be an interesting comparison. Although I am not sure it would be convincing since if you copy from the original, or a copy of the original, you could end up with the same thing and it would be pretty tough to decide whether the thing is a copy of the original or the copy.
Because the souce code for Rybka 1 is not availble, the only thing that is available is Zach's reverse engineering job.
Since Rybka 1 is bitboard and not array based like Fruit, it is literally impossible to simply cut and paste things like eval and search.
Actually, search has nothing to do with bitboards. Just look at search.c in Crafty. Evaluate() is clearly a different animal, however. But there are large chunks of a chess engine that are independent of the board representation, yet they are important to playing chess. Move ordering/selection, search itself, hashing, extension/reduction stuff, and even some parts of eval that don't care about piece placement (material balance/imbalance, etc.)
The only things (therefore) which can be cut and paste operations are simple and trivial utility routines. Whether this has happend or not is again open to debate.
See above. Much more can be cut/pasted than you suspect.
Here is what is literally and undeniably clear:
Vas carefully studied Fruit and then either copied code or wrote his own version. If he copied then he committed a crime. If he wrote his own version then he may have done somthing that chess programmers do not like but which would nonetheless be legal.
I think it is strange to say you know which of the two possibilities actually occurred.
Based on 40+ years of trying to prevent student plagiarism on homework assignments. One doesn't find an identical block of code here, an identical block of code there, in a program of any significant size (>20 lines of code). I could take the assignments from my X86 programming course, where programs 2, 3 and 4 are on the range of 30-50 lines each, and let you take assignment 2 from 20 students and compare them. You'd see what I mean. Very different approaches to produce the same result. Duplicate code just does not happen by accident.
And (let us suppose) that a few utility routines were copied and used directly. Since he did give credit to Fruit in his beta documentation, would this usage be within the category of "fair use"? Again, I do not think it is possible to say.
Last quote from him I saw said, explicitly, "there are zero lines of fruit code in Rybka 1." Hard to mis-interpret the meaning of the word "zero" in that context. It can't mean "just a few".
It seems possible to me that your dislike of the action (CLEARLY he has used Fruit ideas) may be coloring your notion that you can plainly see the path he has taken to get there.
First, using ideas has never been an issue. What is an issue is the simple term "plagiarism" which is copying something someone else wrote verbatim. Whether you copy a paragraph of a book, a chapter, or the whole thing, it is _still_ plagiarism. I've never asked for the ICGA, CCT or ACCA to not allow Rybka to participate. Seems to be somewhat like closing the barn door after the horse has left.
Second, there is no "notion" to color in this situation. This is a case of pregnant or not pregnant, and there are only two possible answers. And for this case, "no" is not an answer based on evidence already presented. Therefore...