David Levy asked for opinions

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

Steve B
Posts: 3697
Joined: Tue Jul 31, 2007 4:26 pm

Re: David Levy asked for opinions

Post by Steve B »

Eelco de Groot wrote:
Hello Steve, I must object: David Levy just discovered the Internet, mastered e-mail and has learned to write blogs. Now you want him to preside on tribunals, to inspect the sources of all the runners up in the last WCCCs, do you trust him to determine if they were fully original. Just to be fair. I am willing to believe HIARCS is fully original and that the traces of the BASIC program that Mark Uniacke started out with are still in there. I am willing to say the same about Rebel from Ed Schröder -and by the way I don't think Rebel Ed would submit his sources ever again, and would Mark Uniacke?- although not much of the BASIC Rebel would still be recognizable, because Ed rewrote everything in assembler. That already makes things infinitely more complicated. How many programmers can read assembler these days? Not even Yuri Osipov could dissassemble an assembly program. He said so himself :)

Please it's not my call at all, but one would prefer if there were not too many tribunals installed...

Regards, Eelco
Well if we trust the ICGA to hold a WCCC event and to award the title of ICGA World Champion..and if David Levy is the President of the ICGA and has impaneled a tribunal to review the Rybka question....
then i believe they have the right to strip anyone of their title for which they have complete jurisdiction over

its not rocket Science Eelco
and its not personal
its just the right thing to do

as i see it...the really injured parties here are not you or me..we are just day to day engine consumers whose cash outlay for Rybka (whom we thought was a bona fide World Champion when we purchased it )amounts to no more then the cost of a good lunch in NYC
its the other engine authors who competed in these events with original programs and who perhaps were denied the title of ICGA World Champion and all of the financial reward that title brings
some of these good men rely on their engines to put daily bread on their table and to feed their families and purchase toys for their children
Steve
User avatar
Mike S.
Posts: 1480
Joined: Thu Mar 09, 2006 5:33 am

Re: David Levy asked for opinions

Post by Mike S. »

If reverse engineering is illegal, then the so called peers have no basis whatsoever to judge upon, significantly.
Regards, Mike
User avatar
Rolf
Posts: 6081
Joined: Fri Mar 10, 2006 11:14 pm
Location: Munster, Nuremberg, Princeton

Re: David Levy asked for opinions

Post by Rolf »

bob wrote:
Rolf wrote:The question remained unanswered if in computer science the compairing of two code snippets would undoubtedly allow to assume identity. How else could a code be hypostated as the true original, that was indirectly received by working on the binaries? This is a basic question and on my questions in real life I got negative responses. Here I got none, but I must agree that I might have missed the relevant debates on CCC.
One can take a binary and work backward to C code. It would be difficult to take Rybka's binary and work backward without ever seeing the source, and take that binary back to identical source, obviously. Why? Because there are an infinite number of ways to express the same algorithm. An infinite variety of variable names. Lots of ways to implement a loop. Etc. Yet they all look the same in assembly language.
R1beta binary .....??....... Fruit Open Source

At first I thought that the above from you meant that I were correct with the assumption that you cannot find the source code of a binary through compairing the other (here the Fruit Open Source) with the binary. Because you get infinite solutions (to make it short for the argument). For me it's even more difficult to then get to the conclusion, yes, the source behind my binary (of R1beta) is exactly the same source as in Fruit. How can you do this? Please remain in our terms for a moment so that I have a chance to get this. Second question as altenative, -->

it was always argued that Vas had said that Strelka was his code, of course not of R1beta, no? But even if he meant it for R1beta. My question is, even if he claimed the code for his code, did that really mean that the typical very personal programming tricks were the same in Strelka and R1beta and in Strelka and Fruit? How could the tricks be the same in Fruit and R1beta IF R1beta used a completely different language? (with bitboards?).

Please dont think for a moment that I want to play expert state. Nothing at all. I'm trying to understand a bit better how you could succeed in what you allegedly have proven or Zach specifically and still Vas claims that the alleged R1beta "code" is imagination. And this goes to you and also Keith, Vas is claiming imagination and you two or maybe all others in CCC have understood that the found code is in truth the original R1beta code ??

