Ideas from other engines ok?

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

Moderators: hgm, Rebel, chrisw

bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Ideas from other engines ok?

Post by bob »

rbarreira wrote:
bob wrote:
lkaufman wrote:
bob wrote:
h1a8 wrote:Let's assume that someone want's to write an engine using the ideas of other engines while absolutely copying no code (not even in structure). Let's assume they can also achieve certain tricks as another engine but using a different means to achieve it.

Is it

1. Legally and WCCC ok
2. Legally ok but not WCCC ok
3. Neither Legally or WCCC ok ?
Legal everywhere...
I'm surprised at your answer Bob. If the new engine plays pretty much the same moves with similar evals (perhaps scaled) as the old one, regardless of how different the code is I think it would not be allowed in WCCC. Don't you agree?
No I don't. I think it would lead to a protest, an investigation, but if code was not copied then I don't think there is any way there would be a problem. Notice that taking a C program and converting it to assembly, or to Ada, doesn't qualify, as that is copying, of course.
In that case, the fact that Rybka used the same eval features as Fruit does not count as evidence of plagiarism?
Not just "features". There is much more to the comparison than that. Eval the same concepts, in the same way, in the same order, with the same partial bonuses and penalties. With the only difference being bitboard vs mailbox does count as evidence. But just because we both evaluate passed pawns does not support such a claim until the procedure itself is examined.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Ideas from other engines ok?

Post by Don »

h1a8 wrote:Let's assume that someone want's to write an engine using the ideas of other engines while absolutely copying no code (not even in structure). Let's assume they can also achieve certain tricks as another engine but using a different means to achieve it.

Is it

1. Legally and WCCC ok
2. Legally ok but not WCCC ok
3. Neither Legally or WCCC ok ?
None of this is a problem. There is no patent on these ideas. In fact I don't think there is anything wrong with reverse engineering a program for ideas - it's not like ideas for chess programs are "owned" by anyone. The concept that if I use an idea first nobody else can is just ridiculous.
lkaufman
Posts: 5960
Joined: Sun Jan 10, 2010 6:15 am
Location: Maryland USA

Re: Ideas from other engines ok?

Post by lkaufman »

bob wrote:
lkaufman wrote:
bob wrote:
h1a8 wrote:Let's assume that someone want's to write an engine using the ideas of other engines while absolutely copying no code (not even in structure). Let's assume they can also achieve certain tricks as another engine but using a different means to achieve it.

Is it

1. Legally and WCCC ok
2. Legally ok but not WCCC ok
3. Neither Legally or WCCC ok ?
Legal everywhere...
I'm surprised at your answer Bob. If the new engine plays pretty much the same moves with similar evals (perhaps scaled) as the old one, regardless of how different the code is I think it would not be allowed in WCCC. Don't you agree?
No I don't. I think it would lead to a protest, an investigation, but if code was not copied then I don't think there is any way there would be a problem. Notice that taking a C program and converting it to assembly, or to Ada, doesn't qualify, as that is copying, of course.
So it's okay to copy another program's entire eval as long as we rewrite the code a bit, for example changing centipawns to .002 pawns, multiplying each weight by five? I can't believe you would approve of such an entity competing in an ICGA event. If you don't allow the copying of entire tables, surely it is just as wrong to allow a functional copy of the tables that looks different, as in the above example.
Ferdy
Posts: 4833
Joined: Sun Aug 10, 2008 3:15 pm
Location: Philippines

Re: Ideas from other engines ok?

Post by Ferdy »

Don wrote:
h1a8 wrote:Let's assume that someone want's to write an engine using the ideas of other engines while absolutely copying no code (not even in structure). Let's assume they can also achieve certain tricks as another engine but using a different means to achieve it.

Is it

