Ippolit and derivatives will never be favorably accepted.

General discussion about computer chess...
halestorm
Posts: 19
Joined: Wed Jun 16, 2010 2:48 pm

Re: Ippolit and derivatives will never be favorably accepted

Post by halestorm » Thu Jun 17, 2010 5:25 am

When "scientists" determine what data is part of a test and what data is to be excluded, they are not interested in true knowledge but have already determined an outcome. We have seen this in other areas recently. Data is not "good" or "bad" but just data. Let humans interpret results with whatever biases or prejudices they bring, and voice their opinions thereupon. But excluding data is not true learning.

Gino
Posts: 15
Joined: Thu Jun 10, 2010 4:04 am

Re: Ippolit and derivatives will never be favorably accepted

Post by Gino » Thu Jun 17, 2010 6:14 am

BB,

You obviously care about your work and statements. You probably invested a lot of time and effort in preparing the document that was posted here.
Creating an engine must take a lot more effort than examining one.

If we look at the creators of Ippolit from a psychological perspective, why would someone go through all the trouble of creating an original chess engine, make it publicly available and then ignore the clone accusations?.
Anyone else would defend his work and utilize any legal mechanisms to not only disprove the accusations but also start legal action against the accusers.
Interesting how this author(s) remained anonymous and decided not to sue Vasik Rajlich and others.

User avatar
kingliveson
Posts: 1388
Joined: Thu Jun 10, 2010 1:22 am
Real Name: Franklin Titus
Location: 28°32'1"N 81°22'33"W

Re: Ippolit and derivatives will never be favorably accepted

Post by kingliveson » Thu Jun 17, 2010 6:25 am

BB+ wrote:I hate to write in this thread (which seems to degenerated into conspiracy theories), but as the quotation was here:
NH >> But practically nothing is identical or appears to be copied
VR > Really?
This can be made more precise. I find little (if any) evidence of "code" copying, but an abundance of recycling of ideas. Most of the latter seem to involve at least some modification of the idea, though by stretching the colloquial impress of "identical" or "copied", a case could be made for the use of such verbiage.

As an example, both Rybka and IPPOLIT have a "positional gain" table for moves (herein noncaptures, for simplicity). I don't know who else (if anyone) did so before them. As the crudest level, Rybka indexes it as [piece7][move] and IPPOLIT as [piece16][move]. Not a big deal. Rybka replaces the current table value when it is exceeded by a given eval, and decrements it by one if the given eval is more than 20 less than the current table value. IPPOLIT replaces it when exceeded, and else decrements it (no margin of 20). Rybka has this table as signed 8-bit entries, and there is some mechanism to prevent overflow in extreme situations (or maybe not -- on reappraisal, I think the overflow control might only be in the other posgain-like tables, which are not in IPPOLIT, and whose purpose in Rybka seems to be with controlling lazy eval). IPPOLIT has these as 16-bit entries, and overflow control is not used. Rybka starts these values (upon startup or newgame) from some huge array that makes little sense (to me at least -- for instance, it seems not just to be the static value of the move). IPPOLIT starts all these values as zero (which also doesn't seem that trenchant to me).

It seems impossible to say that IPPOLIT didn't "copy" the idea here. Whether the idea is "identical" is a different question. Certainly the "code" wasn't copied in a strict sense (and I find it hard to distinguish whether it "started as Rybka code", in whatever sense). So we have at least 3 standards of discussion that could be indicated here.

Function WhiteEval 0x479610:

Code: Select all

