What the computer chess community needs to decide

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

Moderators: hgm, Dann Corbit, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
Post Reply
User avatar
slobo
Posts: 2331
Joined: Mon Apr 09, 2007 3:36 pm

Re: What the computer chess community needs to decide

Post by slobo » Wed Feb 09, 2011 9:38 pm

benstoker wrote:
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).
I don't think you are allowed to obfuscate thinks within your programs without a written permission given by Vas.
:lol: :lol: :lol:
"Well, I´m just a soul whose intentions are good,
Oh Lord, please don´t let me be misunderstood."

frcha
Posts: 191
Joined: Thu Jan 28, 2010 4:47 pm
Contact:

Re: What the computer chess community needs to decide

Post by frcha » Wed Feb 09, 2011 9:43 pm

you are confusing "usual" programming practices with what is being discussed here.

"usually" programmers are just being paid a fixed salary to do something -- and the company takes the credit for the product - the company may also rev. eng another product to glean info and even plagiarize its code -- there are of course lawsuits thrown about with regard to this.


Chess Engine Competition is a bit more than just making a strong engine -- it is about creating an original engine ..
Clearly, it is probably ok to take ippo sources and create your own version -- it could even be quite an accomplishment.
But is that your chess engine? What is your innovation ?make it a few elos stronger than the original ?

Even if there is a strong public domain engine that is legal -- have you created an original code by just modifying that?

Think of it as a college programming class - where you must come up with something original within the scope specified -
This is what needs to be determined here in terms of what is accepted as original vs a derivative

If however, the goal is to create the strongest engine by any means necessary then what we have now is the result. - note that the average chess player IS interested only in this.

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 10:47 pm

Don wrote:
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.


Life is grey, there simply isnt a nonarbitrary line to draw between what is heavyly based and what is lightly based.

bob
Posts: 20923
Joined: Mon Feb 27, 2006 6:30 pm
Location: Birmingham, AL

Re: What the computer chess community needs to decide

Post by bob » Wed Feb 09, 2011 11:11 pm

benstoker wrote:
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?
This has never been an issue, otherwise we could only have one chess program, period. The issue is "source code" and copying that, rather than writing your own... It is simply a short-cut to success. It bypasses an incredible amount of effort...



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?
You don't really "code bitboards". You have to write a move generator that uses them as the base data structure. Or 0x88. Or 8x8. Or whatever you want... It is that move generator that will be different. It is a fairly large piece of code and no two people will write it exactly the same way...





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

That's not really "code". For example, you can't patent or copyright a number. You can copyright a table of numbers you make, if there is something that makes that table unique. You can't copyright a table of primes, for example, since anyone could come up with that independent of anyone else...

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 11:17 pm

beram wrote: Life is grey, there simply isnt a nonarbitrary line to draw between what is heavyly based and what is lightly based.
Exactly! Consider the case of involuntary manslaughter. Perhaps you were driving too fast and a kid jumped out into the road and you hit him. Should you go to the electric chair? What if were driving slightly over the speed limit or were temporarily distracted by a horn honking behind you? Or maybe you were driving slowly but didn't sleep well that night, should you have been driving a car? You will have your day in court and a judgement will be made, which will be somewhat arbitrary and could go any way.

But what if you were doing 100 MPH in a 15 MPH zone? Your case might be viewed differently. What if iwas 90, or 80 or 40? When does it start to make a difference and who decides that? In some cases it's very clear, in others it gets trickier.

But what we have to agree on is which general considerations and principles to follow.

User avatar
fern
Posts: 8755
Joined: Sun Feb 26, 2006 3:07 pm

Re: What the computer chess community needs to decide

Post by fern » Wed Feb 09, 2011 11:22 pm

Precisely, Dan. If they recognize that such code came from there or here, then they are recognizing the real author and his hard work.

Fern

User avatar
fern
Posts: 8755
Joined: Sun Feb 26, 2006 3:07 pm

Re: What the computer chess community needs to decide

Post by fern » Wed Feb 09, 2011 11:27 pm

Very sensate words and even more coming from a chess programer. ..:-)
Fern

Frank Quisinsky
Posts: 5592
Joined: Wed Nov 18, 2009 6:16 pm
Location: Trier, Germany
Full name: Frank Quisinsky
Contact:

Re: What the computer chess community needs to decide

Post by Frank Quisinsky » Thu Feb 10, 2011 12:45 am

Hi Chistopher,

with other words ...
All available programs must get the name Gnuchess or an other name of a chess program where the sources are very early available.

The clone topic is closed Christopher!
CLOSED, you have to search an other topic for your own medical computer chess attendance!

That is very easy and fact!

Programmers have to protect own ideas!
If not, no discuss about clones make sense.
I know, I know ... the toy for adults to discuss about such things.

Not possible to control the complete www or what people do in home work. GPL ... ha, ha! The reality is that a persons with mixed a new engine from available sources never looks in GPL ... they don't give damn shit.

Each "good" programmer without fantasy / own ideas can used free sources and rewrite a bit. This isn't to control if the programmer have a small bit intelligence!

For users of engines an interesting situation, because commercial programmers have to do in the next years much more! Time for it, all the
nonsensical new option, nobody need ... I have enough from it. New ideas should be develops and here I hope this comes from the commercials. Please not already again from the freeware army.

I have a problem with the situation, that persons like to public comments "All is from myself" only.

Fabien is a great programmer with so many own ideas. I am sure that 80% from all other programmers looked in the sources by Fabien. And I am sure that many programmers useing in secret mission Fabien's idea.

We have to give each of such programmers a red card if we can't see a comment about it in readme files. Because this is the biggest lie a programmer can give the complete community.

Best
Frank
I like computer chess!

Ant_Gugdin
Posts: 60
Joined: Sun Dec 26, 2010 8:13 pm

Re: What the computer chess community needs to decide

Post by Ant_Gugdin » Thu Feb 10, 2011 1:07 am

Here's a question. Suppose Rybka, Strelka, the Ippolit family and Houdini were wiped off the face of the earth, with all traces of these programs permanently removed. Let's throw in Naum for good measure. The whole extended family of great-grandpa Fruit.

Would this be a good thing?

Christopher Conkie
Posts: 6073
Joined: Sat Apr 01, 2006 7:34 pm
Location: Scotland
Contact:

Re: What the computer chess community needs to decide

Post by Christopher Conkie » Thu Feb 10, 2011 1:23 am

Frank Quisinsky wrote:Hi Chistopher,

with other words ...
All available programs must get the name Gnuchess or an other name of a chess program where the sources are very early available.

The clone topic is closed Christopher!
CLOSED, you have to search an other topic for your own medical computer chess attendance!
What the hell are you waffling about? Huh?

I could male you a 3000 elo program in a couple of minutes if you like using available source.

One of those minutes would be to think of a name for it..... Give me a moment.....

.....ummmm..... Got it!

How does "Fuck All Programmers 1.0" sound? It's got a certain ring to it .....no?

You could enter it in your tournament, and put it in a rating list.

Now don't say I'm not generous......

;)

Gruss

Chris

Post Reply