Rule #2 and its use during history

Code, algorithms, languages, construction...
User avatar
Rebel
Posts: 515
Joined: Wed Jun 09, 2010 7:45 pm
Real Name: Ed Schroder

Re: Rule #2 and its use during history

Post by Rebel » Tue May 15, 2012 2:27 pm

BB+ wrote:
mjlef wrote:[...]you [Rebel] included a huge mix of sophisticated and original ideas. We did not see that in the Rybka EXEs we examined. [...] Looking over your documentation, You did not take almost the whole evaluation from any single program. [...] I would expect if we did an evaluation of Rebel. etc we would find it to be very unique. [...]
marcelk wrote:I'm sorry but the panel did not consider or look for "sophisticated and original ideas" in Rybka or they had excrement in their eyes as there are so many of them it is difficult to miss.
It seems to me that (in the context here) MarkL meant "sophisticated and original ideas in the evaluation"? Other than the material imbalance table, what much is there along these lines in Rybka 1.0 or 2.3.2a?
marcelk wrote:Besides, how does including "sophisticated and original ideas" relief oneself from violating the hawkish interpretation of rule #2?
I agree with you here that there is no (complete) relief from mere enhancements, but I don't think the interpretation is that hawkish (the R/F verdict was strongly punitive, but for a different reason). The LION++ defense made such a claim ("all the newly developed routines which surrounded the ideas of Letouzey", in Jaap's words), but the decision in that case didn't exactly address the matter. In the R/F ordeal, as VR clearly did go significantly beyond Fruit, I had suggested (and others did the same -- see GI's comments in the Report) simply re-naming the winner Rybka/Fruit and author Letouzey/Rajlich -- but this would have required commitment from both FL and VR.

In this regard, one can re-read Jaap's editorial in ICGA Journal 20/1 on Augmented Ideas, particularly the (brief) comment on Donninger's challenge, before switching to the explicit Crafty/Gunda case: Since both teams gave due credit to CRAFTY as their original source, it is comparable to using ideas from articles while giving appropriate reference. Nevertheless, the question remains to what extent can we prolong the similarity of publications and programs. For articles, we do not allow plagiarism. For algorithms and programs I believe we are in a state of flux. Yet, the researcher who is the originator of the ideas should always be given pride of place. [As Jaap notes prior to this, he does not give any real answers: the best we can do is to make these problems explicit].

Here is the Donninger ensemble in full (from page 240, ICGA Journal 19/4):
Chrilly Donninger wrote:7. NIMZO-3, A CHALLENGE FOR THE ICCA TOURNAMENT RULES?

The probably greatest scandal in the history of the ICCA tournaments was the attempt of the German engineer Langer to win the WMCC with a cloned program of R. Lang. In NIMZO-3, not only the ORACLE, but also the whole search process, the opening book and a so-called knowledge base, can be substantially modified by the user. What happens if Langer buys NIMZO-3, writes his own ORACLE, optimizes the search parameters along his own criteria, creates a new opening book...? The program would play differently from the program he has bought and, he would have done, with better tools, a substantial part of the work of a classical chess programmer. I personally would encourage the efforts of Langer as long as he does not deny the NIMZO roots of his program and as long as he also makes it clear, that it is his own version of the program. An entry NIMZO-Langer would be, from my point of view, perfectly acceptable.
It's all pretty simple, rule #2 since day-1 is about copying. The word "derivative" in the Fabien letter says it all. Copying code + changes makes a derivative. But the R/F case has changed the landscape, if you take too much ideas you are toasted.

The cases of Nimzo-3 and Lion are clear, derivatives. Using someone else code.

Gerd Isenberg
Posts: 37
Joined: Wed Jul 07, 2010 11:11 pm
Real Name: Gerd Isenberg

Re: Rule #2 and its use during history

Post by Gerd Isenberg » Tue May 15, 2012 4:37 pm

Rebel wrote: On submission details (part-2)

Case Bruce Moreland and Ferret

Ferret is derived from GNU Chess 3.0 protected under GPL. Never mentioned on the submission details, see:

http://www.grappa.univ-lille3.fr/icga/program.php?id=35

Yet Bruce has 3 world-titles.

Rightfully earned but that's not the issue here, the ICGA inconsistency is.

Shall we drop the submission details issue ?
Hi Ed,

Ferret derived from GNU Chess 3.0? Where does it come from? Monty Newborn in Beyond Deep Blue? There were so many errors and confusions in Monty's articels. Seems wrong to me. To quote Bruce ...

http://chessgames.com/player/ferret
Ferret dates from approximately 1990, although serious work didn't start until 1994.

The program is 100% original, although at the time I started I had access to the Gnuchess source code. That code was kind of messy and it was its messy state that inspired me to think that I could do better.

