FIDE Rules on ICGA - Rybka controversy

General discussion about computer chess...
User avatar
Chris Whittington
Posts: 437
Joined: Wed Jun 09, 2010 6:25 pm

Re: FIDE Rules on ICGA - Rybka controversy

Post by Chris Whittington » Tue May 12, 2015 10:45 pm

hyatt wrote:
Chris Whittington wrote:
hyatt wrote:
Chris Whittington wrote:
hyatt wrote:
Rebel wrote:
BB+ wrote:
Chris Whittington wrote:did you look to see what readers were being invited to read. Levy invites readers to form their own opinion after reading ..... "Simply put, Rybka's evaluation is virtually identical to Fruit's."
And after reading Rajlich's reply: Aside from that, this document is horribly bogus. All that "Rybka code" isn't Rybka code, it's just someone's imagination. But then, maybe it is just my making of excuses for Levy that lead me to quote both parts, rather than just one... :roll:
Which document would that have been? IIRC the official documents weren't ready at that time.

And BTW, let's examine the full quote.

Code: Select all

From: Vasik Rajlich 
Subject: Re: Fruit and Rybka
To: "David Levy" 
Cc: "Jaap van den Herik"  "Hiroyuki Iida", Larry Kaufman"
Date: Friday, February 4, 2011, 8:33 AM

Hi David,

I'm not really sure what to say. The Rybka source code is original. I used lots of ideas from Fruit, as I have mentioned many times. Both Fruit and Rybka also use all sorts of common computer chess ideas.

Aside from that, this document is horribly bogus. All that "Rybka code" isn't Rybka code, it's just someone's imagination.

Best regards,

Vas
So we have 2 admissions of Vas -

1. I used lots of ideas from Fruit, as I have mentioned many times. (2011)

2. Vasik Rajlich: Yes, the publication of Fruit 2.1 was huge. Look at how many engines took a massive jump in its wake: Rybka, Hiarcs, Fritz, Zappa, Spike, List, and so on. I went through the Fruit 2.1 source code forwards and backwards and took many things. (December 2005, 3 weeks after the R1 release)

So in your RE work it's only natural you came accross Fruit ideas.

Basically the ICGA has convicted Vas by his own admission, especially the one of 2011.

We didn't convict him of anything. But we DID find that he violated rule 2, which is NOT about using an idea or two here and there. Our RE stuff was not looking for ideas, it was looking for specific implementation details which go far beyond "an idea". We found that Vas violated rule 2 NOT by any statements he made, but rather by the evidence that was compiled and examined.
I'ld like to hear a relatively new and independent programmer explain what he understands one would have to do to violate rule 2 as Vas is supposed to have done, and what to do to ensure his program was in the safe side of not violating rule 2 as Vas is supposed to have done.

I doubt anyone understands. Basically you convicted him because you intended to convict him because you decided beforehand he had to be guilty (of something).
I decided he was guilty after looking at a TON of evidence presented by Zach. I became even MORE convinced after looking at the additional evidence uncovered during the panel investigation. I didn't form ANY opinion prior to seeing real, concrete evidence. You keep implying I did. You are dead wrong. The evidence was/is really overwhelming.
that doesn't answer the question.

It addresses the accusation. I didn't convict him of anything. I formed an opinion that he violated ICGA rule 2, as did the rest of the panel that participated. I didn't form that opinion just because I wanted to. I formed it in light of a pile of evidence that was 100% convincing _to me_.

What one has to do to violate rule two is probably impossible to answer if you want a 100% all-inclusive answer. But for starters:

(1) one must not directly copy code that was written by others, except for the small pieces the ICGA has allowed in the past (i.e. endgame table code, sliding piece move generation (rotated or magic, NOT complete move generator ever).)

(2) one must not take a program and use it as a template or blueprint, with the original in one window, and writing the new code in another window, where they are effectively derivatives or non-literal copies.

(3) one must not take an existing program and simply translate it to a new language, or to a new board representation, and use that in an ICGA tournament.

A programmer KNOWS whether his program is original or mostly taken from another program. That doesn't require genius-level intellect to know. It only requires honesty.
1. is straightforward and not to difficult to prove. doesn't apply Rybka. no copyright violations,

3. is less straightforward but probably demonstrable. For Rybka this was not demonstrated.

2. is a mechanism impossible to prove. The EFFECT of 2. would be 3. assuming structural changes.

How is a TD supposed to work out these cases, at a tournament, in real time? You''ve created an unworkable monster, and bascially fiddled a rule that was supposed to be for simple cases at a tournament by the TD, manipulated it with the intention of finding anythign to get Vas on, and now you're stuck with a monster.