1. Legally and WCCC ok
2. Legally ok but not WCCC ok
3. Neither Legally or WCCC ok ?
None of this is a problem. There is no patent on these ideas. In fact I don't think there is anything wrong with reverse engineering a program for ideas - it's not like ideas for chess programs are "owned" by anyone. The concept that if I use an idea first nobody else can is just ridiculous.
Talking about ideas.
(1) Looking for ideas thru reverse engineering and use it to gain money is wrong?
(2) Looking for ideas thru reverse engineering and share those ideas to the community for progress is fine?
(3) Looking for ideas thru reverse engineering and use it but not use it to gain money is alright?
(4) Examining the open sources and use ideas from there to gain money is not ok?
(5) Examining the open sources and use ideas from there to improve his program but not to gain money is ok?
rbarreira
Posts: 900
Joined: Tue Apr 27, 2010 3:48 pm

Re: Ideas from other engines ok?

Post by rbarreira »

bob wrote:
rbarreira wrote:
bob wrote:
lkaufman wrote:
bob wrote:
h1a8 wrote:Let's assume that someone want's to write an engine using the ideas of other engines while absolutely copying no code (not even in structure). Let's assume they can also achieve certain tricks as another engine but using a different means to achieve it.

Is it

1. Legally and WCCC ok
2. Legally ok but not WCCC ok
3. Neither Legally or WCCC ok ?
Legal everywhere...
I'm surprised at your answer Bob. If the new engine plays pretty much the same moves with similar evals (perhaps scaled) as the old one, regardless of how different the code is I think it would not be allowed in WCCC. Don't you agree?
No I don't. I think it would lead to a protest, an investigation, but if code was not copied then I don't think there is any way there would be a problem. Notice that taking a C program and converting it to assembly, or to Ada, doesn't qualify, as that is copying, of course.
In that case, the fact that Rybka used the same eval features as Fruit does not count as evidence of plagiarism?
Not just "features". There is much more to the comparison than that. Eval the same concepts, in the same way, in the same order, with the same partial bonuses and penalties. With the only difference being bitboard vs mailbox does count as evidence. But just because we both evaluate passed pawns does not support such a claim until the procedure itself is examined.
For an engine to play exactly the same moves with the same evals as another one (as Larry hypothesized), it would need to use the same concepts with the same partial bonuses and penalties. You said that would be OK as long as no code is copied.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Ideas from other engines ok?

Post by Don »

fern wrote:Larry , what is to "copy an idea?"
There is not simple answer to that. Ideas are made for being used in anyway available form. In that consist every progress. Ideas are not so precise entities to be possible just copy them. Youi can copy a drawing, a line of code, but an idea? Even the most articulate idea is fuzzy enough and gives scope to be used without a copy in process. What's more, there is almos no idea that can be "copied" withpout sustancial changes. There is always a degree of interpretation, of differents weights, of new articulation and alien materialization.

My best
Fern
Fern,

You are right that there is no simple answer if you want to nitpick corner cases. But it's possible to justify any kind of behavior, even things abhorrent to society by constructing a chain a reasoning based on the idea that "there is no simple answer."

I'm not saying that you are doing this, but I just want us to beware faulty reasoning because ti's easy to fall into that.

The way it works is to say, "there is no simple answer" and then imply that others are being inconsistent and judgmental. Here is an example.

You could ask someone, "how hold was you wife when you fell in love with her?" Maybe the answer is 19. Then .. what if she was 17, would it be wrong to fall in love with her then? What if she as 15? 13? etc. At some point almost any sane person in almost any civilization recognizes that one case is clearly acceptable, but at some point it becomes completely unacceptable and it's impossible to clearly identity the EXACT point where it switches from right to wrong, but there is no question that it does.

The truth of the matter is that even reasonable people have different comfort zones about most any issue that is not clearly marked with a line that separates white from black. But it's not the reasonable people that bother me ....