In 1994 I created something that could play a complete game of chess. The program entered Don Beal's uniform-platform tournament later that year (I emailed him a copy of the program), and it scored well. Surprisingly well, since the program had never played a game at tournament time controls before.
Cheers,
Gerd

User avatar
Rebel
Posts: 515
Joined: Wed Jun 09, 2010 7:45 pm
Real Name: Ed Schroder

Re: Rule #2 and its use during history

Post by Rebel » Tue May 15, 2012 8:08 pm

Gerd Isenberg wrote:
Rebel wrote: On submission details (part-2)

Case Bruce Moreland and Ferret

Ferret is derived from GNU Chess 3.0 protected under GPL. Never mentioned on the submission details, see:

http://www.grappa.univ-lille3.fr/icga/program.php?id=35

Yet Bruce has 3 world-titles.

Rightfully earned but that's not the issue here, the ICGA inconsistency is.

Shall we drop the submission details issue ?
Hi Ed,

Ferret derived from GNU Chess 3.0? Where does it come from? Monty Newborn in Beyond Deep Blue? There were so many errors and confusions in Monty's articels. Seems wrong to me. To quote Bruce ...

http://chessgames.com/player/ferret
Ferret dates from approximately 1990, although serious work didn't start until 1994.

The program is 100% original, although at the time I started I had access to the Gnuchess source code. That code was kind of messy and it was its messy state that inspired me to think that I could do better.

In 1994 I created something that could play a complete game of chess. The program entered Don Beal's uniform-platform tournament later that year (I emailed him a copy of the program), and it scored well. Surprisingly well, since the program had never played a game at tournament time controls before.
Cheers,
Gerd
Hi Gerd, nice to see you also here looking for information for the wiki pages :D

Sources: indeed Newborn but more reliable coming from the mouth of Bruce himself somewhere in the old RGCC archives. Or more recently: http://rybkaforum.net/cgi-bin/rybkaforu ... #pid375965

See you.

Ed

Gerd Isenberg
Posts: 37
Joined: Wed Jul 07, 2010 11:11 pm
Real Name: Gerd Isenberg

Re: Rule #2 and its use during history

Post by Gerd Isenberg » Wed May 16, 2012 6:29 pm

Rebel wrote:
Gerd Isenberg wrote: Hi Ed,

Ferret derived from GNU Chess 3.0? Where does it come from? Monty Newborn in Beyond Deep Blue? There were so many errors and confusions in Monty's articels. Seems wrong to me. To quote Bruce ...

http://chessgames.com/player/ferret
Ferret dates from approximately 1990, although serious work didn't start until 1994.

The program is 100% original, although at the time I started I had access to the Gnuchess source code. That code was kind of messy and it was its messy state that inspired me to think that I could do better.

In 1994 I created something that could play a complete game of chess. The program entered Don Beal's uniform-platform tournament later that year (I emailed him a copy of the program), and it scored well. Surprisingly well, since the program had never played a game at tournament time controls before.
Cheers,
Gerd
Hi Gerd, nice to see you also here looking for information for the wiki pages :D

Sources: indeed Newborn but more reliable coming from the mouth of Bruce himself somewhere in the old RGCC archives. Or more recently: http://rybkaforum.net/cgi-bin/rybkaforu ... #pid375965

See you.

Ed
The link does not work for me (Access denied), since I am not member in RF. Anyway, seems to contradict Bruce' statement quoted. Can you provide the rgcc link?

Gerd

User avatar
Rebel
Posts: 515
Joined: Wed Jun 09, 2010 7:45 pm
Real Name: Ed Schroder

Re: Rule #2 and its use during history

Post by Rebel » Wed May 16, 2012 6:53 pm

The RF posting by Bob:

By bob Date 2011-10-17 02:12

Bruce as in Bruce Moreland? Because he COMPLETELY rewrote all the gnuchess code he borrowed to start with. He sent me this code years ago to take a look to see what I thought. He came up with a different and unique way of generating moves. His code is actually clean. And it looks nothing like gnuchessx. That's the idea one is supposed to "grasp" in this process... Nothing wrong with using a program as a starting point, so long as it gets completely re-done as you slowly develop your own approach and new ideas. And EVERY program has lots of new ideas...

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Rule #2 and its use during history

Post by hyatt » Thu May 17, 2012 11:12 pm

Rebel wrote:
hyatt wrote:
Rebel wrote:
mjlef wrote:The ICGA has not banned programmers from using other people's evaluations. But they need to be informed of it and receive the original author's approval. Look at GridChess in this tournament: http://www.grappa.univ-lille3.fr/icga/t ... php?id=173 It used part of Toga, Fruit and Crafty, but with permission and acknowledgement on the entry form. I advise anyone entering future ICGA tournaments just to come clean. Admit on the entry form what you used and have the TD (and whoever he/she assign to help) investigate if this is proper.
On submission details (part-1)