Please give me a chance to understand this a bit better. only one try. And thanks in advance. I am pretty certain that besides the many true experts we have also reders here who sure have more understanding than me but still are no experts yet.
-Popper and Lakatos are good but I'm stuck on Leibowitz
Frank Quisinsky
Posts: 6808
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: David Levy asked for opinions

Post by Frank Quisinsky »

unclear!
I await a better reaction!

In my opinion should a program, based on a GPL engine, not get an official WCCC title.

If Vas can't give a a clear proof that Rybka 1.0 Beta isn't based on Fruit, sorry but all won title should be cancelt. The programmer of Rybka has time enough for a clear statement. In my opinion more time isn't necessary!

Time to set an important example for the future of computer chess from "our" computer chess organisation ICGA. Furthermore, all titles Rybka won should go to Fabien as a second important and in this case "symbolic" example!

I wrote this last months!
For upcomming events sources from all participant engines should be check before the event started. I know not easy to organice such things but in a strong community such problems should be solved without big discusses again!

End of discuss!
A prompt action without more words is the once logicial discision!

End of work, finish, let's call it the day!
Tom Barrister
Posts: 227
Joined: Tue Oct 05, 2010 5:29 pm

Re: David Levy asked for opinions

Post by Tom Barrister »

Mr. Levy's proposal is going to face several major hurdles as far as where the line is drawn. Pardon me if this rambles a bit, repeats itself in places, or otherwise runs longer than it needs to.

1) What is the definition of cloned/stolen/derived/etc. code? Does it need to be verbatim? The same basic thing (i.e. Fruit rewritten for bitboards)? Generally the same?

2) How much "stolen code" constitutes a punishable offense? If, for example, a programmer took a shortcut and incorporated 12 lines of GPL-protected code, is it okay? How about 40 lines? 100 lines? 40%?

3) Are you going to punish the person/company/team for all of its output, or will punishment be confined to the engines that were proven to be in violation? For example, assume that Rybka 1.0 was Fruit. Assume Rybka 2.x was determined to be similar enough to Fruit to meet disqualification. Now assume that Rybka 3.x was determined to be completely rewritten from scratch, and it has nothing substantial to do with Fruit or any other GPL or private source. Do you strip Mr. Rajlich of all of his titles, because he cheated? Or do you just strip those won by Rybka 2 and earlier? Is the cheater banned in the future, even if he/she produces a totally "clean" engine hereafter?

Then there's the problem of fairness to all. If Mr. Rajlich is accused and has to produce source to the tribunal, shouldn't everybody whose engine is closed-source (commercial or private) also have to produce their source. Who's to say that the authors of commercial software such as Naum, Shredder, Fritz, Hiarcs, etc., as well as those who have private engines haven't also stolen code from GPL-protected source or from decompiled commercial engines? How many helped themselves to the Robbolito/Ippolit code, which is assumed to be Rybka?

Then there's the problem of where the line is drawn as to what needs to be revealed. If we're going to require Mr. Rajlich to reveal Rybka 1.0, why not all the other versions, as well? Since it's not fair to single out Mr. Rajlich, we need to line up all the other authors of closed-source engines and require them to all reveal the source of every version that they produced, as well. What happens if somebody refuses to reveal their source (as almost all of them will).

When we have all of the countless versions available, the next step is to wade through all of the code for each and decide what's in violation of what. Is this "snippet" a violation of GPL? Is it a violation of somebody's private source code? Who owns what? Who's going to do all of the work?

In short, the tribunal will first have to determine:

1) What is considered a violation.

2) How severe the punishment is.

3) Who has to participate, and what the penalty is for non-participation.

4) Who's going to do all of the necessary work.

Then there's another problem. What about authors who may have used what they thought was open source code but which turned out to actually be "pirated" from somebody else. Even though they may have acted in good faith, are they also guilty of being in violation?

There's no way to cut to the chase here. If somebody is required to reveal closed-source, they're going to demand that everybody else needs to, as well. If Mr. Rajlich has all titles stripped and is banned from future competition, and it turns out that Rybka 3.x and 4.x are "clean", then there will be complaints about punishment being too severe. Then there''s the dodging around that will happen to punished offenders. They'll assign their software to beards, and "clean" versions will come out under new "management", and possibly under new engine-names, demanding to be included....while the original author could still actually be doing the writing.

