What the computer chess community needs to decide

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

Moderators: Harvey Williamson, bob, hgm

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
Roger Brown
Posts: 782
Joined: Wed Mar 08, 2006 8:22 pm

Re: What the computer chess community needs to decide

Post by Roger Brown » Wed Feb 09, 2011 8:19 pm

Don wrote:
SNIP

So just starting with the robbo base, changing the name and author does NOT make this a program worthy of new moniker. Even if you do substantial work on it, you cannot easily shed it's original roots. In the same way I cannot enter Komodo 1.3 in a tournament and also some ancient version of Doch claiming it is completely different.

Hello Don,

Doesn't this argument invalidate the Rybka 4 is different from Rybka 3 is different from Rybka beta argument?

Meaning that if Rybka 1 was poisoned then mere version distance does not allow Rybka 4 to escape scrutiny.


SNIP
Don wrote: Let's say I want to branch off from the robbo sources. There is no legal or ethical reason I cannot do so. However, I cannot and should not represent this as some kind of separate family of programs. When any tournament or competition is held, the BEST of a given family can be chosen to represent the entire family, to be decided by the original author. And it's far better when doing this to make it all transparent. Make the sources available and don't hide anything, just be up-front and forthcoming.
So you would have no problem with this best of engine being represented at various tournaments? That seems difficult to accept if the origin of the engine was unethical. Why would you be alright with that?

Later.

paulo
Posts: 53
Joined: Wed Dec 15, 2010 6:31 pm

Re: What the computer chess community needs to decide

Post by paulo » Wed Feb 09, 2011 8:25 pm

Don wrote:
paulo wrote:
SzG wrote:
paulo wrote:Today only a complete asshole would start coding a new engine from scratch, i.e., ignoring all the (best) available ideias and resources.
The two are not the same. You can start from scratch using all the available ideas together with yours. And you can start from a complete code and put in your ideas.
Nope. It's exactly the same thing as long as you agree the existing code you are basing is the best. Furthermore I strongly believe any experienced software developer agrees with this.
You are not thinking about this correctly. Yes, experienced software developers build on the work and libraries of others. That is not what I am discouraging.

Take your program to a chess tournament. Tell the organizers that you want to enter version 1.5 of your program, but that you also would like to enter version 1.4, 1,3, 1.2 and 1.1 of your program in addition. You will NOT be allowed to do this, because it's wrong on so many levels.

Instead, you will be asked to pick a representative program, presumably the latest and greatest version.

So just starting with the robbo base, changing the name and author does NOT make this a program worthy of new moniker. Even if you do substantial work on it, you cannot easily shed it's original roots. In the same way I cannot enter Komodo 1.3 in a tournament and also some ancient version of Doch claiming it is completely different.

The same goes for the rating lists. When SF 2.0 came out, they stopped testing 1.9 because in their wisdom they believe that only a single program should be represent a family of programs.

I know that what you said seems reasonable to you, but it was not well thought out. Here is the way this should be done:

Let's say I want to branch off from the robbo sources. There is no legal or ethical reason I cannot do so. However, I cannot and should not represent this as some kind of separate family of programs. When any tournament or competition is held, the BEST of a given family can be chosen to represent the entire family, to be decided by the original author. And it's far better when doing this to make it all transparent. Make the sources available and don't hide anything, just be up-front and forthcoming.

If you don't like that, then write your own program from scratch and make it a true original and figure out how to do evaluation for yourself and give your program a real personality and a playing style of it's own. Then you can compete as a distinct entity.

You should keep in mind too that a tournament is in fact a real competition between program authors. Every author there wants his program to win. When I go to a tournament with Rybka in it, I know that I will be competing in some sense against Vas. Is it really right that I have to compete against him several times in the same tournament facing a "pseudo author" opponent who probably knows only a fraction of what I know about computer chess?

The presence of really strong programs in tournaments adds to the prestige and dignity of the tournament, but having multiple versions of the same program tears it down by turning it into a "single author" competition. It becomes, who can improve Ippolitto the most? Let's have a contest to see!

But more importantly, you have to ask the question, "is it really good for computer chess for any author to be able to create yet another 'brand new' chess program in 5 minutes?"
Ok, I think I can understand your point.
Thanks for trying to explain and congratulations for your Komodo.

BR
Paulo

beram
Posts: 1187
Joined: Wed Jan 06, 2010 2:11 pm

Re: What the computer chess community needs to decide

Post by beram » Wed Feb 09, 2011 8:27 pm

Don wrote: ....So let's start with the assumption that we have identified a program that is not a source code clone of something original, but is heavily based on it. Let's also assume there are no legal issues. If there are, that of course is a separate matter with its own considerations.

Is this acceptable? Should we as the computer chess community endorse this behavior, or discourage it?
...
When I read you well, this quote above is the quintessence.
My reply: most programmers already say that they have used ideas of different open source programs. So IMO than only you should draw an impossible arbitrary line between heavily an non heavily based on this or that.
When Robert Houdart writes he "has based" his wonderful engine Houdini on a lot of ideas of Ippolit, Stockfish and Crafty (in that order) I have not any problem at all with it

