How do you define a clone?

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

Moderators: hgm, Rebel, chrisw

User avatar
AdminX
Posts: 6340
Joined: Mon Mar 13, 2006 2:34 pm
Location: Acworth, GA

How do you define a clone?

Post by AdminX »

I strongly dislike clone accusations, but it seems as if this forum will always have them. No one so far has defined what should be considered a clone here that I can recall. So can we please define just what should be considered a clone here in this thread. Crafty clones, Fruit clones, Rybka clones, just what is the level of proof needed to define a clone. It seems every time a new strong chess engine appears by a author that no one has ever heard of, that that engine must be a clone.
"Good decisions come from experience, and experience comes from bad decisions."
__________________________________________________________________
Ted Summers
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: How do you define a clone?

Post by Bill Rogers »

The copywright laws state that anyone who changes at least 10% of the over all code in a program can call it new. This does not mean just renaming variables as I have seen some people do in the past.
A clone is not necessarily a new stand-a-lone work but has had some changes done to it but not enough to call it a new work.
If someone taks anothers work, say chess, and then changes the evaluation routine or maybe the search routine but that is all then the program should be legally be called a clone and the orginial authors name should be mentioned and properly credited.
Hope this helps you understand a little better.
Bill
User avatar
smirobth
Posts: 2307
Joined: Wed Mar 08, 2006 8:41 pm
Location: Brownsville Texas USA

Re: How do you define a clone?

Post by smirobth »

Bill Rogers wrote:The copywright laws state that anyone who changes at least 10% of the over all code in a program can call it new.
Where did you get this info? Can you cite a source? 10% seems like a very low percentage changed to not be considered a copyright violation, it would mean 90% of the code is unchanged!! This sounds completely wrong to me. No one who "wrote" and book could get away with copying 90% of someone else's work and presenting it as new.
- Robin Smith
User avatar
Bill Rogers
Posts: 3562
Joined: Thu Mar 09, 2006 3:54 am
Location: San Jose, California

Re: How do you define a clone?

Post by Bill Rogers »

Robin
I worked for one of the largest software companies, privately owned that is for over 15 years. They had a Fund Accounting Software Package that the licensed to cities and counties across the nation to use. When you realize that it sold, the license to use it, for $50,000.00 a copy you can be sure that we were all up to date on software copywright laws. Do a little research and you will find those answers yourself.
And I said at least 10%, preferable more to be safe. I did not write the laws, I just quoted them.
Bill
User avatar
smirobth
Posts: 2307
Joined: Wed Mar 08, 2006 8:41 pm
Location: Brownsville Texas USA

Re: How do you define a clone?

Post by smirobth »

Bill Rogers wrote:Robin
I worked for one of the largest software companies, privately owned that is for over 15 years. They had a Fund Accounting Software Package that the licensed to cities and counties across the nation to use. When you realize that it sold, the license to use it, for $50,000.00 a copy you can be sure that we were all up to date on software copywright laws. Do a little research and you will find those answers yourself.
And I said at least 10%, preferable more to be safe. I did not write the laws, I just quoted them.
Bill
You did not quote laws, you quoted your memory which I suspect in this case is faulty. If you do not back up your claim I will likely remain skeptical.
- Robin Smith
User avatar
Daniel Mehrmann
Posts: 858
Joined: Wed Mar 08, 2006 9:24 pm
Location: Germany
Full name: Daniel Mehrmann

Re: How do you define a clone?

Post by Daniel Mehrmann »

AdminX wrote:I strongly dislike clone accusations, but it seems as if this forum will always have them. No one so far has defined what should be considered a clone here that I can recall. So can we please define just what should be considered a clone here in this thread. Crafty clones, Fruit clones, Rybka clones, just what is the level of proof needed to define a clone. It seems every time a new strong chess engine appears by a author that no one has ever heard of, that that engine must be a clone.

There are 2 classes of clones with subclasses:

class A) the A type is well known mostly 100% of the original, but changed name.

class B) the B type is has subclasses of based engines. the B class is called "Onboard" clone. It means that parts or a lot of ideas was taken from the original. Fruit is called here "Fruit-Family" based OnBoard clones.

best,
Daniel
User avatar
Denis P. Mendoza
Posts: 415
Joined: Fri Dec 15, 2006 9:46 pm
Location: Philippines

Re: How do you define a clone?

Post by Denis P. Mendoza »

Daniel,

There is still another class of clone which intriques people a lot.

Class C) The C type that has functions and behavior similar to another program but which does not contain source code from that program.

Denis

-----------------------------------------------------------------------------
CRoberson
Posts: 2055
Joined: Mon Mar 13, 2006 2:31 am
Location: North Carolina, USA

Re: How do you define a clone?

Post by CRoberson »

Before the forum moved here, we had yearly discussions to refine
the definition, but it is still broad. Why, because there are so many
ways people can cheat.

Once a programmer cloned Crafty. He was caught. He said he didn't
know that was wrong. He did not cut and paste. He did type all the
code but he was looking at the Crafty source the whole time.
So, he rewrote his engine. Bob looked at it. While the coding was
very different, The position evaluator (the main contributor to a
chess program's "personality") used identical algortithms and tables.
There was nothing in it that wasn't in Crafty and there was nothing
in Crafty that wasn't in it. He just rewrote the position evaluator in
a different style but it is the same position evalutator.

Bob made a statement that it was ok to copy any Crafty algorithm
that was "static" in its function. That is: if no matter who writes this
algorithm, the algorithm still has to produce the same output for a
given input. If the algorithm is not "static" (my choice of wording),
then it is not ok to copy it.

Now, there are many algorithms to choose from at every stage of
developing a chess program. If you choose the same ones as another
with the same tables, then you have cloned. Not to mention there are
numerous choices in the use of data structures and these choices
are not so limited that some light use of imagination can't come up
with some what unique data structures.

There is much more to coding complex projects than picking
algorithms and how you come up with the values in your tables
is wide open.

On the subject of a new program that immediatly hits the top:
That is suspicious for one reason. It takes around 15,000 lines
of code to produce a top engine. The time to code that many
lines and test it and get the bugs out and tune it is more than
a year without cloning. That is for a single individual.

So, for people that produce top tier programs in one month, that is
500 lines of refined and tested code per day -- doesn't work that way.

Even beyond the descriptions here is another example:
You take several programs -- use the search from one, the quiesce
search from another, and parts of the position eval from several
others and you bind all this together. Is it a clone. Certainly not of
one program. But, the so called author didn't put any design effort
at all into designing any piece of it.

It takes thought to design a 15,000 line project. Many decisions have to
be made and many trade-offs have to be thought through. A cloner
does none of this.
CRoberson
Posts: 2055
Joined: Mon Mar 13, 2006 2:31 am
Location: North Carolina, USA

Re: How do you define a clone?

Post by CRoberson »

How about Type D:

It takes pieces of several different programs and puts them
together. The author has put no work into the design of any
piece of the program.
CRoberson
Posts: 2055
Joined: Mon Mar 13, 2006 2:31 am
Location: North Carolina, USA

Re: How do you define a clone?

Post by CRoberson »

Basically, it comes down to did you do any of your own work. Is there
anything in it that is uniquely yours? Copying ideas and concepts is
fine to a point. Copying code is not.