[...]
0x0047c61b: mov    0xe8(%rsp),%rcx               # to-square
0x0047c623: mov    0x2cab20(%r13,%rcx,4),%eax    # piece moved, 0x6acb20 is the board
0x0047c62f: mov    0x1859a8(%r13,%rax,4),%ebx    # map it via the piece7 table
0x0047c63a: shl    $0xc,%ebx                     # shift by 12 for [piece7]
0x0047c640: add    0xa4(%rsp),%ebx               # add [move]
0x0047c62b: mov 0xffffffffffffffac(%rbp),%r10d   # previous poseval [from move stack]
0x0047c637: sub    %r8d,%r10d                    # subtract the curr poseval [r8d]
0x0047c647: test   %r9d,%r9d                     # if non cap, jump [we jump]
0x0047c64a: je     0x47c687                      # note: r13 is just 0x400000rip
0x0047c687: movslq %ebx,%r8                      # extend to 64-bit for lookup
0x0047c68a: movzbl 0x2fe470(%r8,%r13,1),%edx     # lookup in posgain table
0x0047c693: cmp    %dl,%r10b                     # compare tablebyte to posgain
0x0047c696: jle    0x47c6a2                      # if posgain is bigger
0x0047c698: mov    %r10b,0x2fe470(%r8,%r13,1)    # replace the table value
0x0047c6a0: jmp    0x47c6bb                      # and jump to end
0x0047c6a2: movsbl %dl,%ecx                      # if posgain is smaller
0x0047c6a5: movsbl %r10b,%eax                    # sign-extend everything
0x0047c6a9: sub    $0x14,%ecx                    # subtract 20 from table-value
0x0047c6ac: cmp    %ecx,%eax                     # and if it is still bigger than curr posgain
0x0047c6ae: jge    0x47c6bb
0x0047c6b0: sub    $0x1,%dl                      # then subtract 1
0x0047c6b3: mov    %dl,0x2fe470(%r8,%r13,1)      # and store in posgain table
0x0047c6bb: [...]
About the only (slightly) odd thing I find with IPP_ENG.c is that it manages to use "else if" and a triparite splitting, rather than a bipartite one (note that the first comparison to "itog" could be with "<=", though maybe that would mean an extra memory-write in the off-chance that the table posgain and the curr posgain are the same):

Code: Select all

  sh = position_fixed.square[((move) & 077)];
  d = move & 07777;
  itog = ((tower_dynamics - 1)->positional) - tower_dynamics->positional;
  if (increment_maximal[sh][d] < itog)
    increment_maximal[sh][d] = itog;
  else if (increment_maximal[sh][d] > itog)
    increment_maximal[sh][d]--;
NH >> and finally we have solid, objective and ample technical evidence to the contrary [to the claim that IPPOLIT is a clone].
VR > I can assure you that you don't.
As "finally we have" seems obvious, is the dispute with: "solid", "objective", "ample", "technical", "evidence", or "to the contrary"? :) Or maybe the implied word "clone"? If VR is merely saying that he has alternative evidence (either technical or elsewise) that IPPOLIT is in fact a clone, so be it, but if he saying that NH's statement errs in content, an elaboration would be of use.
Vas has Rybka 3 source code. Ok if we take at face value his word -- may be not the same source as the released executable. But he has Rybka 3 source code and could debunk or dismiss whatever he sees not to be accurate about the report and analysis. Fact is, the secret is out. A peculiar or rather interesting exchange:
Nelson wrote:my integrity compels me to conclude that you simply cannot dismiss a rival as a clone without evidence
Vasik wrote: Maybe this is a valid point. I feel like the anonymity of the program gives me the right to do this. If a real author stepped forward, obviously I would never make an accusatory statement without careful documentation.
PAWN : Knight >> Bishop >> Rook >>Queen

Chan Rasjid
Posts: 33
Joined: Thu Jun 10, 2010 4:41 pm
Real Name: Chan Rasjid

Re: Ippolit and derivatives will never be favorably accepted

Post by Chan Rasjid » Thu Jun 17, 2010 8:14 am

I think BB's comment here about positional gains tables for non-captures is rather unfavourable for Ippolit. As many have suspected in the past, the Ippolit author very likely reversed engineered Rybka 3.

Rasjid.

Chan Rasjid
Posts: 33
Joined: Thu Jun 10, 2010 4:41 pm
Real Name: Chan Rasjid

Re: Ippolit and derivatives will never be favorably accepted

Post by Chan Rasjid » Thu Jun 17, 2010 8:56 am

kingliveson wrote:
Chan Rasjid wrote:
kingliveson wrote: ...
Working on premises that Rybka is a legal and legitimate program; an engineer obtains a Rybka binary being a scientist interested in advancement of computer chess -- disassembles it, uses ideas found combined with new ones to produce a stronger program, and then releases the source to the community. We are not talking about code copying line for line, but rather expression of ideas which is legal.
The problem is the sources and the method which we use to obtain something and contribute for the benefit of a community at large. That the end and the intention of an act is right does not mean the act is not questionable.