kind regards Bram

Richard Allbert
Posts: 775
Joined: Wed Jul 19, 2006 7:58 am

Re: What the computer chess community needs to decide

Post by Richard Allbert » Wed Feb 09, 2011 8:28 pm

:D

Ron Langeveld
Posts: 138
Joined: Tue Jan 05, 2010 7:02 pm

Re: What the computer chess community needs to decide

Post by Ron Langeveld » Wed Feb 09, 2011 8:29 pm

+1

Damir
Posts: 2429
Joined: Mon Feb 11, 2008 2:53 pm
Location: Denmark
Full name: Damir Desevac

Re: What the computer chess community needs to decide

Post by Damir » Wed Feb 09, 2011 8:36 pm

Roger Brown wrote:
Don wrote:
SNIP

So just starting with the robbo base, changing the name and author does NOT make this a program worthy of new moniker. Even if you do substantial work on it, you cannot easily shed it's original roots. In the same way I cannot enter Komodo 1.3 in a tournament and also some ancient version of Doch claiming it is completely different.

Hello Don,

Doesn't this argument invalidate the Rybka 4 is different from Rybka 3 is different from Rybka beta argument?

Meaning that if Rybka 1 was poisoned then mere version distance does not allow Rybka 4 to escape scrutiny.


SNIP
Don wrote: Let's say I want to branch off from the robbo sources. There is no legal or ethical reason I cannot do so. However, I cannot and should not represent this as some kind of separate family of programs. When any tournament or competition is held, the BEST of a given family can be chosen to represent the entire family, to be decided by the original author. And it's far better when doing this to make it all transparent. Make the sources available and don't hide anything, just be up-front and forthcoming.
So you would have no problem with this best of engine being represented at various tournaments? That seems difficult to accept if the origin of the engine was unethical. Why would you be alright with that?

Later.
Hi Roger,

Good question. I supposed it would be easier for authors to copy and

paste what they find in the strongest source available to make their own

programs stronger at the expense of Ippolit .

There is always a price to be paid, and to let strongest Ippolite engine

participate in the various tournaments by revealing its source is nothing

but an extortion of the worst kind.

Later

User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 2:27 pm

Re: What the computer chess community needs to decide

Post by Don » Wed Feb 09, 2011 8:45 pm

Roger Brown wrote:
Don wrote:
SNIP

So just starting with the robbo base, changing the name and author does NOT make this a program worthy of new moniker. Even if you do substantial work on it, you cannot easily shed it's original roots. In the same way I cannot enter Komodo 1.3 in a tournament and also some ancient version of Doch claiming it is completely different.

Hello Don,

Doesn't this argument invalidate the Rybka 4 is different from Rybka 3 is different from Rybka beta argument?
Yes, Rybka 4 is just a different version of Rybka (or Fruit) and should not be allowed to compete unless the Fruit author gives permission to let Rybka represent it.

Meaning that if Rybka 1 was poisoned then mere version distance does not allow Rybka 4 to escape scrutiny.
In theory Vas could write an entirely new program and in fact I think he has. I can imagine that Vas at some point decided that he needed to diverge from Fruit as quickly as possible and that is what he probably did. He probably blundered by leaving some small bits unchanged, such as the UCI interface parts because presumably that is still identifiable.

However, if Rybka 1 is really a version of Fruit, then it's pretty difficult to accept Rybka 4 as not being so too. So whether it's an acceptable rewrite or not does not matter because he ruined his credibility.

I have in fact written chess programs that had very little in common and shared almost no code, and I don't think anyone would be able to detect similarities unless it was coding style. Nevertheless, I would not be allowed to play both versions, even if I considered them completely different.


SNIP
Don wrote: Let's say I want to branch off from the robbo sources. There is no legal or ethical reason I cannot do so. However, I cannot and should not represent this as some kind of separate family of programs. When any tournament or competition is held, the BEST of a given family can be chosen to represent the entire family, to be decided by the original author. And it's far better when doing this to make it all transparent. Make the sources available and don't hide anything, just be up-front and forthcoming.
So you would have no problem with this best of engine being represented at various tournaments? That seems difficult to accept if the origin of the engine was unethical. Why would you be alright with that?

Later.

User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 2:27 pm

Re: What the computer chess community needs to decide

Post by Don » Wed Feb 09, 2011 8:51 pm

beram wrote:
Don wrote: ....So let's start with the assumption that we have identified a program that is not a source code clone of something original, but is heavily based on it. Let's also assume there are no legal issues. If there are, that of course is a separate matter with its own considerations.

Is this acceptable? Should we as the computer chess community endorse this behavior, or discourage it?
...
When I read you well, this quote above is the quintessence.
My reply: most programmers already say that they have used ideas of different open source programs. So IMO than only you should draw an impossible arbitrary line between heavily an non heavily based on this or that.
When Robert Houdart writes he "has based" his wonderful engine Houdini on a lot of ideas of Ippolit, Stockfish and Crafty (in that order) I have not any problem at all with it

kind regards Bram
I think there HAS to be an arbitrary line and a judgement has to be made. It's like what baseball umpires have to do, make a call and it cannot always be a perfect call with a perfect line.