For those who paid attention, this is from “Rybka 1.0 Beta readme.rtf”, the origins of Rybka 1.0

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.

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

Happy testing, and best chess regards,

Vasik Rajlich

Budapest Hungary

December 4, 2005


Why is (was) this not good enough ?
Because it does not say "I copied large pieces of code from others, modified them when necessary, and have included those in my current code.
Assumptions make bad proof.
It implies that he just studied what others had done, then wrote his own code to do that. That is NOT what happened...
It **IS** what happened. There is more than enough evidence in the meantime to support that. You only need to put off your VIG glasses, empty your mind, start from scratch and you will start to see. Hard, I know from experience.

Where is this "evidence"??? Hint: opinion, speculation, etc, is NOT "evidence"...

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Rule #2 and its use during history

Post by hyatt » Thu May 17, 2012 11:14 pm

Rebel wrote:
hyatt wrote:
Rebel wrote:
mjlef wrote:The ICGA has not banned programmers from using other people's evaluations. But they need to be informed of it and receive the original author's approval. Look at GridChess in this tournament: http://www.grappa.univ-lille3.fr/icga/t ... php?id=173 It used part of Toga, Fruit and Crafty, but with permission and acknowledgement on the entry form. I advise anyone entering future ICGA tournaments just to come clean. Admit on the entry form what you used and have the TD (and whoever he/she assign to help) investigate if this is proper.
On submission details (part-2)

Case Bruce Moreland and Ferret

Ferret is derived from GNU Chess 3.0 protected under GPL. Never mentioned on the submission details, see:

http://www.grappa.univ-lille3.fr/icga/program.php?id=35

Yet Bruce has 3 world-titles.

Rightfully earned but that's not the issue here, the ICGA inconsistency is.

Shall we drop the submission details issue ?

No. Shall we drop the continued dishonesty? I've explained this previously... Bruce did EXACTLY what I had intended to allow with Crafty. He started with GNUchess. He COMPLETELY rewrote each part. Starting with a new approach to move generation, which was significantly faster than gnu, and with that success, he rewrote the rest of the code as well. He sent a copy to me years ago, to see if I thought it was original. I looked at it and gnuchess side-by-side and they looked nothing alike. So why do you keep bringing this up, over and over, as intentional misinformation and a red herring? One can start from A, and by the time they get to B, nothing is left. There is nothing to claim on the entry form in such a case, as there is no copied code remaining. He could have legally gone commercial, which he almost did at one point, and not violated the GPL because no GPL code remained. Now is that clear enough that you can stop bringing up this false argument, over and over?
It's not a false argument, Bruce started from an existing source code taking the whole of GNU chess as a base. Vas did not even do that (!!).

I have no problem with Ferret, like Rybka Ferret is way too original to be a derivative.

The issue here is ICGA consistency. And what's good for the goose is good for the gander.

"Vas did not even do that?" Vas copied Crafty verbatim. So what are you talking about? Later he copied fruit, but could not copy "verbatim" because of the bitboards. That doesn't preclude copying however. In Ferret there was NO resemblance to gnuchess 4, much less any identical blocks of code. There is lots of similarities in Rybka/Fruit. I don't see what one example (a good one - ferret / gnuchess 4) has to do with the other (a bad one)...

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Rule #2 and its use during history

Post by hyatt » Thu May 17, 2012 11:16 pm

Rebel wrote:
mjlef wrote: "fancy word games"? I really hate this kind of rhetoric. I was quite clear. Yes Vasik copied Fruit.
Ed wrote:Finally we are talking! Thank you for saying it.
mjlef wrote: Ah, but you left out the rest of what I said. Selective quoting leads to deception, so please try in the future to quote in context. You need to quote enough for people to understand what was meant and not an edited version.
Simple question: is rule #2 about copying the work of others + changes or not ?

It is about copying the work of others, period. Making changes or not really has no relevance. If you can see the original in the copy, it is not an original work. One can't copy and then modify (say) 50% and say "this is original." Ditto for 75%. Copied is copied until all traces of the original are removed.

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Rule #2 and its use during history

Post by hyatt » Thu May 17, 2012 11:20 pm

Rebel wrote:
Ed wrote: 4d. It's likely to assume Vasik modelled Rybka's EVAL to Fruit's. There are signs for that, there is also enough signs of the contrary. The truth is probably somewhere in the middle.
mjlef wrote:Ah, then you admit Vasik “modeled” the Rybka eval on Fruit. We call that making a derivative, and you proved our point!
You would wish :lol:

Modeling

Step-1 : study a source code (voluntarily put on the Internet by a programmer) (Crafty, Fruit, Glaurung, Stockfish) to learn how to write a good EVAL and do it right from the start.

Step-2 : create an EVAL based on what you have learned using your own creative energy and your unique views how to code it, what to keep, what to add, what to throw away and how to weight the evaluation values for each (sub) function.

So what's the damage by the ICGA verdict?

Don't do the above, you are called a cloner.

The ICGA has robbed the new generation of chess programmers of their freedom how to study, how to code and we have arrived at a situation the ICGA has hijacked open sources (Crafty, Fruit, Glaurung, Stockfish) and baptized them as a model forbidden to follow.

Now you would have a valid point if you can proof Vas copied Fruit, but you can't. I (and others) can produce a long list of arguments in favor of an original work without copying.

These are the days of a new generation of genius programmers, not me, nor Bob, nor you, nor Chris, nor SMK, nor Uniacke, nor Morsch. They are gone in the sense they can't compete on the highest level any longer. The new generation of programmers, Fabien, Vasik, Anthony, the Stockfish guys, Richard Vida. They built (or have build) on the work of the previous generation as listed above and they learn 10 times faster as we did due to the Internet, the open sources, the fora, email, chatting. As such incredible fast progress is made above your and my imagination.

Is Fabien himself not one of the best examples of that? Coming out of nothing with Fruit 1.0 (March 2004) and 16 months later topping the rating lists with Fruit 2.1 ??

So Vas' 600 elo jump in 1.5 years does not surprise me at all. Not any longer I must say. And by his dominance the 5 years after adding 400 elo on his own without input of anyone he certainly demonstrated his unique capacities. If you can go from 2700 to 3100 in 2 years then you have proven that going from 2100 to 2700 in 1.5 years is not impossible, actually quite likely.

What the old guard of ICGA programmers missed is that the times have changed and they did not notice, that there is a new generation of chess programmers that (unlike us) grew up with Internet and make incredible fast progress due to the Internet and the explosion of knowledge available. I want the ICGA to recognize the times they are living and not become an obstacle to progress as it is now. Search for new ways to ensure fair competition, they are available, follow the CSVN example of last weekend. Don is dedicated to improve his similarity tool. This == IS == the future.

That is not "modelling". Here's a definition:

A computer simulation, a computer model, or a computational model is a computer program, or network of computers, that attempts to simulate an abstract model of a particular system. ...

In a more abstract sense, I build "models" all the time. Model airplanes that are intended to look like a real airplane (P51D and F16a are two examples I have built/flown). They are made by faithfully copying the original, except that all dimensions are scaled down by some fixed percentage to produce a life-like but not life-sized "model".

That is NOT "original work".

hyatt
Posts: 1242
Joined: Thu Jun 10, 2010 2:13 am
Real Name: Bob Hyatt (Robert M. Hyatt)
Location: University of Alabama at Birmingham
Contact:

Re: Rule #2 and its use during history

Post by hyatt » Thu May 17, 2012 11:25 pm

Rebel wrote:Last one Mark :!: ;)
mjlef wrote:We have not examined your programs, but based on your wonderful documentation online. you included a huge mix of sophisticated and original ideas. We did not see that in the Rybka EXEs we examined. Looking over your documentation, it looks like your program would probably be judged not a derivative. You did not take almost the whole evaluation from any single program. You added many things to the state of the art. I would expect if we did an evaluation of Rebel. etc we would find it to be very unique. But until that is done, I cannot say for certainly.
Let's reverse the case. Someone reads the page, takes the Rebel data structure and (say) 80% of the EVAL ideas. In his own code. Is the result a derivative according to rule #2 ??

This has been an interesting question that has not been answered, because it does not apply in the Rybka/Fruit case. Rephrased:

What if someone looks at my eval, and noted every thing being done, and then writes their own code using those very specific idea specifications. Is that original? I have not thought about that case as of yet. My first thought, "no". They "stole" my "plot" if we use a metaphor. But we are not talking about copying every idea from another program in the Fruit/Rybka case. There is more that was copied, specifically implementation details that go beyond the concept of "an idea" and end up in "coding implementation."

So while your question is interesting for future potential program investigations, it really doesn't fit very well here.

One can copy ideas, implementations, or anything in between. And very quickly the copy loses originality the closer one gets to copying implementation details. If you just stop at ideas, such as "passed pawns are good" or "backward pawns are bad" then one is perfectly ok. But if you go to specific implementation details of a program and write code that does exactly what the original does, then that is not so original...

Post Reply