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 » Sat May 12, 2012 9:13 am

mjlef wrote:"fancy word games"? I really hate this kind of rhetoric. I was quite clear. Yes Vasik copied Fruit.
Finally we are talking! Thank you for saying it.

It's not about "too much", it's about the assumption and accusation Rybka started its life by copying Fruit. None can proof it, not even Zach and MarkW by their own words, only make it plausible. And many programmers fell for it. Here is another plausible scenario, what actually happened IMO.

1. In 2003 Vasik gets interested in computer chess, he later makes arrogant statements like "I will be the number one" and "I started chess programming to become a commercial".

2. He reads everything what's available and makes notes. I can only offer some screen shots of a 10Mb documentation file he mailed me around November 2011, I am bound to confidentiality and there is Rybka 2 and 3 stuff also in it.

http://www.top-5000.nl/notes.gif
http://www.top-5000.nl/notes2.jpg
http://www.top-5000.nl/notes3.jpg

3. He starts experimenting with the Crafty source code and produces several misnomers called Rybka 1.4, 1.5 and 1.61 which he enters in 2 tournaments in breach with the Crafty license. He got caught 7 years later because someone (Olivier Deville) sends the 3 private pre-Rybka's including the mail correspondence to the ICGA investigators. From the mail correspondence one is important, Olivier Deville asking for a new Rybka version, note the dates.

----- Original Message -----
From: Vasik Rajlich
To: 'Olivier Deville'
Sent: Thursday, November 25, 2004 1:47 PM
Subject: RE: Rybka - new version ?

Hi Olivier,

I am afraid I won’t be ready with my newest version. (It’s really incredible how time flies.)

Attached is the latest version of my program which can play, 1.6.1. It’s around 6 months old. It is up to you if you enter it in your tournament, or if you prefer that Rybka should wait for your next cycle in another six moths or so.

Best regards,
Vas


Since there are no in between versions after Rybka 1.6.1 and Vasik resets the number to Rybka 1.0 it's likely to assume Vas closed his experiments with the Crafty source code and started with his own bit-board engine, definitely inspired by Crafty. By his own words he said, "in 2003 I already had my own bit-board engine". Whether he said that in private or public I don't remember. Perhaps he is one year wrong here (or I am) and 2004 is the correct year. The email suggests he started with Rybka 1.0 around May 2004 about the same time Fabien released Fruit 1.0. That makes about 1.5 year to complete Rybka 1.0 as we know it. This scenario is much more likely than the narrow 5.5 months Fruit 2.1 time line. Fruit 2.1 (June 2005), Rybka 1.0 (December 2005).

4. All in all I don't believe he copied but imported idea's he learned from Fruit. My list of Fruit traces:

4a. It's likely to assume Vasik ported the Fruit PST initialization code to C# to create the Rybka PST's. In email he said to me:

Vasik Rajlich: The piece-square table C# code - unfortunately I have only the code which creates my piece-square tables today. The piece-square tables are similar but not exactly the same as the Rybka 1 piece-square tables. Also, I definitely have tinkered with the C# code in the last six years. For example now I use .NET reflection, which AFAIK was not even around in 2005. So, it won't be exact. Plus, I'll probably want to delete a few things. Is this really worth doing? It's hard for me to see this as a major issue. (December, 2011)

Vasik Rajlich: During my tuning I used ints, but much finer than pawn=3200. I needed to be able to "perturb" each eval weight minimally and calculate the delta for the fit between eval scores and game results. This is the "gradient" part of gradient descent. (December 2011)

4b. The use of "setjmp" to unwind the recursive search. He said he took the idea from Fruit.

4c. The call to search from UCI. It's code is almost identical.

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.

=======

4a is about 0-5 elo where a 5 elo gain is a lot. If you already have reasonable PST values there is about zero gain in trying to find optimal values. A waste of time IMO.

4b and 4c are about 0 elo both, just a programmers convenience.

The big question is of course 4d and how many elo points it is worth. And indeed his 20 elo statement looks stupid here. Nevertheless, I grew up with no internet, no open sources and got my chess knowledge from every instructive chess book I got my hands on and Rebel's EVAL heavily leans on that. So what exactly is the difference between:

Vasik - I went through the Fruit 2.1 source code forwards and backwards and took many things.