It's a mess, because there's no way you're going to get one author to reveal the source to his commercial and/or private engine, without that author demanding that everybody else needs to do the same thing; there's no way you're going to get a dozen authors to all agree to reveal the source to each of their versions; and if that's managed, there's no way you're going to find enough people to wade through those hundreds of versions, examine the source, and determine what's a violation and what isn't.

It wouldn't surprise me if, assuming you could get the source to every commercial engine in existence, that every last one of them contained at least some source code that was in violation of the GPL or taken from somebody else without permission. Nor would it surprise me if some of them were actually "clean".

The point is that it's too unwieldy, in my opinion, to do as Mr. Levy suggests, while being fair to everybody.

That said, it would be a great gesture if Mr. Rajlich voluntarily revealed the source to Rybka 1.0 so that he could prove that it wasn't taken directly/indirectly from Fruit. I'm not holding my breath waiting for that to happen.
This production is being brought to you by Rybka: "The engine made from scratch.™"
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: David Levy asked for opinions

Post by bob »

Steve B wrote:
bob wrote:
David contacted me about the issue and about the tribunal idea. The goal is not to provide court cases, but to decide whether a program should be allowed to compete in CC events...
hopefully also under consideration by the ICGA tribunal will be past WCCC events that Rybka participated in and won
the ICGA does have jurisdiction over its own events
it seems to me that if it is decided that Rybka violated the GPL and is Derived from Fruit and therefore ineligible to compete in future events..then it follows that Rybka should be stripped of the title of World Champion in every WCCC event it competed in and won..and second place finishers in those years need to be awarded the title
a decision by the ICGA that only deals with future events and at the same time leaves past WCCC titles to remain as they are now.. will not be a fair result
IMHO Regards
Steve[/quote

That could possibly happen, although I am not sure it is particularly significant. The benefit for winning a WCCC occurs in the following year when the advertising "buzz" is strong. 3-4-5 years after the fact, it won't mean a thing to most folks. Very much as sometimes happens in NCAA football where wins are either vacated or changed to a loss depending on the punishment... But the championship has already been enjoyed for several years, influenced recruiting for several years, influenced donations for several years, etc. All of that can't be undone...
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: David Levy asked for opinions

Post by bob »

Rolf wrote:
bob wrote:
Rolf wrote:The question remained unanswered if in computer science the compairing of two code snippets would undoubtedly allow to assume identity. How else could a code be hypostated as the true original, that was indirectly received by working on the binaries? This is a basic question and on my questions in real life I got negative responses. Here I got none, but I must agree that I might have missed the relevant debates on CCC.
One can take a binary and work backward to C code. It would be difficult to take Rybka's binary and work backward without ever seeing the source, and take that binary back to identical source, obviously. Why? Because there are an infinite number of ways to express the same algorithm. An infinite variety of variable names. Lots of ways to implement a loop. Etc. Yet they all look the same in assembly language.
R1beta binary .....??....... Fruit Open Source

At first I thought that the above from you meant that I were correct with the assumption that you cannot find the source code of a binary through compairing the other (here the Fruit Open Source) with the binary. Because you get infinite solutions (to make it short for the argument). For me it's even more difficult to then get to the conclusion, yes, the source behind my binary (of R1beta) is exactly the same source as in Fruit. How can you do this? Please remain in our terms for a moment so that I have a chance to get this. Second question as altenative, -->

it was always argued that Vas had said that Strelka was his code, of course not of R1beta, no? But even if he meant it for R1beta. My question is, even if he claimed the code for his code, did that really mean that the typical very personal programming tricks were the same in Strelka and R1beta and in Strelka and Fruit? How could the tricks be the same in Fruit and R1beta IF R1beta used a completely different language? (with bitboards?).

Please dont think for a moment that I want to play expert state. Nothing at all. I'm trying to understand a bit better how you could succeed in what you allegedly have proven or Zach specifically and still Vas claims that the alleged R1beta "code" is imagination. And this goes to you and also Keith, Vas is claiming imagination and you two or maybe all others in CCC have understood that the found code is in truth the original R1beta code ??

Please give me a chance to understand this a bit better. only one try. And thanks in advance. I am pretty certain that besides the many true experts we have also reders here who sure have more understanding than me but still are no experts yet.
All I am going to say is that when we compare a binary to a source, we are comparing _semantics_, not _syntax_. That's all there is too it. I can look at the source to see exactly what it does and how, and can look at the binary to see the same.

You seem to believe that just because one could take a binary procedure, and a source procedure, and when you disassemble and de-compile the binary, you can get an arbitrary number of syntactical implementations of that binary, that the process is unfair.

That's wrong. If I can take the binary, disassemble it, then decompile by hand to produce the same C source as we are looking at, with no instructions left over, then those two pieces of code are semantically equivalent. That does not happen by chance, it happens via plagiarism.

Somehow that key point is missing. Yes you could turn that binary into lots of other implementations. But that's not the goal. The goal is to determine if the binary can be traced back to the source that was suspected of being copied.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: David Levy asked for opinions

Post by bob »

Tom Barrister wrote:Mr. Levy's proposal is going to face several major hurdles as far as where the line is drawn. Pardon me if this rambles a bit, repeats itself in places, or otherwise runs longer than it needs to.

1) What is the definition of cloned/stolen/derived/etc. code? Does it need to be verbatim? The same basic thing (i.e. Fruit rewritten for bitboards)? Generally the same?
This has to be the starting point. I can see two issues. (1) was something copied, and not cited? How much is too much? (2) was something copied and cited properly. How much is too much? Two different questions, two different answers. And both will take some thought to quantify.