Rasjid

Not unless they didn't pay for the version of software in which these knowledge were obtained. RE is legitimate form of discovery -- yesterday, today, and tomorrow. By the way, you didn't respond to the first part of my comment:
It would be silly for me to say Rybka "cloned" Fruit. Rybka took code line for line, modified procedures, and in some cases expressed the same ideas differently. Rybka source is then closed and the binaries were distributed for sale. Fruit being GPL is the problem. GPL does not allow mixing closed-source with open-source. So how does one justify "cloning anything from open source is wholly accepted?"
I don't know much about how acceptable reversed engineering is. What I know is those who is at the top within a certain niche industry would not be flattered having others peeking into its secret and then destroying their money and livelihood.

Lets imagine the early Japanese auto makers dismantled the American autos and examined all screws, nuts and bolts. They could learn very fast, and as long as they are careful and skirt around patents infringement, they save a lot in not reinventing the wheel. When they start pushing their cars into the markets, no one would have felt the result and impact of reverse engineering. This could be peculiar to auto manufacturing, and maybe to many other heavier industries, which are dependent on many other aspects to be successful and RE do not give a huge advantage. Well in the case of RE of a chess engine, as we all know too well, the impact could be an overnight sensation and an immediate hit on the pockets of Master Vasik Rajlich.

We can view RE as acceptable for all times. As long as Vasik did not take out patents on any algorithm, it is just unfortunate someone came out with Ippolit. The other view is RE is closer to stealing.

My answer to the second part as is the same as what I wrote in reply to Bensstoker earlier.

Rasjid

CPU
Posts: 17
Joined: Thu Jun 10, 2010 2:43 pm

Re: Ippolit and derivatives will never be favorably accepted

Post by CPU » Thu Jun 17, 2010 11:36 am

BB+ wrote: ...
I don't know who else (if anyone) did so before them.
When you say "them" I think you give too much credit to Ippolit. This is an original idea of Rybka that is copied to other engines.

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Ippolit and derivatives will never be favorably accepted

Post by Jeremy Bernstein » Thu Jun 17, 2010 1:01 pm

Chan Rasjid wrote:I don't know much about how acceptable reversed engineering is. What I know is those who is at the top within a certain niche industry would not be flattered having others peeking into its secret and then destroying their money and livelihood.

Lets imagine the early Japanese auto makers dismantled the American autos and examined all screws, nuts and bolts. They could learn very fast, and as long as they are careful and skirt around patents infringement, they save a lot in not reinventing the wheel. When they start pushing their cars into the markets, no one would have felt the result and impact of reverse engineering. This could be peculiar to auto manufacturing, and maybe to many other heavier industries, which are dependent on many other aspects to be successful and RE do not give a huge advantage. Well in the case of RE of a chess engine, as we all know too well, the impact could be an overnight sensation and an immediate hit on the pockets of Master Vasik Rajlich.

We can view RE as acceptable for all times. As long as Vasik did not take out patents on any algorithm, it is just unfortunate someone came out with Ippolit. The other view is RE is closer to stealing.

My answer to the second part as is the same as what I wrote in reply to Bensstoker earlier.

Rasjid
If you don't know, read up: http://www.chillingeffects.org/reverse/faq.cgi

Your initial premise seems to be, though: even if it's legal, even if it's ethical and SOP throughout the commercial world, it's still somehow "wrong". Under what conditions, legal, ethical, can you imagine it being "ok"? Let's say, for the sake of argument, that the Ippo authors DID RE Rybka 3 to find out how it works, but didn't copy any code verbatim, that they used the knowledge discovered via RE as the basis for their own creation, loosely modelled after Rykba.

Jeremy

Charles
Posts: 71
Joined: Thu Jun 10, 2010 7:41 pm
Real Name: Charles
Contact:

Re: Ippolit and derivatives will never be favorably accepted

Post by Charles » Thu Jun 17, 2010 2:37 pm