and:

Ed - I went through the Max Euwe books forwards and backwards and took many things.

Public knowledge is public knowledge, studying and using what you have learned is no crime and the late great Max Euwe if he were still alive could never sue me for making money from something he voluntarily released. And I am pretty sure Fabien borrowed loads idea's from others. I can see many of my idea's in Fruit. It's nonsense to accuse Fabien of a copyright breach.

5. Streka - is a mixture of Fruit and Rybka and both Fabien and Vas own the copyright of that. MarkW and Zach were keen enough to recognize this hence they started the painful process of reverse engineering the Rybka executable as they realized you can't draw serious conclusions from Strelka and trust the words of a proven hacker who wanted to commercialize it.

User avatar
Chris Whittington
Posts: 437
Joined: Wed Jun 09, 2010 6:25 pm

Re: Rule #2 and its use during history

Post by Chris Whittington » Sat May 12, 2012 11:21 am

mjlef wrote:
Rebel wrote:
mjlef wrote:
Rebel wrote:Continuation...

CHAPTER TWO: Rule 2

As there is no hard proof of verbatim copying Fruit's EVAL the Rybka investigators searched for "evaluation similarities" to strengthen their case Rybka being derived from Fruit. And here rule #2 comes into play, the subject of originality. Or as Mark Lefler has put it: Vasik took too much in the eyes of the panel.

The complete quote:

Ed, I think that is the best summary of this whole thing. Vasik took too much in the eyes of the panel. More than enough to call the versions of Rybka we examined to be called "derivatives", and he did not report this as required by the rules.

It's obvious MarkL is talking about "taking ideas" here, not code as otherwise rule #2 would allow verbatim copying to some extend after all which is out of the question. And so the Panel according to MarkL has ruled Vasik took "too much" ideas from Fruit. This is a totally new situation in the history of the ICGA, since day one (quoting Bob) rule #2 has been about copying and I agree with him, it is exactly my recollection from the past and the sole reason why I signed Fabien letter because I believed Vasik copied Fruit, made changes and called the result his own.

So apparently the true meaning of rule #2 is that there is an (undefined) limit on the number of ideas you are allowed to take from open-sources. It's not about copying any longer (it always was) but the volume you take of common (non-copyrightable) chess knowledge idea's found in every decent chess program is suddenly a major issue.

So what has the ICGA-Rybka case learned us?

1. Open sources are hijacked by the ICGA to serve as a model you can't take an undefined number of ideas from, else.....

2. "Too much" is defined by the ICGA programmers, the Panel.

3. There was (and still is) no definition of "too much". I am still waiting.