2) How much "stolen code" constitutes a punishable offense? If, for example, a programmer took a shortcut and incorporated 12 lines of GPL-protected code, is it okay? How about 40 lines? 100 lines? 40%?

3) Are you going to punish the person/company/team for all of its output, or will punishment be confined to the engines that were proven to be in violation? For example, assume that Rybka 1.0 was Fruit. Assume Rybka 2.x was determined to be similar enough to Fruit to meet disqualification. Now assume that Rybka 3.x was determined to be completely rewritten from scratch, and it has nothing substantial to do with Fruit or any other GPL or private source. Do you strip Mr. Rajlich of all of his titles, because he cheated? Or do you just strip those won by Rybka 2 and earlier? Is the cheater banned in the future, even if he/she produces a totally "clean" engine hereafter?
Again, good questions. with lots of precedents that are contradictory. I have seen people banned for life from sporting competitions, or banned for a year, or just banned for an event...


Then there's the problem of fairness to all. If Mr. Rajlich is accused and has to produce source to the tribunal, shouldn't everybody whose engine is closed-source (commercial or private) also have to produce their source. Who's to say that the authors of commercial software such as Naum, Shredder, Fritz, Hiarcs, etc., as well as those who have private engines haven't also stolen code from GPL-protected source or from decompiled commercial engines? How many helped themselves to the Robbolito/Ippolit code, which is assumed to be Rybka?
A whole new can of worms, but one that will, of necessity, have to be opened at some point. And opening that can of worms creates a really large "project" to compare all sources. Of course at present it is even harder having to resort to decompilation.


Then there's the problem of where the line is drawn as to what needs to be revealed. If we're going to require Mr. Rajlich to reveal Rybka 1.0, why not all the other versions, as well? Since it's not fair to single out Mr. Rajlich, we need to line up all the other authors of closed-source engines and require them to all reveal the source of every version that they produced, as well. What happens if somebody refuses to reveal their source (as almost all of them will).

When we have all of the countless versions available, the next step is to wade through all of the code for each and decide what's in violation of what. Is this "snippet" a violation of GPL? Is it a violation of somebody's private source code? Who owns what? Who's going to do all of the work?

In short, the tribunal will first have to determine:

1) What is considered a violation.

2) How severe the punishment is.

3) Who has to participate, and what the penalty is for non-participation.

4) Who's going to do all of the necessary work.

Then there's another problem. What about authors who may have used what they thought was open source code but which turned out to actually be "pirated" from somebody else. Even though they may have acted in good faith, are they also guilty of being in violation?
There is legal precedent there. One necessary element of a criminal act is "intent". If someone sells you something you have no reason to suspect as stolen, and you are caught, the property will be reclaimed and you are stuck with only the recourse of going after the person that sold it to you. If a reasonable person would suspect it were stolen, such as (say) a 50" LED TV sold out of the back of a truck for $200 USD, then you could be prosecuted for receiving stolen property.

Clearly, with current rules, this is not an issue. Houdini as an example. It certainly comes from robo* and is instantly disqualified from any ICGA event. Robo* is suspected to have come from Rybka, and at the moment, would not be allowed to participate either. Now we are back to the fruit/rybka issue, which is yet to be decided.