We have gotten hung up a lot on what is "legal" or "illegal" but I hope that is not what decides what each person finds acceptable. There is also the "money" thing - there is a bit of an undercurrent of "disapproval" on this forum for anyone who dares mention money and I notice that a lot of arguments about what is "right" or "wrong" centers around money, further implying that if money is involved it becomes plagiarism, otherwise everything is ok.
User avatar
Don
Posts: 5106
Joined: Tue Apr 29, 2008 4:27 pm

Re: Ideas from other engines ok?

Post by Don »

Ferdy wrote:
Don wrote:
h1a8 wrote:Let's assume that someone want's to write an engine using the ideas of other engines while absolutely copying no code (not even in structure). Let's assume they can also achieve certain tricks as another engine but using a different means to achieve it.

Is it

1. Legally and WCCC ok
2. Legally ok but not WCCC ok
3. Neither Legally or WCCC ok ?
None of this is a problem. There is no patent on these ideas. In fact I don't think there is anything wrong with reverse engineering a program for ideas - it's not like ideas for chess programs are "owned" by anyone. The concept that if I use an idea first nobody else can is just ridiculous.
Talking about ideas.
(1) Looking for ideas thru reverse engineering and use it to gain money is wrong?
(2) Looking for ideas thru reverse engineering and share those ideas to the community for progress is fine?
(3) Looking for ideas thru reverse engineering and use it but not use it to gain money is alright?
(4) Examining the open sources and use ideas from there to gain money is not ok?
(5) Examining the open sources and use ideas from there to improve his program but not to gain money is ok?
I personally think the money issue is not relevant. The answer to your question 1 is the same as the answer to question 2 in my opinion.

By including the phrase "for money" you can pre-condition the response. There is a while science around how to ask questions (and which order to ask them) which can greatly influence the answer people will give, often by leading them down a certain path implied by the questions. In critical thinking you have to sort through the nonsense. In a lot of cases information is added that is irrelevant to the answer, but can influence the response.

Here is a silly example of the same question being posed differently to influence the response:

1. Do you think illegal cloning for profit by unscrupulous people who cannot write a program on their own should be permitted?

2. Do you think that getting good ideas from the computer chess community should be consider a bad thing?

Each wording is designed to illicit a different response and implicitly emphasize different aspects of the issue, in one case to make the practice look as bad as possible and in the other case to make it look like a noble thing.
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Ideas from other engines ok?

Post by bob »

rbarreira wrote:
bob wrote:
rbarreira wrote:
bob wrote:
lkaufman wrote:
bob wrote:
h1a8 wrote:Let's assume that someone want's to write an engine using the ideas of other engines while absolutely copying no code (not even in structure). Let's assume they can also achieve certain tricks as another engine but using a different means to achieve it.

Is it

1. Legally and WCCC ok
2. Legally ok but not WCCC ok
3. Neither Legally or WCCC ok ?
Legal everywhere...
I'm surprised at your answer Bob. If the new engine plays pretty much the same moves with similar evals (perhaps scaled) as the old one, regardless of how different the code is I think it would not be allowed in WCCC. Don't you agree?
No I don't. I think it would lead to a protest, an investigation, but if code was not copied then I don't think there is any way there would be a problem. Notice that taking a C program and converting it to assembly, or to Ada, doesn't qualify, as that is copying, of course.
In that case, the fact that Rybka used the same eval features as Fruit does not count as evidence of plagiarism?
Not just "features". There is much more to the comparison than that. Eval the same concepts, in the same way, in the same order, with the same partial bonuses and penalties. With the only difference being bitboard vs mailbox does count as evidence. But just because we both evaluate passed pawns does not support such a claim until the procedure itself is examined.
For an engine to play exactly the same moves with the same evals as another one (as Larry hypothesized), it would need to use the same concepts with the same partial bonuses and penalties. You said that would be OK as long as no code is copied.
You go from "pretty much the same" to "exactly the same". That changes everything. Two strong evaluations _must_ be fairly correlated in their final score, wouldn't you think? Otherwise one is wrong and therefore can't be "strong" compared to the other.