4. So for the moment be careful when you study open-sources, implement what you have learned differently, or better don't study them at all. And if you do after all then don't say in public you have taken many things from program xxx.
I am sorry, you are not quoting me properly. I said "Vasik took too much in the eyes of the panel". You added "ideas", which I did not say. Vasik too a lot more than simply ideas. He took (uncredited) very specific methods of measuring features and scored them the same way as in Fruit 2.1. Some ideas have only one way of measuring (say isolated pawns). But he even took the ways there were combined (for example, for pawns, how isolated, doubled, passed, candidate, backward.. and so on were measured. There were very few differences in the eval features measured and scored. As for a definition of "too much", the Watkins documents go into exactly how the panel measured the overlap and gives the match for standard deviations and compared it with many programs. I suggested you do the same analysis of some of your own programs to try and demonstrate any similar overlap of methods, but so far no one has come up with any other program so similar to Rybka or Fruit (other that ripoffs like Strelka). I think we very scientifically justified our decisions. There is no legal definition in patent or copyright cases of what is "too much". We gave numbers.
Let me be short, the deal was that Vasik copied Fruit, hence programmers signed the Fabien letter. No fancy word games, the key-word is copying. Did he copy Fruit or not. Did he take a shortcut and got his first 2700 elo for free or not. That is and was the issue. Be as clear as Bob, "rule #2 is about copying since day one". If you (still) think Vasik copied Fruit keep your conviction by all means, Bob does. However if you are not so sure any longer then undo the injustice.

And clearly define "too much" in rule #2, I guess the generation of programmers that grow up with strong open sources would like to know where to draw the line. And the line is unclear as the R/F case convincingly has demonstrated.
"fancy word games"? I really hate this kind of rhetoric. I was quite clear. Yes Vasik copied Fruit. Not having access to the source code, we cannot show he used the same variable names and such. But we can show the early Rybkas used just about every term in the evaluation of Fruit, and he did not inform the ICGA that he did this. He broke the rules.

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.
Mark,

It's not completely clear what you mean by "used just about every term in the evaluation of Fruit", but just about all programs, and the programmers we asked in a poll, use "just about every term in the evaluation of Fruit" and each other

(1=used the term, first two columns are Fruit and Rybka, others are from poll)

as you can see, most programs use the same stuff, in particular the most popular terms.

Code: Select all

Rooks on 7th	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Doubled pawns	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Isolated pawns	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Passer initial 	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Rook open file	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
King shelter b	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Bishop mobility	1	1	1	1	1	1		1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Bishop pair	1	1	1	1	1	1		1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Backward pawn	1	1	1	1	1	1	1	1	1	1	1	1	1	1		1	1	1	1	1	1	1	1
Rook semi open 	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1		1	1	1	1	1	1	1
Passer, free run	1	1	1	1	1	1		1		1	1	1	1	1	1	1	1	1	1	1	1	1	1
King danger, wh	1	1	1	1	1	1		1	1	1	1	1	1	1		1	1	1	1	1	1		1
King danger fro	1	1	1	1	1	1		1	1	1	1	1	1	1		1	1	1	1	1	1	1	1
Draw recogniti	1	1	1	1	1	1		1	1	1	1	1	1	1	1	1	1	1	1		1	1	1
Unstoppable pas	1	1	1	1	1	1		1	1	1	1	1	1	1		1	1	1	1		1		1
King danger, rel	1	1	1	1	1	1		1	1	1	1	1	1	1		1		1	1	1	1		1
Passer, king inv	1	1	1		1	1		1		1	1	1	1	1	1	1	1	1	1		1		1
Rook mobility	1	1	1	1	1	1				1	1	1	1	1	1	1	1		1		1	1	1
Material imbala		1	1	1	1	1	1	1			1	1		1	1	1	1	1		1	1		1
Game phase	1	1		1	1	1	1	1	1	1	1	1		1		1	1			1	1	1	1
Trapped bishops	1	1	1	1	1	1		1	1	1	1				1	1	1	1	1	1		1	
Lazy eval		1	1	1	1			1	1	1	1	1		1	1			1	1	1	1	1	
Castling bonus			1	1		1	1		1	1	1		1		1		1	1	1	1	1	1	1
Knight mobility	1	1								1	1	1	1	1	1		1	1	1	1	1	1	1
Candidate passe	1	1	1		1			1		1	1	1		1			1		1	1	1	1	1
Opposite Bishop 	1	1	1		1	1		1		1	1	1	1	1	1			1	1			1	
Knight outposts			1			1		1	1	1			1	1	1		1	1	1	1	1	1	
Special endgame			1			1		1		1			1	1	1	1	1	1	1		1		1
Blocked rooks	1	1	1		1	1			1				1	1			1	1	1	1		1	
General develop			1			1		1		1	1			1		1	1	1	1	1	1		
Blocked centre p	1	1	1			1	1	1			1	1			1				1	1			
Queen mobility	1	1			1							1	1			1	1			1	1	1	1
King pawn stor	1	1				1	1	1		1	1							1	1				1
Queen 7th rank	1	1	1	1	1	1		1				1		1				1					
Pawn duos			1	1		1		1	1				1			1			1		1	1	1
Tempo		1				1		1	1			1			1	1	1						1
Pawn centre						1		1				1		1		1		1	1	1		1	1
Bad bishops			1			1		1					1			1	1		1	1		1	
Early developm			1			1	1	1							1	1			1	1		1	
Bishop knight in 			1			1		1					1		1	1			1				
Knight trapped	1	1				1		1				1				1						1	
Hung pieces, pin						1				1	1		1							1		1	
Pawn immobilit			1		1	1																	1
Bishop outposts						1		1	1										1				
Pawn guards						1		1					1										
Pawn strcutur 			1		1																		
Pawn outpost						1																	
	               29	32	36	24	29	42	14	38	24	30	30	30	30	30	25	30	30	30	36	30	29	30	30

mjlef
Posts: 43
Joined: Thu Jun 10, 2010 6:51 pm
Real Name: Mark Lefler

Re: Rule #2 and its use during history

Post by mjlef » Sun May 13, 2012 10:09 pm

Your "poll" was not scientific. It asked simple question and makes a bad assumption that the responders answered the questions accurately and completely. And the question were so vague as to make meaningful comparison impossible. How about following the methods the ICGA panel used to examine programs, then reporting that?

mjlef
Posts: 43
Joined: Thu Jun 10, 2010 6:51 pm
Real Name: Mark Lefler

Re: Rule #2 and its use during history

Post by mjlef » Sun May 13, 2012 10:19 pm

Ed,

It is interesting what you write below. You toss in a lot of straw men and not very useful stuff (which I will point out below). But you also admit some things. Lets go back to what the panel was formed to do. It was tasked with finding out if Vasik Rajlich violate the rules for the ICGA Tournaments it participated in. The panel’s work revealed a violation of Rule 2, which require Vasik to state on an entry form if his program was a derivative of any other program(s). When presented with the results of the investigate, the ICGA Board agreed. Only the ICGA Board can change their decision, so you need to appeal to them. Posting stuff here will not do that, so you continuing to bring up the same arguments again and again is not productive.


mjlef wrote:"fancy word games"? I really hate this kind of rhetoric. I was quite clear. Yes Vasik copied Fruit.

Finally we are talking! Thank you for saying it.
>> 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.

>>It's not about "too much",

I disagree. If only a few “ideas” were taken then the panel would not have found Rybka to be a Fruit derivative. Most of the evaluation function from Fruit was taken, and that is too much.

>> it's about the assumption and accusation Rybka started its life by copying Fruit. None can proof it, not even Zach and MarkW by their own words, only make it plausible. And many programmers fell for it. Here is another plausible scenario, what actually happened IMO.

We went a lot further than “plausible”, and this is clearly shown in the reports. Comparisons with other programs reveal a huge evaluation overlap of many standard deviations. And apparently all the voting members and ICGA Board agreed.

>>1. In 2003 Vasik gets interested in computer chess, he later makes arrogant statements like "I will be the number one" and "I started chess programming to become a commercial".

2. He reads everything what's available and makes notes. I can only offer some screen shots of a 10Mb documentation file he mailed me around November 2011, I am bound to confidentiality and there is Rybka 2 and 3 stuff also in it.

http://www.top-5000.nl/notes.gif
http://www.top-5000.nl/notes2.jpg
http://www.top-5000.nl/notes3.jpg

>>TItle of documents means almost nothing. It does not in any way rule out the theft of Fruit.

3. He starts experimenting with the Crafty source code and produces several misnomers called Rybka 1.4, 1.5 and 1.61 which he enters in 2 tournaments in breach with the Crafty license. He got caught 7 years later because someone (Olivier Deville) sends the 3 private pre-Rybka's including the mail correspondence to the ICGA investigators. From the mail correspondence one is important, Olivier Deville asking for a new Rybka version, note the dates.
>>

Ah, so you at least admit Vasik stole Crafty. Which indicates a willingness to take code from others, without credit. You leave out the fact that Vasik has claimed Rybka was entirely original both to Olivier and on some forums. Why do you now trust Vasik at all if he has lied to many people before?

----- Original Message -----
From: Vasik Rajlich
To: 'Olivier Deville'
Sent: Thursday, November 25, 2004 1:47 PM
Subject: RE: Rybka - new version ?

Hi Olivier,

I am afraid I won’t be ready with my newest version. (It’s really incredible how time flies.)

Attached is the latest version of my program which can play, 1.6.1. It’s around 6 months old. It is up to you if you enter it in your tournament, or if you prefer that Rybka should wait for your next cycle in another six moths or so.

Best regards,
Vas

Since there are no in between versions after Rybka 1.6.1 and Vasik resets the number to Rybka 1.0 it's likely to assume Vas closed his experiments with the Crafty source code and started with his own bit-board engine, definitely inspired by Crafty.
>>

Well, we can see a massive change in the EXEs we examined indicating Vasik switched from Crafty as a code base to Fruit.

>>By his own words he said, "in 2003 I already had my own bit-board engine". Whether he said that in private or public I don't remember. Perhaps he is one year wrong here (or I am) and 2004 is the correct year. The email suggests he started with Rybka 1.0 around May 2004 about the same time Fabien released Fruit 1.0. That makes about 1.5 year to complete Rybka 1.0 as we know it. This scenario is much more likely than the narrow 5.5 months Fruit 2.1 time line. Fruit 2.1 (June 2005), Rybka 1.0 (December 2005).
>>

Well, this is all speculation on your part. What email says he started over again around May 2004? Or are you making that up? In any case, it does not matter if Rybka's amazing 800+ elo jump took 6 months of 1.5 years. He did it by taking from Fruit and not notifying the ICGA.

>>4. All in all I don't believe he copied but imported idea's he learned from Fruit. My list of Fruit traces:

More speculation with your "I don.t believe". It does not matter if Vasik copied code, or translated it to another form (from mailbox to bitboard). The panel still considered that a derivative.

>>
4a. It's likely to assume Vasik ported the Fruit PST initialization code to C# to create the Rybka PST's. In email he said to me:

Vasik Rajlich: The piece-square table C# code - unfortunately I have only the code which creates my piece-square tables today. The piece-square tables are similar but not exactly the same as the Rybka 1 piece-square tables. Also, I definitely have tinkered with the C# code in the last six years. For example now I use .NET reflection, which AFAIK was not even around in 2005. So, it won't be exact. Plus, I'll probably want to delete a few things. Is this really worth doing? It's hard for me to see this as a major issue. (December, 2011)

>>

Well, good. You seem to agree he took the PST table scheme from Fruit. We found the same thing!

>>
Vasik Rajlich: During my tuning I used ints, but much finer than pawn=3200. I needed to be able to "perturb" each eval weight minimally and calculate the delta for the fit between eval scores and game results. This is the "gradient" part of gradient descent.(December 2011)
>>

I am not sure what this does to prove innocence, and why you pad the message with unrelated things.

>>4b. The use of "setjmp" to unwind the recursive search. He said he took the idea from Fruit.

I do not think the panel put much weight on setjmp at all. It is a rather ugly, but somewhat common “optimization”.

>>4c. The call to search from UCI. It's code is almost identical.

Yes, the panel found lots of nearly identical stuff here, again indicating it was a derivative. If Vasik had code based before Fruit, then why would he change the basic UCI parsing to closely match Fruit’s unless he copied from it?

>>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.

Ah, then you admit Vasik “modeled” the Rybka eval on Fruit. We call that making a derivative, and you proved our point!

>>

=======

4a is about 0-5 elo where a 5 elo gain is a lot. If you already have reasonable PST values there is about zero gain in trying to find optimal values. A waste of time IMO.

>>
I must disagree. Well tuned PSTs are worth a lot more than 5 elo at least in my programs. Restating what someone says is not proof that it is true.

>>
4b and 4c are about 0 elo both, just a programmers convenience.
>>

You are confusing playing strength with making a derivative. It does not matter if Rybka is strong or weak. The panel was tasked to examine if Rybka was a derivative, and we showed it was. Stealing a badly written novel is still theft.

>>The big question is of course 4d and how many elo points it is worth. And indeed his 20 elo statement looks stupid here.

Yes, we thought his 20 elo statement was stupid too, since Rybka gained 800+ elo in 6 months (or even 1.5 years if you can prove his start date on the newer version).

>>Nevertheless, I grew up with no internet, no open sources and got my chess knowledge from every instructive chess book I got my hands on and Rebel's EVAL heavily leans on that. So what exactly is the difference between:

Vasik - I went through the Fruit 2.1 source code forwards and backwards and took many things.

and:

Ed - I went through the Max Euwe books forwards and backwards and took many things.

>>

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.

>>Public knowledge is public knowledge, studying and using what you have learned is no crime and the late great Max Euwe if he were still alive could never sue me for making money from something he voluntarily released. And I am pretty sure Fabien borrowed loads idea's from others. I can see many of my idea's in Fruit. It's nonsense to accuse Fabien of a copyright breach.

Actually, just because something is public does not mean you can reuse it without permission. That is what copyright and patents are all about. So I have to say you are wrong here. But this is all trying to change the subject. The ICGA says you have to report if your program is a derivative to play in the ICGA tournaments. Vasick did not report it. He broke the rules. And your comments look like you agree.

>>5. Streka - is a mixture of Fruit and Rybka and both Fabien and Vas own the copyright of that. MarkW and Zach were keen enough to recognize this hence they started the painful process of reverse engineering the Rybka executable as they realized you can't draw serious conclusions from Strelka and trust the words of a proven hacker who wanted to commercialize it.

I agree, but this does not in any way justify Vasik violating the rules. Strelka has not even competed in ICGA tournaments. I am sure if Strelka tried to compete, the ICGA would investigate it.

User avatar
marcelk
Posts: 52
Joined: Fri Jan 28, 2011 10:27 pm
Real Name: Marcel van Kervinck

Re: Rule #2 and its use during history

Post by marcelk » Mon May 14, 2012 1:28 am

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.
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.

Besides, how does including "sophisticated and original ideas" relief oneself from violating the hawkish interpretation of rule #2? If there is one thing the CSVN got right this weekend then it is to establish a separation of concerns: leave IP rights to specialists and the law system and at the same time protect their tournament from unwanted entries with the black-box similarity test.

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 » Mon May 14, 2012 3:48 am

User923005 wrote:

"fancy word games"? I really hate this kind of rhetoric. I was quite clear. Yes Vasik copied Fruit. Not having access to the source code, we cannot show he used the same variable names and such. But we can show the early Rybkas used just about every term in the evaluation of Fruit, and he did not inform the ICGA that he did this. He broke the rules.

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.
Obviously, he did not use Fruit's evaluation, because Fruit is not bitboard based, and Rybka is bitboard based. He definitely used some similar terms in evaluation, which is what you have demonstrated in your reams of documentation.

In his very first beta, he admitted to using ideas from both Fruit and Crafty. So your complaint about his non-disclosure is disingenuous at best and a lie at worst. His readme documentation giving clear credit is much superior to all of the other entrants who gave no credit at all to the 90% of their program's contents which consists of ideas taken from other programs and articles written by other programmers.

Why is it OK to use null move pruning, Zobrist hashing, predicted variation search with zero window, extensions (name your poison), pruning algorithms (name your poison), reductions (name your poison) without giving credit to any of the authors when these things clearly make the program much stronger than it would be without them (in fact these things add far more than evaluation since they reduce the branching factor which clearly dominates chess) and yet it is wrong to use many similar chess evaluation terms when these things are found in any beginner's chess book and are common knowledge?

The answer is clear to me. You make up whatever rules you like. Without having his source code it is literally impossible for you to prove that he has used the same source code, unless the binaries were identical and the binaries are not identical. Since the fundamental data structures are different these every facet of the program would have to be rewritten to use any chess ideas from Fruit. Of course, you know all of this if you have read any of the documents found on Ed's site, as well as the fact that each and every claim of the tribunal has been thoroughly debunked.

IMO-YMMV

You, Chris and Ed want, desperately, for this to be about copying "ideas". It is NOT about ideas. It is about copying specific implementations of well-understood ideas. There is a difference between "implementation" and "idea". Until we get past this intentional attempt to confuse the two and say they are the same thing, we are going nowhere. Again, this has NOTHING to do with ideas. It has EVERYTHING to do with specific implementations - the precise steps, conditions and actions done to realize an idea as expressed in a program.

No rules are being made up. The ICGA and participants have well-understood the rules and the specific intent of rule 2. There has been no arbitrarily skewed interpretations of said rule, ever. Not once. We want original programs. Hopefully we are going to have original programs. There will be more fallout from rule 2 over time. There has been plenty of fallout over the past 20 years, already... People will continue to break the rules and hope they get away with it. Many, if not all, will get caught...

Not one piece of evidence has been "completely debunked." Only in your mind. Not in actual fact. One CAN compare a binary and a source to look for semantic equivalence. Semantic equivalence does NOT happen serendipitously. No matter how much you want it to be so... Or how much you wish it were so...

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 » Mon May 14, 2012 3:50 am

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. It implies that he just studied what others had done, then wrote his own code to do that. That is NOT what happened...

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 » Mon May 14, 2012 3:56 am

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?

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 » Mon May 14, 2012 4:03 am

Chris Whittington wrote:
mjlef wrote:
Rebel wrote:
mjlef wrote:
Rebel wrote:Continuation...

CHAPTER TWO: Rule 2

As there is no hard proof of verbatim copying Fruit's EVAL the Rybka investigators searched for "evaluation similarities" to strengthen their case Rybka being derived from Fruit. And here rule #2 comes into play, the subject of originality. Or as Mark Lefler has put it: Vasik took too much in the eyes of the panel.

The complete quote:

Ed, I think that is the best summary of this whole thing. Vasik took too much in the eyes of the panel. More than enough to call the versions of Rybka we examined to be called "derivatives", and he did not report this as required by the rules.

It's obvious MarkL is talking about "taking ideas" here, not code as otherwise rule #2 would allow verbatim copying to some extend after all which is out of the question. And so the Panel according to MarkL has ruled Vasik took "too much" ideas from Fruit. This is a totally new situation in the history of the ICGA, since day one (quoting Bob) rule #2 has been about copying and I agree with him, it is exactly my recollection from the past and the sole reason why I signed Fabien letter because I believed Vasik copied Fruit, made changes and called the result his own.

So apparently the true meaning of rule #2 is that there is an (undefined) limit on the number of ideas you are allowed to take from open-sources. It's not about copying any longer (it always was) but the volume you take of common (non-copyrightable) chess knowledge idea's found in every decent chess program is suddenly a major issue.

So what has the ICGA-Rybka case learned us?

1. Open sources are hijacked by the ICGA to serve as a model you can't take an undefined number of ideas from, else.....

2. "Too much" is defined by the ICGA programmers, the Panel.

3. There was (and still is) no definition of "too much". I am still waiting.

4. So for the moment be careful when you study open-sources, implement what you have learned differently, or better don't study them at all. And if you do after all then don't say in public you have taken many things from program xxx.
I am sorry, you are not quoting me properly. I said "Vasik took too much in the eyes of the panel". You added "ideas", which I did not say. Vasik too a lot more than simply ideas. He took (uncredited) very specific methods of measuring features and scored them the same way as in Fruit 2.1. Some ideas have only one way of measuring (say isolated pawns). But he even took the ways there were combined (for example, for pawns, how isolated, doubled, passed, candidate, backward.. and so on were measured. There were very few differences in the eval features measured and scored. As for a definition of "too much", the Watkins documents go into exactly how the panel measured the overlap and gives the match for standard deviations and compared it with many programs. I suggested you do the same analysis of some of your own programs to try and demonstrate any similar overlap of methods, but so far no one has come up with any other program so similar to Rybka or Fruit (other that ripoffs like Strelka). I think we very scientifically justified our decisions. There is no legal definition in patent or copyright cases of what is "too much". We gave numbers.
Let me be short, the deal was that Vasik copied Fruit, hence programmers signed the Fabien letter. No fancy word games, the key-word is copying. Did he copy Fruit or not. Did he take a shortcut and got his first 2700 elo for free or not. That is and was the issue. Be as clear as Bob, "rule #2 is about copying since day one". If you (still) think Vasik copied Fruit keep your conviction by all means, Bob does. However if you are not so sure any longer then undo the injustice.

And clearly define "too much" in rule #2, I guess the generation of programmers that grow up with strong open sources would like to know where to draw the line. And the line is unclear as the R/F case convincingly has demonstrated.
"fancy word games"? I really hate this kind of rhetoric. I was quite clear. Yes Vasik copied Fruit. Not having access to the source code, we cannot show he used the same variable names and such. But we can show the early Rybkas used just about every term in the evaluation of Fruit, and he did not inform the ICGA that he did this. He broke the rules.

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.
Mark,

It's not completely clear what you mean by "used just about every term in the evaluation of Fruit", but just about all programs, and the programmers we asked in a poll, use "just about every term in the evaluation of Fruit" and each other

(1=used the term, first two columns are Fruit and Rybka, others are from poll)

as you can see, most programs use the same stuff, in particular the most popular terms.

Code: Select all

Rooks on 7th	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Doubled pawns	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Isolated pawns	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Passer initial 	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Rook open file	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
King shelter b	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Bishop mobility	1	1	1	1	1	1		1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Bishop pair	1	1	1	1	1	1		1	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1
Backward pawn	1	1	1	1	1	1	1	1	1	1	1	1	1	1		1	1	1	1	1	1	1	1
Rook semi open 	1	1	1	1	1	1	1	1	1	1	1	1	1	1	1		1	1	1	1	1	1	1
Passer, free run	1	1	1	1	1	1		1		1	1	1	1	1	1	1	1	1	1	1	1	1	1
King danger, wh	1	1	1	1	1	1		1	1	1	1	1	1	1		1	1	1	1	1	1		1
King danger fro	1	1	1	1	1	1		1	1	1	1	1	1	1		1	1	1	1	1	1	1	1
Draw recogniti	1	1	1	1	1	1		1	1	1	1	1	1	1	1	1	1	1	1		1	1	1
Unstoppable pas	1	1	1	1	1	1		1	1	1	1	1	1	1		1	1	1	1		1		1
King danger, rel	1	1	1	1	1	1		1	1	1	1	1	1	1		1		1	1	1	1		1
Passer, king inv	1	1	1		1	1		1		1	1	1	1	1	1	1	1	1	1		1		1
Rook mobility	1	1	1	1	1	1				1	1	1	1	1	1	1	1		1		1	1	1
Material imbala		1	1	1	1	1	1	1			1	1		1	1	1	1	1		1	1		1
Game phase	1	1		1	1	1	1	1	1	1	1	1		1		1	1			1	1	1	1
Trapped bishops	1	1	1	1	1	1		1	1	1	1				1	1	1	1	1	1		1	
Lazy eval		1	1	1	1			1	1	1	1	1		1	1			1	1	1	1	1	
Castling bonus			1	1		1	1		1	1	1		1		1		1	1	1	1	1	1	1
Knight mobility	1	1								1	1	1	1	1	1		1	1	1	1	1	1	1
Candidate passe	1	1	1		1			1		1	1	1		1			1		1	1	1	1	1
Opposite Bishop 	1	1	1		1	1		1		1	1	1	1	1	1			1	1			1	
Knight outposts			1			1		1	1	1			1	1	1		1	1	1	1	1	1	
Special endgame			1			1		1		1			1	1	1	1	1	1	1		1		1
Blocked rooks	1	1	1		1	1			1				1	1			1	1	1	1		1	
General develop			1			1		1		1	1			1		1	1	1	1	1	1		
Blocked centre p	1	1	1			1	1	1			1	1			1				1	1			
Queen mobility	1	1			1							1	1			1	1			1	1	1	1
King pawn stor	1	1				1	1	1		1	1							1	1				1
Queen 7th rank	1	1	1	1	1	1		1				1		1				1					
Pawn duos			1	1		1		1	1				1			1			1		1	1	1
Tempo		1				1		1	1			1			1	1	1						1
Pawn centre						1		1				1		1		1		1	1	1		1	1
Bad bishops			1			1		1					1			1	1		1	1		1	
Early developm			1			1	1	1							1	1			1	1		1	
Bishop knight in 			1			1		1					1		1	1			1				
Knight trapped	1	1				1		1				1				1						1	
Hung pieces, pin						1				1	1		1							1		1	
Pawn immobilit			1		1	1																	1
Bishop outposts						1		1	1										1				
Pawn guards						1		1					1										
Pawn strcutur 			1		1																		
Pawn outpost						1																	
	               29	32	36	24	29	42	14	38	24	30	30	30	30	30	25	30	30	30	36	30	29	30	30

You are using the same disingenuous argument over and over. We are not talking about "both use rook on 7th". "both use backward pawn". Etc. We are talking about "both use the SAME exact conditions and actions to score <whatever>" That is NOT shown in your above comparison.

Be happy to take MY scoring for the above, and convert it to simple English text describing each condition, test, and action done to actually implement each of the above. And I'd do the same for Fruit. They do NOT match very well. This is not about the actual "chess idea" used, it is about the actual implementation of that idea. Everybody doesn't do each of those terms in the same way, or even in the same place in their code...

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: Rule #2 and its use during history

Post by BB+ » Mon May 14, 2012 11:25 am

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.

Post Reply