There's no way to cut to the chase here. If somebody is required to reveal closed-source, they're going to demand that everybody else needs to, as well. If Mr. Rajlich has all titles stripped and is banned from future competition, and it turns out that Rybka 3.x and 4.x are "clean", then there will be complaints about punishment being too severe. Then there''s the dodging around that will happen to punished offenders. They'll assign their software to beards, and "clean" versions will come out under new "management", and possibly under new engine-names, demanding to be included....while the original author could still actually be doing the writing.

It's a mess, because there's no way you're going to get one author to reveal the source to his commercial and/or private engine, without that author demanding that everybody else needs to do the same thing; there's no way you're going to get a dozen authors to all agree to reveal the source to each of their versions; and if that's managed, there's no way you're going to find enough people to wade through those hundreds of versions, examine the source, and determine what's a violation and what isn't.

It wouldn't surprise me if, assuming you could get the source to every commercial engine in existence, that every last one of them contained at least some source code that was in violation of the GPL or taken from somebody else without permission. Nor would it surprise me if some of them were actually "clean".

The point is that it's too unwieldy, in my opinion, to do as Mr. Levy suggests, while being fair to everybody.

That said, it would be a great gesture if Mr. Rajlich voluntarily revealed the source to Rybka 1.0 so that he could prove that it wasn't taken directly/indirectly from Fruit. I'm not holding my breath waiting for that to happen.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: David Levy asked for opinions

Post by bob »

Frank Quisinsky wrote:unclear!
I await a better reaction!

In my opinion should a program, based on a GPL engine, not get an official WCCC title.

If Vas can't give a a clear proof that Rybka 1.0 Beta isn't based on Fruit, sorry but all won title should be cancelt. The programmer of Rybka has time enough for a clear statement. In my opinion more time isn't necessary!

Time to set an important example for the future of computer chess from "our" computer chess organisation ICGA. Furthermore, all titles Rybka won should go to Fabien as a second important and in this case "symbolic" example!

I wrote this last months!
For upcomming events sources from all participant engines should be check before the event started. I know not easy to organice such things but in a strong community such problems should be solved without big discusses again!

End of discuss!
A prompt action without more words is the once logicial discision!

End of work, finish, let's call it the day![/quote

If it were only that simple. I am reminded of Tom Hanks in the Movie "Apollo 13" where he was pointing out that there was no big rush to get the re-entry plan done. he said something like "we are only on step 13 out of 500" or something to that effect. Here we are in the same boat. We first have to figure out what is acceptable to copy and what is not. I would assume some things are going to be OK, else we already have problems with things like egtb.cpp, the gaviota endgame code, various bitboard attack generators (normal, rotated, magic, etc) and such. Once we decide what can be copied and what can not, then we have to figure out how to determine what was copied. Do we demand source? decompile? Etc. If we are given source, how do we validate that the source provided matches the executable that played in an event? If we don't demand source, the decompile step is a big one. Finally we get to the point of what to do when someone is caught. Clearly they can't compete once they are caught. But what if they go back and write a legit engine? Are they barred for life? For a fixed period of time? Just for the event in question? What if the event is over. What happens then? Is the title vacated? Is it awarded to #2? Does that really help anything?

This is a _really_ complicated issue with no simple solution that I can see...
User avatar
slobo
Posts: 2331
Joined: Mon Apr 09, 2007 5:36 pm

Re: David Levy asked for opinions

Post by slobo »

Frank Quisinsky wrote:unclear!
I await a better reaction!

In my opinion should a program, based on a GPL engine, not get an official WCCC title.

If Vas can't give a a clear proof that Rybka 1.0 Beta isn't based on Fruit, sorry but all won title should be cancelt. The programmer of Rybka has time enough for a clear statement. In my opinion more time isn't necessary!

Time to set an important example for the future of computer chess from "our" computer chess organisation ICGA. Furthermore, all titles Rybka won should go to Fabien as a second important and in this case "symbolic" example!
Hi Frank,

Rybka is not a Fruit´s clone, it is a Fruit´s derivative engine, so that you cannot nullify Vasic´s contribution. As I see it: all titles Vasic won should be shared with Fabien.
"Well, I´m just a soul whose intentions are good,
Oh Lord, please don´t let me be misunderstood."