Maybe the Ippo authors are unethical even if its legal but then is Vas unethical because of the "fruit deal" ?

If ippo authors are known will the engine be accepted into rating lists?
Can the ones who run official rating lists answer this now?

Jeremy Bernstein
Site Admin
Posts: 1226
Joined: Wed Jun 09, 2010 7:49 am
Real Name: Jeremy Bernstein
Location: Berlin, Germany
Contact:

Re: Ippolit and derivatives will never be favorably accepted

Post by Jeremy Bernstein » Thu Jun 17, 2010 2:47 pm

Charles wrote:Maybe the Ippo authors are unethical even if its legal but then is Vas unethical because of the "fruit deal" ?

If ippo authors are known will the engine be accepted into rating lists?
Can the ones who run official rating lists answer this now?
This is kind of a clear case of two wrongs not making a right. I would personally leave the Fruit issue out of the equation, which is complicated enough without introducing the extra question of "does re-opening closed open source constitute a legitimate guerilla coding action legally/ethically?" Although that is certainly an interesting topic, it merits its own thread.

Chan Rasjid
Posts: 33
Joined: Thu Jun 10, 2010 4:41 pm
Real Name: Chan Rasjid

Re: Ippolit and derivatives will never be favorably accepted

Post by Chan Rasjid » Thu Jun 17, 2010 3:34 pm

Jeremy Bernstein wrote:
Chan Rasjid wrote:I don't know much about how acceptable reversed engineering is. What I know is those who is at the top within a certain niche industry would not be flattered having others peeking into its secret and then destroying their money and livelihood.

Lets imagine the early Japanese auto makers dismantled the American autos and examined all screws, nuts and bolts. They could learn very fast, and as long as they are careful and skirt around patents infringement, they save a lot in not reinventing the wheel. When they start pushing their cars into the markets, no one would have felt the result and impact of reverse engineering. This could be peculiar to auto manufacturing, and maybe to many other heavier industries, which are dependent on many other aspects to be successful and RE do not give a huge advantage. Well in the case of RE of a chess engine, as we all know too well, the impact could be an overnight sensation and an immediate hit on the pockets of Master Vasik Rajlich.

We can view RE as acceptable for all times. As long as Vasik did not take out patents on any algorithm, it is just unfortunate someone came out with Ippolit. The other view is RE is closer to stealing.

My answer to the second part as is the same as what I wrote in reply to Bensstoker earlier.

Rasjid
If you don't know, read up: http://www.chillingeffects.org/reverse/faq.cgi

Your initial premise seems to be, though: even if it's legal, even if it's ethical and SOP throughout the commercial world, it's still somehow "wrong". Under what conditions, legal, ethical, can you imagine it being "ok"? Let's say, for the sake of argument, that the Ippo authors DID RE Rybka 3 to find out how it works, but didn't copy any code verbatim, that they used the knowledge discovered via RE as the basis for their own creation, loosely modelled after Rykba.

Jeremy
This is what I got from your link:
Question: Is reverse engineering legal?
Answer: Reverse engineering has long been held a legitimate form of discovery in both legislation and court opinions. The Supreme Court has confronted the issue of reverse engineering in mechanical technologies several times, upholding it under the principles that it is an important method of the dissemination of ideas and that it encourages innovation in the marketplace.
....
The law regarding reverse engineering in the computer software and hardware context is less clear, but has been described by many courts as an important part of software development.
...

I don't think I have a satisfactory answer to the question you posed. It is the very bone of contention that split up CCC with the camp of Graham, Conkie, Macraken, Ansari who takes the view that RE of Rybka 3 is stealing, ..., etc, ... poor Vasik.

My own view about the RE of Rybka is this. What Zach and BB did is more in the spirit of discovery and I don't think many have objections. But I have some inclination towards the anti Ippolit camp when it comes to RE by the Ippolit author and disseminating a public chess program. There never was the question of copying by Ippolit of Rybka's code.

Why is the reverse engineering of Rybka 3 to produce Ippolit and releasing it to the public domain leaning towards the unethical as I view it? Maybe... it is a chess engine... and therefore unethical...

Best Regards,
Rasjid.

Post Reply