Having now read the full set of documents
Posted: Mon Jul 04, 2011 6:33 pm
It appears that Rybka 1.0 has some evaluation features that are very similar to Fruit.
We could certainly have deduced this from the following remarks in his 1.0 Beta release notes:
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.
Tord Romstad - For making Fabien aware of fail-low pruning , and more seriously for sharing in every way possible his considerable knowledge.
Eugene Nalimov - For his cryptic but somehow fully functional endgame tablebase access code.
Uri Blass, Gerd Isenberg, Dieter Burssner, Vincent Diepeveen, Raschid Chan, Anthony Cozzie, Mridul M* , Thomas Gaksch, Peter Berger, Sandro Necchi, Ed Shroeder, Amir Ban, Christophe Theron and every one else, past and present, on the computer chess club: For sharing their computer chess knowledge despite the fact that in principle computer chess is a competitive field.
Heinz van Kempen, Guenther Simon, Olivier Deville, Sergio Martinez, Claude Dubois: for testing early versions of Rybka despite countless bugs and annoying problems.
Alex Dumov, Gabriel Luca: for helping a Windows newbie get up to around half-speed without excessive derision (or at least open derision )
and Iweta: for being great! and a pretty good Rybka tester and web master to boot
First, let's talk about plagiarism. Here is the Wiki definition from:
http://en.wikipedia.org/wiki/Plagiarism
and I think it's probably pretty good:
----------------------------
Plagiarism is defined in dictionaries as the "wrongful appropriation," "close imitation," or "purloining and publication" of another author's "language, thoughts, ideas, or expressions," and the representation of them as one's own original work,[1][2] but the notion remains problematic with nebulous boundaries.[3][4][5][6] The modern concept of plagiarism as immoral and originality as an ideal emerged in Europe only in the 18th century, particularly with the Romantic movement, while in the previous centuries authors and artists were encouraged to "copy the masters as closely as possible" and avoid "unnecessary invention."[7][8][9][10][11][12]
---------------------------
I suppose that the following citation from the same article is especially relevant:
----------------------------
Some individuals caught plagiarizing in academic or journalistic contexts claim that they plagiarized unintentionally, by failing to include quotations or give the appropriate citation. While plagiarism in scholarship and journalism has a centuries-old history, the development of the Internet, where articles appear as electronic text, has made the physical act of copying the work of others much easier.
----------------------------
The reason that I mention this is that each and every chess engine on planet earth is guilty of plagiarism. If not, where are the citations? Where are the appropriate quotations, giving credit to the original authors?
Let's take one ultra-simple example, Zobrist hashing. Almost every chess engine author uses Zobrist hasing for their hash tables. The nifty thing is that we can perform, unperform, and reperform the action of a chessman and update the hash tables for a single piece by simply using Zobrist hashing in makemove() and unmakemove(). Now this clever idea did not originate with each and every chess programmer, and yet we find Zobrist hashing almost universally in all chess programs. WHere are the citations? Where are the quotations? They are not found in any chess program.
Similarly, ideas like the null move heuristic, pvs search, alpha-beta pruning, internal iterative deepening, late move reductions, etc. were originated by one single person, not at all obvious, and yet these techniques find their way into all strong chess programs.
Where are the citations? WHere are the quotations? They are not found in any chess program.
So, now, onto copyright violation.
When you wrote your chess program, did you commit the new changes entirely from memory, or did you take out a book, an article, a post to a programming forum, or some open source example and then translate the ideas into your framework? If the latter then you are guilty of copyright violation. If the passage is a small percentage of the entire work and we give a citation, then it is 'fair use' but if not it *is* copyright violation. Who has done things in this second way? Only everyone. If you fail to admit this then you are a hypocrite and a liar.
The evidence shown was all about the Rybka 1.0 beta and some other beta versions. The evidence against other Rybka versions was all handwaving. What has that got to do with versions used in the contests? Perhaps everything, perhaps nothing.
The comparison engines:
Fruit
Rybka
Phalanx
Pepito
Crafty
Faile
What do we notice about this list?
There are three very strong engines (Fruit, Rybka, Crafty) and 4 weak engines {several hundred Elo lower} Phalanx, Pepito, Faile
Are we shocked that the weak engines are missing the strong evaluation terms? I'm not.
Are we shocked that the very strong engines have common features? I'm not especially in light of the fact that Vas said he studied them with a fine-toothed comb.
Look, here is how I see it, as far as chess program development goes:
Good ideas arise over time. The programmers grab these ideas and adapt them into their frameworks.
Over time, these ideas become sufficiently differentiated that they are no longer the simple idea lifted from some paper, book, or program.
But that is what everyone does. Don't get me wrong, we should put in the citation. I have often advocated a literate approach to chess programming and even programming in general. Unfortunately, nobody, including me, practices this properly.
Now, as to Rybka another point -- Rybka uses process model for SMP. That was my idea. I even sent a Windows version of fork() so that it would be easy for him to accomplish. So, there is code, written by me, inside of Rybka.
Therefore, I do fully accept the death penaltly imposed upon me by the ICGA {as a party to the wrongdoing}.
Now, time for a resolution:
All those who have never copied an article, programming post, book rendering of an algorithm or algorithm from some open source program and adapted it into your engine's framework please sign in the undersigned area (don't worry, I have left plenty of room):
I AM NOT A HYPOCRITE OR A COPYRIGHT VIOLATOR:
+-+
| |
+-+
And those of us who have used a method, not entirely from memory, and failed to give proper citation as to the source please sign below:
+------------------------------------------------------------------------------------------------------------------+
Danniel R. Corbit {no doubt the lone sinner as to these things}
We could certainly have deduced this from the following remarks in his 1.0 Beta release notes:
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.
Tord Romstad - For making Fabien aware of fail-low pruning , and more seriously for sharing in every way possible his considerable knowledge.
Eugene Nalimov - For his cryptic but somehow fully functional endgame tablebase access code.
Uri Blass, Gerd Isenberg, Dieter Burssner, Vincent Diepeveen, Raschid Chan, Anthony Cozzie, Mridul M* , Thomas Gaksch, Peter Berger, Sandro Necchi, Ed Shroeder, Amir Ban, Christophe Theron and every one else, past and present, on the computer chess club: For sharing their computer chess knowledge despite the fact that in principle computer chess is a competitive field.
Heinz van Kempen, Guenther Simon, Olivier Deville, Sergio Martinez, Claude Dubois: for testing early versions of Rybka despite countless bugs and annoying problems.
Alex Dumov, Gabriel Luca: for helping a Windows newbie get up to around half-speed without excessive derision (or at least open derision )
and Iweta: for being great! and a pretty good Rybka tester and web master to boot
First, let's talk about plagiarism. Here is the Wiki definition from:
http://en.wikipedia.org/wiki/Plagiarism
and I think it's probably pretty good:
----------------------------
Plagiarism is defined in dictionaries as the "wrongful appropriation," "close imitation," or "purloining and publication" of another author's "language, thoughts, ideas, or expressions," and the representation of them as one's own original work,[1][2] but the notion remains problematic with nebulous boundaries.[3][4][5][6] The modern concept of plagiarism as immoral and originality as an ideal emerged in Europe only in the 18th century, particularly with the Romantic movement, while in the previous centuries authors and artists were encouraged to "copy the masters as closely as possible" and avoid "unnecessary invention."[7][8][9][10][11][12]
---------------------------
I suppose that the following citation from the same article is especially relevant:
----------------------------
Some individuals caught plagiarizing in academic or journalistic contexts claim that they plagiarized unintentionally, by failing to include quotations or give the appropriate citation. While plagiarism in scholarship and journalism has a centuries-old history, the development of the Internet, where articles appear as electronic text, has made the physical act of copying the work of others much easier.
----------------------------
The reason that I mention this is that each and every chess engine on planet earth is guilty of plagiarism. If not, where are the citations? Where are the appropriate quotations, giving credit to the original authors?
Let's take one ultra-simple example, Zobrist hashing. Almost every chess engine author uses Zobrist hasing for their hash tables. The nifty thing is that we can perform, unperform, and reperform the action of a chessman and update the hash tables for a single piece by simply using Zobrist hashing in makemove() and unmakemove(). Now this clever idea did not originate with each and every chess programmer, and yet we find Zobrist hashing almost universally in all chess programs. WHere are the citations? Where are the quotations? They are not found in any chess program.
Similarly, ideas like the null move heuristic, pvs search, alpha-beta pruning, internal iterative deepening, late move reductions, etc. were originated by one single person, not at all obvious, and yet these techniques find their way into all strong chess programs.
Where are the citations? WHere are the quotations? They are not found in any chess program.
So, now, onto copyright violation.
When you wrote your chess program, did you commit the new changes entirely from memory, or did you take out a book, an article, a post to a programming forum, or some open source example and then translate the ideas into your framework? If the latter then you are guilty of copyright violation. If the passage is a small percentage of the entire work and we give a citation, then it is 'fair use' but if not it *is* copyright violation. Who has done things in this second way? Only everyone. If you fail to admit this then you are a hypocrite and a liar.
The evidence shown was all about the Rybka 1.0 beta and some other beta versions. The evidence against other Rybka versions was all handwaving. What has that got to do with versions used in the contests? Perhaps everything, perhaps nothing.
The comparison engines:
Fruit
Rybka
Phalanx
Pepito
Crafty
Faile
What do we notice about this list?
There are three very strong engines (Fruit, Rybka, Crafty) and 4 weak engines {several hundred Elo lower} Phalanx, Pepito, Faile
Are we shocked that the weak engines are missing the strong evaluation terms? I'm not.
Are we shocked that the very strong engines have common features? I'm not especially in light of the fact that Vas said he studied them with a fine-toothed comb.
Look, here is how I see it, as far as chess program development goes:
Good ideas arise over time. The programmers grab these ideas and adapt them into their frameworks.
Over time, these ideas become sufficiently differentiated that they are no longer the simple idea lifted from some paper, book, or program.
But that is what everyone does. Don't get me wrong, we should put in the citation. I have often advocated a literate approach to chess programming and even programming in general. Unfortunately, nobody, including me, practices this properly.
Now, as to Rybka another point -- Rybka uses process model for SMP. That was my idea. I even sent a Windows version of fork() so that it would be easy for him to accomplish. So, there is code, written by me, inside of Rybka.
Therefore, I do fully accept the death penaltly imposed upon me by the ICGA {as a party to the wrongdoing}.
Now, time for a resolution:
All those who have never copied an article, programming post, book rendering of an algorithm or algorithm from some open source program and adapted it into your engine's framework please sign in the undersigned area (don't worry, I have left plenty of room):
I AM NOT A HYPOCRITE OR A COPYRIGHT VIOLATOR:
+-+
| |
+-+
And those of us who have used a method, not entirely from memory, and failed to give proper citation as to the source please sign below:
+------------------------------------------------------------------------------------------------------------------+
Danniel R. Corbit {no doubt the lone sinner as to these things}