Admit defeat. Revoke the verdict and the sanctions. Treat rule 2 as a Td's rule to pick up obvious copies by direct copy and back it up with a move similarity tester. Accept that programmers have been copying ideas since time immemorial, and that programs that otherwise don't breach copyright are good for tournament. Simple really. You can elect me El Presidenta ICGA when Levy resigns and I'll implement the details. Simple ruels everybody can understand.

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: FIDE Rules on ICGA - Rybka controversy

Post by hyatt » Tue May 12, 2015 10:56 pm

1. Rybka contains an "almost" exact copy of Fruit's hash code. Exactly ONE line is different, out of 50. Also go_parse(). We didn't examine everything, there is likely some more (how much is a guess).

2. hard to say

3. This is almost certainly the origin of much of Rybka's code. Granted, over time some of it was replaced. Somewhere in the 3-4 range the hashing went from the Fruit kludge to an 8 byte hash entry, similar to what stockfish does today. I'd expect more and more to be replaced as time goes on. But at the point of 1.0 beta and 2.3.2 enough was still present.

As to "how" that's a good question. But not so hard. Participants are required to have source available. The TD can look for himself or choose an expert that is present and ask him to look. There are always several people capable of comparing two C source programs which are not participating in the WCCC event. It is MUCH easier to do it during the event rather than after. But there are issues. Time. # of protests. Etc. And I see nothing wrong with a one year statute of limitations so that wrongs can be corrected after the fact, when they are discovered. Again, another specificity level the current rules don't address and which does need to be changed.

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

Re: FIDE Rules on ICGA - Rybka controversy

Post by Chris Whittington » Tue May 12, 2015 11:24 pm

hyatt wrote:1. Rybka contains an "almost" exact copy of Fruit's hash code. Exactly ONE line is different, out of 50. Also go_parse(). We didn't examine everything, there is likely some more (how much is a guess).

2. hard to say

3. This is almost certainly the origin of much of Rybka's code. Granted, over time some of it was replaced. Somewhere in the 3-4 range the hashing went from the Fruit kludge to an 8 byte hash entry, similar to what stockfish does today. I'd expect more and more to be replaced as time goes on. But at the point of 1.0 beta and 2.3.2 enough was still present.

As to "how" that's a good question. But not so hard. Participants are required to have source available. The TD can look for himself or choose an expert that is present and ask him to look. There are always several people capable of comparing two C source programs which are not participating in the WCCC event. It is MUCH easier to do it during the event rather than after. But there are issues. Time. # of protests. Etc. And I see nothing wrong with a one year statute of limitations so that wrongs can be corrected after the fact, when they are discovered. Again, another specificity level the current rules don't address and which does need to be changed.
Nothing is almost certain. Let's see. I go away and write a simple mobility function using bitboard data structure. It looks quite like Fruit's function, except the code is obviously all different. I say I write it myself. You say I copied Fruit's. How does Mark Watkins decide which story is true? The problem is that above certain abstraction levels, it's impossible to decide whether code was copy-translated or self-written, all the clue markers have gone with the abstraction. The further code, if it is copied, is abstracted, the less able you are to distinguish it from code that was self written. The more you abstract, the more similar it looks, but also the more difficult to identify an origin.

The other problem is that copyright law recognises all manner of cases where similar or even identical code cannot be called copied. As you,abstract to level N abstractions, there are more and more and more cases where what looks similar or identical isn't copied. Your mechanism for interpreting rule 2 (simply because you needed to extend it to get Vas) has become a monster.