It has to be arbitrary because where do you stop? If I read on this group that it's better to do 1 ply of checks in quies and that some other program does this, does it mean I am stealing an idea if I do that to?

On the other extreme, if we don't draw an arbitrary line why can't I just take IvanHoe and put "Komodo" and "Don Dailey" in the id line of the program and say it's mine? How many changes can I make before it's no longer Ivanhoe and it's mine? And if I do so, I am disrespecting the author of Ivanhoe (although I don't respect him anyway, the principle is the same) unless I fully reveal what I have done.

Norbert

Re: What the computer chess community needs to decide

Post by Norbert » Wed Feb 09, 2011 9:05 pm

+3

benstoker
Posts: 342
Joined: Tue Jan 19, 2010 1:05 am

Re: What the computer chess community needs to decide

Post by benstoker » Wed Feb 09, 2011 9:19 pm

bob wrote:
Don wrote:There are several issue concerning various programs that have raised a huge amount of controversy and have generated a lot of different viewpoints.

I would like to try to sort our the issues and attempt to bring a little clarity to the matter, and not in a ad-hoc manner but by just trying to provide a little direction to this dicussion with your help. I'm going to try to refrain from subjective comments on this particular post although I don't believe it's possible for anyone to be 100% objective about anything.

I think there are 2 major issues that we should consider separately, even though there may be some degree of overlap. One of them is purely legal (what you can legally get away with) and the other is ethical.

The legal issue is separate because it defines what you can get away with. I'm not going to focus on that here, because presumably there is little we can do about that, unless we are directly involved. For example I don't think we need to have a huge discussion about whether Vas violated GPL, and our opinion won't change that anyway. There is strong evidence that he did, therefore I'm not sure discussing it will change that.

From the eithical point of view, I think WE need to decide what is acceptable and what is not. I say WE, as fellow members of the computer chess community. Let's use Ipolitto as a talking point.

I believe there are 3 basic points of view on this that pretty much define how people feel about it.

1. Ippolito is a completely orginal program.

2. Ippolito is heavily based on reverse engineering Rybka 3 and this is wrong.

3. Ippolito is heavily based on reverse enginnering Rybka 3 and so what?

Although I think these represent the major points of view, they are mixed in various degrees. For example you might believe that Ippolito is mostly orginal but with some ideas taken from Rybka 3. And the degree of your belief in the wrongness of this will vary from person to person.

These 3 points of view can be broken down into 2 issues, whether Ippolito is orginal or not. I'm not going to address this here because I want to focus on what I think is the most important issue, the ethics of it.

So let's start with the assumption that we have identified a program that is not a source code clone of something original, but is heavily based on it. Let's also assume there are no legal issues. If there are, that of course is a separate matter with its own considerations.

Is this acceptable? Should we as the computer chess community endorse this behavior, or discourage it?

I think THAT is what we need to decide. We all have our various viewpoints on this which I think should be respected, but I think this is really at the heart of the matter and what we SHOULD be talking about but rarely do.
My take on ip* and _all_ of its cousins.

This thing is clearly reverse-engineered as a starting point. The code is unlike anything any human would ever produce. Even someone that has been doing optimization work for years would simply not write code that looks like that. IMHO, there is absolutely no doubt but that it started from reverse-engineering.

The question you appear to be asking is "if that is true, but it has been modified extensively, can it play in tournaments?" I am of the opinion that "once a derivative, always a derivative." If the person was too lazy to start from scratch the first time around, he has not started from scratch today either. And there will remain large chunks of copied (reverse-engineered) code.

Before anyone says my view has changed, it has not. I still believe that the discussions about these derivative programs should continue. They have not been proven guilty beyond any doubt. But they should not be allowed into tournaments, because there is significant evidence they are derivatives, and that can not be disproved beyond any reasonable doubt either.

So, IMHO, discuss 'em all you want. But don't allow them in tournaments as long as the question is open. Only problem here is Vas, who has refused to clear this up. I have directly dealt with previous crafty derivatives (actually most of those were pure clones) since it was my program. Any program suspected of being a clone or derivative of another program should be inspected. For open source programs, anyone can do this. For closed source programs, only the author can address the issue.

Sadly, we have nothing of significance with respect to ip*/robo*/etc...
On the chessprogramming wiki there are hundreds of chess programming techniques. I now realize I don't understand one bit how and when some idea like SEE or magic bitboards, [fill in the blank], that is introduced by one programmer can then be ethically used by subsequent programmers. Apparently, everybody can use bitboards or SEE or negascout in their engines without a problem.

Was there a day when SEE could not be used ethically by programmers other than its inventer? When did it morph into the public domain?

Am I confusing ideas versus code?

How many different ways can you code in C or C++ bitboards, for instance? Crafty uses bitboards. Must the bitboards code in my engine be substantially different even if it does the same thing?

And then you hear people say 'reverse engineering is legal' . . .

Is it unethical if my engine uses the same material piece values as Rybka? The code would be identical. QUEEN = 9. Or maybe I could obfuscate with SDFEE_342RS = (2500 - 2491).

Post Reply