But don't change the words, then ask why I think that is true. Most strong programs will agree on the move in a high percentage of the cases. But they won't agree _exactly_ and that wasn't originally posited.
Uri Blass
Posts: 10268
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Ideas from other engines ok?

Post by Uri Blass »

bob wrote:
rbarreira wrote:
bob wrote:
lkaufman wrote:
bob wrote:
h1a8 wrote:Let's assume that someone want's to write an engine using the ideas of other engines while absolutely copying no code (not even in structure). Let's assume they can also achieve certain tricks as another engine but using a different means to achieve it.

Is it

1. Legally and WCCC ok
2. Legally ok but not WCCC ok
3. Neither Legally or WCCC ok ?
Legal everywhere...
I'm surprised at your answer Bob. If the new engine plays pretty much the same moves with similar evals (perhaps scaled) as the old one, regardless of how different the code is I think it would not be allowed in WCCC. Don't you agree?
No I don't. I think it would lead to a protest, an investigation, but if code was not copied then I don't think there is any way there would be a problem. Notice that taking a C program and converting it to assembly, or to Ada, doesn't qualify, as that is copying, of course.
In that case, the fact that Rybka used the same eval features as Fruit does not count as evidence of plagiarism?
Not just "features". There is much more to the comparison than that. Eval the same concepts, in the same way, in the same order, with the same partial bonuses and penalties. With the only difference being bitboard vs mailbox does count as evidence. But just because we both evaluate passed pawns does not support such a claim until the procedure itself is examined.
This is simply wrong.
The difference between fruit and Rybka1 beta is more than bitboard vs mailbox.

It is a fact that rybka1 beta has material imbalance tables that fruit does not have and it is a fact that fruit has endgame knowledge that Rybka does not have.

Even if Rybka copied part of fruit's evaluation to bitboard then it is still misleading to claim that rybka and fruit
"Eval the same concepts, in the same way, in the same order, with the same partial bonuses and penalties" and it is misleading to claim that
"the only difference being bitboard vs mailbox"
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Ideas from other engines ok?

Post by bob »

lkaufman wrote:
bob wrote:
lkaufman wrote:
bob wrote:
h1a8 wrote:Let's assume that someone want's to write an engine using the ideas of other engines while absolutely copying no code (not even in structure). Let's assume they can also achieve certain tricks as another engine but using a different means to achieve it.

Is it

1. Legally and WCCC ok
2. Legally ok but not WCCC ok
3. Neither Legally or WCCC ok ?
Legal everywhere...
I'm surprised at your answer Bob. If the new engine plays pretty much the same moves with similar evals (perhaps scaled) as the old one, regardless of how different the code is I think it would not be allowed in WCCC. Don't you agree?
No I don't. I think it would lead to a protest, an investigation, but if code was not copied then I don't think there is any way there would be a problem. Notice that taking a C program and converting it to assembly, or to Ada, doesn't qualify, as that is copying, of course.
So it's okay to copy another program's entire eval as long as we rewrite the code a bit, for example changing centipawns to .002 pawns, multiplying each weight by five? I can't believe you would approve of such an entity competing in an ICGA event. If you don't allow the copying of entire tables, surely it is just as wrong to allow a functional copy of the tables that looks different, as in the above example.
Now _you_ are doing it too. He originally said "played nearly the same moves." Which doesn't match with your question. And I have always agreed with your issue about scaled values. Multiply _everything_ in a program by 2 and you still have _exactly_ the same moves and everything, except the scores will be different by a factor of 2 (assuming you also multiply material by 2).

Do you not think that someone could write a _detailed_ specification for an evaluation function, describing what to evaluate, how to evaluate it, the order things should be tested, and the partial scores to be used, and then give those specs to two different people, and get two pieces of code that will look similar in structure, but won't be identical? Those "detailed specs" are the crux here, and I would say that the two resulting evaluations are "the same". So it is a complex problem, with reasonable answers after considering all angles.