Take a step back. Use rule 2 to get obvious copies at TD time, as was done back in the past. Back it up wth a move similarity tester (but don't punish those who fail with anythign more than a DQ, they actually may not have done anythign wrong). Use your one year statute of limitations to find, if necessary, copyright infringers. Apart from that, let it go, you can't control everything.

Cancel the Rybka DQs and verdict. Process too too biased. Abstraction levels needed to secure alleged similarity too high. No copyright infringements proven. And just too destructive, as you surely realise.

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: FIDE Rules on ICGA - Rybka controversy

Post by hyatt » Wed May 13, 2015 12:07 am

Chris Whittington wrote:
hyatt wrote:1. Rybka contains an "almost" exact copy of Fruit's hash code. Exactly ONE line is different, out of 50. Also go_parse(). We didn't examine everything, there is likely some more (how much is a guess).

2. hard to say

3. This is almost certainly the origin of much of Rybka's code. Granted, over time some of it was replaced. Somewhere in the 3-4 range the hashing went from the Fruit kludge to an 8 byte hash entry, similar to what stockfish does today. I'd expect more and more to be replaced as time goes on. But at the point of 1.0 beta and 2.3.2 enough was still present.

As to "how" that's a good question. But not so hard. Participants are required to have source available. The TD can look for himself or choose an expert that is present and ask him to look. There are always several people capable of comparing two C source programs which are not participating in the WCCC event. It is MUCH easier to do it during the event rather than after. But there are issues. Time. # of protests. Etc. And I see nothing wrong with a one year statute of limitations so that wrongs can be corrected after the fact, when they are discovered. Again, another specificity level the current rules don't address and which does need to be changed.
Nothing is almost certain. Let's see. I go away and write a simple mobility function using bitboard data structure. It looks quite like Fruit's function, except the code is obviously all different. I say I write it myself. You say I copied Fruit's. How does Mark Watkins decide which story is true? The problem is that above certain abstraction levels, it's impossible to decide whether code was copy-translated or self-written, all the clue markers have gone with the abstraction. The further code, if it is copied, is abstracted, the less able you are to distinguish it from code that was self written. The more you abstract, the more similar it looks, but also the more difficult to identify an origin.

The other problem is that copyright law recognises all manner of cases where similar or even identical code cannot be called copied. As you,abstract to level N abstractions, there are more and more and more cases where what looks similar or identical isn't copied. Your mechanism for interpreting rule 2 (simply because you needed to extend it to get Vas) has become a monster.

Take a step back. Use rule 2 to get obvious copies at TD time, as was done back in the past. Back it up wth a move similarity tester (but don't punish those who fail with anythign more than a DQ, they actually may not have done anythign wrong). Use your one year statute of limitations to find, if necessary, copyright infringers. Apart from that, let it go, you can't control everything.

Cancel the Rybka DQs and verdict. Process too too biased. Abstraction levels needed to secure alleged similarity too high. No copyright infringements proven. And just too destructive, as you surely realise.

One single idea or evaluation term would not matter at all. The question is HOW MANY terms do you have in common with fruit, and how close is the implementation of each one? The more, the worse it looks. IE an integrated circuit is made up of very tiny and simple devices called "transistors". Using those to design your own microprocessor is perfectly OK. But if you arrange them and connect them in the same way Intel does, that would represent a problem. If you abstract away a bit, you might want to say "OK, Intel AND AMD both have a 3-level cache. That is a sign of copying." But if you look at the implementation, you discover that one is inclusive, one is exclusive, one uses MOESI cache coherency while the other uses MESIF. A broad idea is perfectly usable by anyone. It is how the idea is actually implemented (at the code level for ICGA) that is the key issue.

I think the idea of a quick and dirty test for the TD, and a detailed code inspection for those deemed suspect is the way to do this. In fact, that has been the way it has been done basically forever. But that wouldn't have changed the Rybka case. At the very least, he might not have lost the old titles (something I did not want to see by the way, I hate rewriting history as when you remove #1 in a Swiss event, #2 is not always second best, depending on number of rounds), but the investigation would have been no different other than that. The only point I see for debate is "how long for a statute of limitations?" I'm not sure I have a good answer. Certainly at least 1 years. But the problem becomes examining the source a year later. Is it the same source that competed? How can you tell? I suppose EVERY program could be run through a digital fingerprint process where a given (secret) set of positions are run through each program and the output saved. Then any code submitted to an investigation could be validated as producing exactly the same output as the program that played in the event.

There are certainly things to think about.

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

Re: FIDE Rules on ICGA - Rybka controversy

Post by Chris Whittington » Wed May 13, 2015 10:10 am

hyatt wrote:
Chris Whittington wrote:
hyatt wrote:1. Rybka contains an "almost" exact copy of Fruit's hash code. Exactly ONE line is different, out of 50. Also go_parse(). We didn't examine everything, there is likely some more (how much is a guess).

2. hard to say

3. This is almost certainly the origin of much of Rybka's code. Granted, over time some of it was replaced. Somewhere in the 3-4 range the hashing went from the Fruit kludge to an 8 byte hash entry, similar to what stockfish does today. I'd expect more and more to be replaced as time goes on. But at the point of 1.0 beta and 2.3.2 enough was still present.

As to "how" that's a good question. But not so hard. Participants are required to have source available. The TD can look for himself or choose an expert that is present and ask him to look. There are always several people capable of comparing two C source programs which are not participating in the WCCC event. It is MUCH easier to do it during the event rather than after. But there are issues. Time. # of protests. Etc. And I see nothing wrong with a one year statute of limitations so that wrongs can be corrected after the fact, when they are discovered. Again, another specificity level the current rules don't address and which does need to be changed.
Nothing is almost certain. Let's see. I go away and write a simple mobility function using bitboard data structure. It looks quite like Fruit's function, except the code is obviously all different. I say I write it myself. You say I copied Fruit's. How does Mark Watkins decide which story is true? The problem is that above certain abstraction levels, it's impossible to decide whether code was copy-translated or self-written, all the clue markers have gone with the abstraction. The further code, if it is copied, is abstracted, the less able you are to distinguish it from code that was self written. The more you abstract, the more similar it looks, but also the more difficult to identify an origin.

The other problem is that copyright law recognises all manner of cases where similar or even identical code cannot be called copied. As you,abstract to level N abstractions, there are more and more and more cases where what looks similar or identical isn't copied. Your mechanism for interpreting rule 2 (simply because you needed to extend it to get Vas) has become a monster.

Take a step back. Use rule 2 to get obvious copies at TD time, as was done back in the past. Back it up wth a move similarity tester (but don't punish those who fail with anythign more than a DQ, they actually may not have done anythign wrong). Use your one year statute of limitations to find, if necessary, copyright infringers. Apart from that, let it go, you can't control everything.

Cancel the Rybka DQs and verdict. Process too too biased. Abstraction levels needed to secure alleged similarity too high. No copyright infringements proven. And just too destructive, as you surely realise.

One single idea or evaluation term would not matter at all. The question is HOW MANY terms do you have in common with fruit, and how close is the implementation of each one? The more, the worse it looks. IE an integrated circuit is made up of very tiny and simple devices called "transistors". Using those to design your own microprocessor is perfectly OK. But if you arrange them and connect them in the same way Intel does, that would represent a problem. If you abstract away a bit, you might want to say "OK, Intel AND AMD both have a 3-level cache. That is a sign of copying." But if you look at the implementation, you discover that one is inclusive, one is exclusive, one uses MOESI cache coherency while the other uses MESIF. A broad idea is perfectly usable by anyone. It is how the idea is actually implemented (at the code level for ICGA) that is the key issue.

I think the idea of a quick and dirty test for the TD, and a detailed code inspection for those deemed suspect is the way to do this. In fact, that has been the way it has been done basically forever. But that wouldn't have changed the Rybka case. At the very least, he might not have lost the old titles (something I did not want to see by the way, I hate rewriting history as when you remove #1 in a Swiss event, #2 is not always second best, depending on number of rounds), but the investigation would have been no different other than that. The only point I see for debate is "how long for a statute of limitations?" I'm not sure I have a good answer. Certainly at least 1 years. But the problem becomes examining the source a year later. Is it the same source that competed? How can you tell? I suppose EVERY program could be run through a digital fingerprint process where a given (secret) set of positions are run through each program and the output saved. Then any code submitted to an investigation could be validated as producing exactly the same output as the program that played in the event.

There are certainly things to think about.

Hyatt: One single idea or evaluation term would not matter at all. The question is HOW MANY terms do you have in common with fruit, and how close is the implementation of each one? The more, the worse it looks.

So, essentially, your case is that there are "too many" similar evaluation terms in Rybka that come from Fruit? But written differently and with different evaluation weights. Right?

If this were the case, and we were able to substitute the relevent Fruit evaluation weights back into Rybka, then we should have, according to your hypothesis, two very similar programs with a high move correlation. Right? We should have the actual current Fruit-Rybka move correlation number available to compare against the new correlation when both progs use the same weights. Then we can consider the difference. Does the Fruitified evaluation Rybka version show substantial similarity ...?

This would be an interesting experiment .... has anybody done it? It would be definitive, I would have thought. Show me a high correlation, and I'll agree you are correct. If it remains low, will you agree you are wrong?

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

Re: FIDE Rules on ICGA - Rybka controversy

Post by Rebel » Wed May 13, 2015 5:09 pm

BB+ wrote: Similarly with (see page 58 of Rybka Reloaded) your listing of "Different FEN parsing" and "different Zobrist hash keys" as Rybka/Fruit differences that Zach and I "missed", as if they would have anything to do with a Rule #2 violation. I might expect such silliness from Riis, but with you? :?:
I saved this one for the last. I wondered if I should address it. Because you are pretending (your rule #2 comment) that you don't understand the relationship between the accusation of Fabien (Vas copied Fruit) (see page 38 of the PDF version) and the accusation of the complaint of 16 programmers to the ICGA which basically is the same accusation, less stronger worded than Fabien, but the "copy" accusation is there - [ We believe Rybka is a Fruit derivative albeit an advanced one. ] From the 16 who signed I checked 8 of whom I had a sort of relationship then, or in the past and all of them believed Vas did exactly that, the Fabien accusation, that Vas took the Fruit source code, wiped out the Fruit DNA, added 100 elo and released it under his own name. And therefore they signed the letter. The heart of the complaint is not the Fruit ideas in Rybka, the heart of the complaint is that they believed Vas copied.

Seriously, I am not sure why I have to explain this to you since you are well aware. 3 weeks after the Rybka 1.0 release Vas in an interview said - I went through the Fruit 2.1 source code forwards and backwards and took many things.

And NO PROGRAMMER took offense in 2005 because it's generally agreed it's okay to do that AS LONG as you do not COPY and many programmers by their own admission did the same, taking from Fruit.

Things changed when programmers started to believe Vas COPIED.

And some smart dude found the stick to punish Vas for what he (allegedly) did (copying Fruit) namely the cryptic ICGA rule #2 that can be interpreted in various ways. And this is THE MAIN THING I have against the verdict, if you are so convinced Vas copied, then PROOF IT. And the Panel couldn't, see the verdict. That's hypocracy.

So to answer your question, yes, part of the counter investigation is to collect as much as possible evidences Vas didn't copy. And funny enough the FEN parsing you mention is one of those things. You used in your document against Vas. Totally wrong after inspection, Dalke the first one to notice. I am confident if you had a look by yourself instead of relying on the work of someone else (Franklin Titus) the FEN parsing issue (indicating Vas copied that) wouldn't had been in your document. But it was and gave a wrong signal.

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: FIDE Rules on ICGA - Rybka controversy

Post by hyatt » Wed May 13, 2015 6:27 pm

Chris Whittington wrote:
So, essentially, your case is that there are "too many" similar evaluation terms in Rybka that come from Fruit? But written differently and with different evaluation weights. Right?

If this were the case, and we were able to substitute the relevent Fruit evaluation weights back into Rybka, then we should have, according to your hypothesis, two very similar programs with a high move correlation. Right? We should have the actual current Fruit-Rybka move correlation number available to compare against the new correlation when both progs use the same weights. Then we can consider the difference. Does the Fruitified evaluation Rybka version show substantial similarity ...?

This would be an interesting experiment .... has anybody done it? It would be definitive, I would have thought. Show me a high correlation, and I'll agree you are correct. If it remains low, will you agree you are wrong?
Your first "right" is not so right. You complained about "abstraction" which we actually had to do anyway. Because we had to remove the board representation from the "mix". If, by "differently" you mean "different code" then yes to a degree. But if by "different" you mean looking at different things to evaluate the same term, then no.

As far as similarity goes, I don't know that anyone has tried to reset all the fruit eval terms to match Rybka, remove what Rybka doesn't have, add what Rybka has extra, and then try to compare. Because the searches are also significantly different. Anything can cause two programs to play differently.

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

Re: FIDE Rules on ICGA - Rybka controversy

Post by BB+ » Wed May 13, 2015 9:56 pm

Rebel wrote:Who was it who (initially) put emails of Vas on a major chess site? [meaning ChessVibes]
Levy asked (in the name of the ICGA) for Rajlich's comment on the matter of Zach's analysis. Perhaps he should have made it more clear that it was for publication (maybe he did in a later email, I don't necessarily trust your website to have the totality of the correspondence -- for instance, your page lacks Rajlich's quoted email involving: all of the Rybka versions are original, in the sense that I always wrote the source code myself (with the standard exceptions like various low-level snippets, magic numbers, etc).). Similarly, Dann Corbit might have made it more clear to Fabien Letouzey (in 2008) that the Strelka matter was also related to Rybka, and not just Fruit, and that he was going to make FL's opinion known on TalkChess. C'est la vie. At any rate, at least personally if I received an email with a specific phrase like: The ICGA would be very interested to see your comments on this, I would reasonably expect the ICGA to take my reply as fair-use (though I could imagine others would feel differently).
Rebel wrote:Who was it who put the whole correspondence on the icga website for everybody to see? By your logic David Levy is not decent.
Email correspondence, particularly as a historical proceedings, is different than clipping whatever parts from people's emails. For instance, I would consider it quite regular for you to put up your emails (as Rajlich's representative) to Levy, and indeed also his responses. A bit strangely however, your website only has his responses. :?: Did Levy just spew out these emails spontaneously?
Rebel wrote:It's still there BTW [ http://icga.wikispaces.com/file/view/le ... thread.txt ]
:shock: This is all you mean??? :?: :?: :?: This is just the responses Rajlich gave (or didn't give) to the investigative Report. The first email there is May 13th. All the emails are technically from Levy, though of course contain Rajlich's words as copied in reply.

At this point (if for no other reason than the sake of argument), I would want to trust your competence concerning the assertion that the ICGA did publish all the Levy-Rajlich emails at one juncture. However, the Wikispaces page says "Uploaded: Jun 16, 2011 by MarkLefler", and I think the wiki records all modifications to files (see revision history). So it seems that if the "whole" correspondence was ever on the wiki, it was removed fairly soon after (within 2 days), and replaced by the current version. At worst, the ICGA (briefly) published the email history of Levy/Rajlich, and then took it down.
Rebel wrote:And It's modified, at least the ICGA had the decency to take out the email addresses but check it out, it's doctered, for instance this email is left out [email of Feb 6 2011]
Given that the (currently listed) email correspondence is that from Levy to Rajlich [with copied replies] starting from May 13th when the Investigation concluded, I do not find it surprising that "the ICGA had the decency" to leave out an email from 3 months previous.
Rebel wrote:Who was it who put the whole correspondence on the icga website for everybody to see? By your logic David Levy is not decent.
If you happen to be correct that indeed the whole correspondence was at one point on the ICGA wiki, then in any event the fault would seem just as likely to be Lefler's as Levy's. Furthermore, if the "June 16, 2011" date [2 days after the deadline] is correct for the current file, any error (intentional or not) was quickly remedied.

But I find your claims that the ICGA published the whole Levy-Rajlich correspondence to be unsubstantiated, and your documentation on this matter to be inaccurate or at least incomplete. So as of yet, I see no reason to conclude that Levy (or Lefler) is not decent.
Rebel wrote:Wel, well, well, are we now going to deny the hard facts written in stone?
I apologise for accepting your "facts" when previously responding regarding the matter, as I should have verified them then, and I think this led to some of the confusion.
Rebel wrote:BTW, if you are interested I can (under NDA) mail you the uncensored document with all the email addresses and Vas' private phone number.
That's all right, if it appeared on the wiki, the history should be there. I don't think it is possible to fudge the WikiSpaces modification history, even if you have a paid account. At this point, given your other claims, I am also not sure I would trust your uncensored document (even under NDA) to have actually appeared on the ICGA wiki. The EC complaint (footnote 20) says "since Aug 27, 2012", but I find no record of any wiki modifications near that day. Note that even deleted files are recorded in the wiki history -- for instance on May 24, 2012, Lefler uploaded a Thinker version that was later deleted (I similarly uploaded it on May 2).

The only marginally relevant thing I could find in the history was:
ICGA wikispaces history wrote: Thursday, April 21 (2011) file levy-rajlich-email.txt uploaded 7:04 am MarkLefler MarkLefler
Thursday, April 21 (2011) file evy-rajlich-email.txt (deleted) uploaded 7:00 am MarkLefler MarkLefler
This is (now) a file that includes nothing more than Levy's April 4 email to Rajlich. Maybe for 4 minutes on Apr 21, it contained other information, I don't know.

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

Re: FIDE Rules on ICGA - Rybka controversy

Post by BB+ » Wed May 13, 2015 10:57 pm

Rebel wrote: In my eyes we had an agreement to have a debate about the AFC test ... in email and in principle meant for publication.
I don't recall any such "agreement" per se. See below.
Rebel wrote:And if memory served me well (Chris may correct me) you quit after the second round without giving a reason.
We had one preliminary email exchange [thus I quit after the first round, not the second], with each side (ostensibly) trying to write the opponent's views. I am pretty sure I gave a reason for quitting. Just give me a few minutes while I search your website to find my email.... :lol:

OK, here we go, intertwined with some emails from/concerning Dalke/Riis, on Feb 23 2012 you "invited [me] into such a debate" with ChrisW regarding AFC. The email was addressed to me and Dalke, and the CC list was Riis and Whittington (by this point, I think Dalke and I had broke off contact in any case, while Riis was more interested in my work on Losing Chess). Approximately one hour also later you sent an email regarding Rybka/Fruit and a statement of Zach's saying: I prefer to end our conversation after reading your answer. I replied: I think I prefer to end our conversations also. Regarding the AFC debate, my words were: I would prefer to have any conversation privately with ChrisW (I am willing to have other interested programmers on CC, but not too much beyond that), and then we could each write a summary (of a few pages) on how we understand the issue, these being made public. But I'm open to other schemes also. I guess you are interpreting this as an "agreement" to have such a debate, when to me I was that I was in principle open to such a discussion, but wanted to know the ground rules.

Indeed, two days later (Feb 25), you wrote to me with Zach in CC. The email was addressed to him, and you wrote that you and I had more or less agreed to have an upcoming debate in email about the [AFC]. There was then some cross-email with EdS/ChrisW/MarkW regarding Dalke, a link that ChrisW liked, ... Anyway, on Feb 27 I sent an email regarding ChrisW's design: Often a good way to start is for participants to each present a short paper of what they believe the position of the other side to be..., saying that I agreed, that I was busy [visa applications] but hoped to have maybe 2 pages on this within a week. On Feb 28, ZachW said he would like to listen in (if nothing else). On March 2nd, EdS announced the webpage was ready for our debate. On March 6th-7th, EdS and I exchanged some emails regarding the CSVN situation. On Mar 11, EdS sent his "idea" of putting Fruit eval in Rybka or vice-versa. On Mar 12, I apologised to ChrisW (no one else included on the email) for being slow with AFC, saying that my LosingChess research had recently undergone two quantum leaps (and the Thinker investigation had been going on the previous 2 weeks). ChrisW responded, saying that he would send his to EdS for simultaneous revelation. On March 19, I sent 4 paragraphs of material to EdS (below). I think I had just started on vacation (and bought an apartment).
Mark Watkins (channeling Chris Whittington) wrote:First, EVAL_COMP. It is subjective, which is not optimal, but it is what it is. However, listing what choices were made, and maybe why, is almost a necessity. Why was mobility split up piece-by-piece? This multiplies the R/F overlap. OTOH, why wasn't Rybka/Fruit mobility considered semantically the same (which would lower it)? Maybe these choices cancel out in the end, but who can tell in the current state of things? The same is true of how the programs were chosen. All it says is that some of them were suggested by Panel members, as having some Fruit elements. What does mean? Almost any engine has *some* Fruit overlap. State explicitly why engines were chosen, and why others were rejected. The strength issue should also be addressed. If you need to add post-Fruit open-source engines that aren't too much like it, then do it.

Next, filtration. There are three factors here: efficiency, external factors, and public domain. But for the first of these, I almost turn on its head. You largely filter out Rybka's use of bitboards, on the grounds that there is an efficiency issue. The same could be true for other points, like how to define backward pawns. This fails to give Rajlich enough credit here. And if some components appear in the same order in both programs, while others do not, the latter can claimed to be some sort of "efficiency" issue. This is a weakness, in that the meta-comparison is statistical, and so what goes in and what stays out always needs accounting. Everything said here can also be transferred to a similar argument about Elo dictating how Rybka was made. Rajlich saw that Fruit's simplistic eval with bug-free search had great potential, and took the ball from there and ran.

External factors. Once you've decided to have a low-cost eval, this tends to affect all the parts therein. Every component will naturally tend to the simplistic, rather than to the complex. If it can't be computed fast, you just ignore it (maybe use a surrogate), or make an approximation. The list of comparators in EVAL_COMP also has interconnections. First, it would be best if the relative importance of each feature had a measure somehow. As it is, all items count the same, which is a rather crude approach. Next, once you choose to use linear mobility on one piece, it's no surprise that you would use it on another. The same is true for other features -- the handling of open and semi-open files can essentially get double-counted if the same thing is done twice. A concluding point is that features can also have interactions in a larger scope. For example, the amount of work that gets done in passed pawns can depend on a number of factors, such as whether/when the search has extensions for them. Looking at the eval-only component is a misnomer.

Finally, public domain filtration. It makes a big difference whether a common Fruit/Rybka element appears in many other places. To make the point, let's look at the data from Don Dailey's similarity detector by Adam Hair. Suppose there are three moves, played by 60-30-10% of the engines. If here A and B match with the 60% move, it is almost irrelevant, and should be filtered. OTOH, if they both play the 10% move, it's significant. The 30% move is borderline. This is kinda like in comparing multiple-choice tests. If two students both get 95 of 100 correct, you look at the 5 wrong answers to judge whether they might have copied, not at the 95 that they got correct. The language in law pertains to "[something] that is, if not standard, then commonplace", and most of the relevant EVAL features in Fruit fit this description. Once these are eliminated, *then* a comparison can be made between it and Rybka.
On March 23, EdS wrote to say that he had forwarded my writing to ChrisW, and that he was busy the next few days. On March 26, EdS sent out an email to me, ChrisW, Zach, and Riis. The email also contained some (irrelevant) derogation against Hyatt for some TalkChess post he had recently made.

Briefly here are ChrisW's notion of my views. (1) That there was no real copy at code or source level, rather theft of recipe. (2) Weights are not copied, but they are however connected. (2b) Connections are indistinguishable from independent development beyond a certain complexity level (This is a hard pill to swallow and he would rather not). (3) Full correspondence of features does not exist, some are missing at each end. (4a) Overall, the correspondences are too great. (4b) Wishes that a more effective and intelligent criticism of EVAL_COMP had been delivered before finalising it. (4c) Knows EVAL_COMP is flawed, but has belief in Rajlich's guilt. The whole thing was about 10 sentences in total (written in terse CW style, rather than my logorrhea).

ChrisW can either post the whole thing, or ask me to do so if desires this but no longer has the email. Let's just say that this is not what I expected from the "conversation", especially the various psychoanalyses. I did not find this to be a reasonable "belie[f] of the position of the other side", but rather something more like a wishful projection (particularly 4b/4c). On Apr 3rd, while in Hong Kong airport, I told EdS I would be busy for the next 2 weeks. On Apr 16th, I completed the swapping of Fruit/Rybka evals, and also sent the email copied below. EdS responded with: I am fine with a switch in the discussion. Let's talk about similarity detector and ponder-hits... (which we did over the next month or so). As far as I can tell, he never opened the AFC debate subject again, until now.
Mark Watkins wrote:Sorry I have taken so long to write. After some thought, I really don't think my taking part in this debate is likely to lead to the desired goals, and so I think I am not going to participate in it. I had come to this conclusion a week and a half ago, but was too sick last week to type this email coherently.

My reason for this conclusion is largely that I don't see any real "resolution" coming about. At best, a few of us decide that we disagree on certain points.

When I was in Bristol two weeks ago, two of my colleagues had mentioned they had seen Rybka/Fruit on various "science geek" websites (one knew that I was involved, while for the other it was not clear). Upon looking at these sites, I realised that the discussion has been too distorted by the ChessBase report.

For instance, in a judicial case, the accuser always gets to present his case first. This is not a random decision -- if the defendant were to go first, he would often talk about extraneous things, and the plaintiff would spend a bunch of time defusing non-issues. And after he finally got to speak, the defendant would *still* get a defense to the claims. This is essentially what has happened here. By ChessBase firstly choosing not to covering the issue in June 2011, and then not even properly giving the accusations (or verdict) when rolling out the 4-part defense of Riis, they have (unwittingly or not) made it essentially impossible to address the major issues in any coherent way.

I don't think agreement on a few AFC issues between minor characters can change this. Rather take part in the AFC debate, I have instead decided to take up a suggestion of Ed. Rajlich's only defense was to cite ponderhit numbers, and Riis mentioned these in his writings also. This would also help to overcome the "subjectivity" question, and indeed move-matching is already noted in ICGA Rule #2.

Ed suggested that one use the Rybka numerology in Fruit (or vice-versa). One reason [mine, not Ed's] for this is that Fruit 2.1 was a development snapshot [no tuning applied], while Rybka was a production output. My recollection is that Fruit21/Rybka10 was about 56% on the Dailey similarity detector. The CSVN limit is 60%, though correspondence from Ed seems to suggest that is essentially the "absolute" bound, and 55% was already "suspicious" [note that RobboLito/Rybka3 is just under 60%].

Including Rybka 2.3.2a and Rybka 1.6 (to show pre-Beta correspondence, if any) will also be done. Except for Rybka 1.6, the results should be reproducible.

I think this will be a superior method of procedure, rather than debate AFC.

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

Re: FIDE Rules on ICGA - Rybka controversy

Post by BB+ » Wed May 13, 2015 11:29 pm

hyatt wrote:I would imagine Mark simply became frustrated when every conversation keeps retreating to the same tired old points,
The iterative tedium was certainly one of Zach's reasons for leaving computer chess in general (and computer chess debates in particular). And indeed, I've tried to point out in this (voluminous) thread that little of what is being said by now is in fact new ground. [Without a trier-of-fact, Internet "discussions" inevitably end up this way]. But personally I find that Schröder is simply wrong about so many factual matters to be quite annoying also (cf. "right to an appeal", Rajlich retracting that Strelka contains Rybka code, now it seems the situation with the Levy/Raljich correspondence, ...). In any event, I think I comprehensively addressed the AFC debate question above.
Chris Whittington wrote:I looked up the bias disbarrment used in the USA
shall disqualify himself in any proceeding in which his impartiality might reasonably be questioned
My guess is that Rajlich/Whittington would just disqualify anyone who (convinced by the evidence) thought Rybka was non-original. :roll: Do you have any record of anyone questioning the impartiality of Levy (or other Board members) prior to the verdict being announced? Other than generic Rybka Forum posts that say the whole thing is a witch-hunt, implying that essentially the entire ICGA was partial? :D Rajlich could, of course, have actually raised the question of Levy's (lack of) impartiality in his defence had he so chosen. I gave some possible reasons for Levy/Rajlich friction earlier in the thread, but I don't remember anyone particularly raised these issues back then. I would be interested in someone from the Feb-Jun period (even on Rybka forum if it is reputable) specifically saying that Levy was unfit, or at least raising reasonable questions toward his impartiality.
Chris Whittington wrote:The language is intemperate, almost violent even.
The brutal verbiage is used concerning clones in general, not specifically about the Rybka situation.
Chris Whittington' wrote:It refers mqny times to Rybka and includes elements of Zach material stating clearly that Rybka=Fruit, splattered albeit with the odd caveat.
Zach does not say Rybka=Fruit, but only Simply put, Rybka's evaluation is virtually identical to Fruit's. Which would leave open the question of how the respective search modules compared. Further, the article also quotes Rajlich thrice that "Rybka is original", and spends more than twice as much space on Rajlich's statements as Zach's (though lots of this is Strelka-related).

If you had been serious about Levy's impartiality, you should have made the complaint both against ICGA and Levy (similar to the Moroccan arbiters case, both against the federation and its president). Raising it now might still be possible, but could fall under ne bis in idem.
Chris Whittington wrote:The phone call was obviously for initial discussion purposes, to investigate possible solutions/whatever. It is unlikely Vas was imagining evidence and counter evidence arguing over the phone. Use your head, man.
I don't think it was "obviously for initial discussion purposes" in its delimitation, for instance to quote Rajlich: I can also go through all of this stuff with you by telephone, that might be more efficient.
Chris Whittington wrote:The best you can do is contact Vas representatives to determine if there is any way round this little problem that you have created for yourselves.
I'm not quite sure what "little problem" the ICGA actually has? :?: Sounds more like a shake-down attempt from racketeers than anything else. :lol:

Post Reply