Fabien's open letter to the community

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

Moderators: hgm, Rebel, chrisw

Frank Quisinsky
Posts: 6808
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: One of the Igorit persons ... yes!

Post by Frank Quisinsky »

Hi Christopher,

I am sure that one of the Igorit persons will be Vladimir Yelin if ...

The sources of Kaissa are not free before the sources of Igorit comes out.

1. The bad ponder and time management code "Patriot" has, all the IPP family engines has too. Vladimir need over 40 beta versions to fix some things in ponder-mode. I had the versions on my hard disk.

All is the same with Igorit and the others IPP family engines.

2. The day I had the latest contact to Vladimir he wrote a short mail!
Believe me Frank I come back and the World will see what I can do.

3. Patriot ... this name was my idea but ...
The reaction of the name was "Fantastic Frank" I like this, I am a person with many national pride. Just clear if I look on the first Igorit pages :-)

Perhaps Vladimir do that alone, perhaps with others, I don't know. But if the sources of Kaissa not available before the Igorit sources come out, the same mistakes are in Igorit Patriot / Kaissa has, it's for me absolutly clear the programmer is Vladimir Yelin!

Furthermore, I am thinking is a little puzzle for the community. I am sure that the Igorit people have the biggest interest in ... I am the programmer X without to write it in detail.

Best
Frank
Uri Blass
Posts: 10267
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Fabien's open letter to the community

Post by Uri Blass »

bob wrote:
Xann wrote:
bob wrote:Just for the record, to eliminate this specific argument, when Zach, CT, I and others looked at the fruit/rybka1 question, we did _not_ involve Strelka. Strelka was the thing that exposed the issue, but we directly compared fruit to rybka, so the strelka issue could not be raised again...
What happened then?

Fabien.
We found _lots_ of similarities. Zach created a web page that went into great detail with the analysis. There are some obvious differences between Fruit and Rybka, but there are a _ton_ of similarities. Too many to be pure luck.
Of course
It is clear that similarities between rybka and fruit are not pure luck.
Vas does not deny that he read the fruit code and learned from it and using ideas that you learned from other sources is legal.

The question is not if there is a similarity that is not pure luck between rybka and fruit
but if the similarity means that rybka(or even strelka assuming it was a closed source) is illegal derivative of fruit
and it seems that there is no agreement about it.
User avatar
Andres Valverde
Posts: 557
Joined: Sun Feb 18, 2007 11:07 pm
Location: Almeria. SPAIN

Re: One of the Igorit persons ... yes!

Post by Andres Valverde »

Frank Quisinsky wrote:Hi Christopher,

I am sure that one of the Igorit persons will be Vladimir Yelin if ...

The sources of Kaissa are not free before the sources of Igorit comes out.

1. The bad ponder and time management code "Patriot" has, all the IPP family engines has too. Vladimir need over 40 beta versions to fix some things in ponder-mode. I had the versions on my hard disk.

All is the same with Igorit and the others IPP family engines.

2. The day I had the latest contact to Vladimir he wrote a short mail!
Believe me Frank I come back and the World will see what I can do.

3. Patriot ... this name was my idea but ...
The reaction of the name was "Fantastic Frank" I like this, I am a person with many national pride. Just clear if I look on the first Igorit pages :-)

Perhaps Vladimir do that alone, perhaps with others, I don't know. But if the sources of Kaissa not available before the Igorit sources come out, the same mistakes are in Igorit Patriot / Kaissa has, it's for me absolutly clear the programmer is Vladimir Yelin!

Furthermore, I am thinking is a little puzzle for the community. I am sure that the Igorit people have the biggest interest in ... I am the programmer X without to write it in detail.

Best
Frank
Hi Frank, I find this story extremely interesting. There is enough material for the new Fern's novel !
Saludos, Andres
Frank Quisinsky
Posts: 6808
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: One of the Igorit persons ... yes!

Post by Frank Quisinsky »

Hi Andreas,

perhaps a programmer have interest to check that (with string files etc. ... first Igorit and Patriot). In this case i can send the 40 beta versions of Patriot. But only to a programmer which have interest to do that and the knowledge for it.

Best
Frank
Alexander Schmidt
Posts: 1202
Joined: Thu May 10, 2007 2:49 pm

Re: One of the Igorit persons ... yes!

Post by Alexander Schmidt »

Frank Quisinsky
Posts: 6808
Joined: Wed Nov 18, 2009 7:16 pm
Location: Gutweiler, Germany
Full name: Frank Quisinsky

Re: One of the Igorit persons ... yes!

Post by Frank Quisinsky »

Alex,

nice to meet you again!
Hope you are right!

Exactly!
At first I am not many thinking about it. But I remember me on the sentence he wrote in the latest mail contact I had with him.

"Later, I will come back and the World will see what I can do".

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

Re: Fabien's open letter to the community

Post by bob »

SuneF wrote:
bob wrote:
SuneF wrote: This is not all black and white unfortunately, the line must be drawn somewhere. If Rybka is a bitboard version of Fruit written from scratch I don't think it can be called a clone or derivative.
I can't parse that. "version of ... written from scratch" does not compute. If it is "a version of" then it is clearly a derivative. If it was written from scratch, it clearly is not "a version of..."
Suppose you change the basic move structure in a program from e.g. mailbox to bitboard and you do this by starting from scratch.
I would consider this to be a new engine. Changing the basic move structure is a huge undertaking and requires understanding of all the important details of the engine and most likely a total rewrite from scratch.
However as Dan pointed out, if you changed the basic move structure by rewriting the code line by line, then it would be called a derivative no matter if the end result be the same in both cases.
It is impossible for us to look at Strelka now and determine which road was taken, we can only guess. I'm guessing it has been rewritten from scratch and as such is neither a clone or derivative.

I took a brief at look at Fruit v2.1.2 and compared it to Strelka 2.0, there are many differences though.

* Strelka is all bitboard Fruit is not.
* Strelka has multiple specialized search routines for check and null windows, Fruit does not.
* Evaluation and move selection looks quite different.

There are similarities though. For example the hashing schemes (trans_store()) appear somewhat similar. So it might still be possible that Strelka contains some "copied" amount of Fruit code.
Still do not follow. Let's take Crafty. Which was, originally a bitboard version of Cray Blitz. And to further complicate it, it was ported from FORTRAN to C. The first step was FORTRAN to C, then from mailbox to bitboard. Is that a "rewrite" Hardly. That is a translation, just as converting from German to English is not a "rewrite".

So bitboard or mailbox is irrelevant. Crafty went from traditional Slate/Atkin bitboards, to rotated bitboards, to magic move generation. Yet the program was exactly the same (except for speed) for each conversion... Much of Crafty has no reference to bitboards. Search(). NextMove() and its friends. Quiesce(). Parts of Evaluate (what do I evaluate as opposed to how do I evaluate it, since the later does change from mailbox to bitboard, but not necessarily the 'what'.) Hashing doesn't change. Pawn hashing. move ordering. Learning. Opening book. EGTB access. Iterated search. A major part of the total engine is board-representation independent, so that doesn't mean much at all.

I'm not interested in the strelka issue any longer. Strelka was the first domino to fall and lead some to the fruit/rybka investigation. However, all the data I have looked at has been rybka (disassembled by hand) vs fruit source... meaning Strelka is irrelevant other than starting the snowball rolling...
User avatar
JuLieN
Posts: 2949
Joined: Mon May 05, 2008 12:16 pm
Location: Bordeaux (France)
Full name: Julien Marcel

Re: Fabien's open letter to the community

Post by JuLieN »

bob wrote:Let's take Crafty. Which was, originally a bitboard version of Cray Blitz. And to further complicate it, it was ported from FORTRAN to C. The first step was FORTRAN to C, then from mailbox to bitboard. Is that a "rewrite" Hardly. That is a translation, just as converting from German to English is not a "rewrite".
Allow me to ask a question that might look naive, Robert (I'm not a computer scientist), but isn't a translation from a computer language to another called a "compilation"? (Compilers do take a listing in a language and translate it to another, usually assembly language). Though maybe this can't be called "compilation" when it's done by hand?
Last edited by JuLieN on Wed Jan 26, 2011 7:07 pm, edited 1 time in total.
"The only good bug is a dead bug." (Don Dailey)
[Blog: http://tinyurl.com/predateur ] [Facebook: http://tinyurl.com/fbpredateur ] [MacEngines: http://tinyurl.com/macengines ]
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Fabien's open letter to the community

Post by bob »

SuneF wrote:
Matthias Gemuh wrote:
I have always said that changing the infrastucture of move generation (e.g. from mailbox to bitboards) and then adapting (or "translating") the remaining source code is just another form of "copy and paste".
The result of the adaption is not a new engine.
As a chess programmer, I know what I'm talking about.

Matthias.
Well YMMV, I can see you and Fabian's point if it is 100% functionally equivalent. I very much doubt it will be 100% equivalent though. Changing the stuctures will mess everything up and in that process you will probably also try and improve on some of the ideas.
But if you think this is "just another form of copy and paste" I'd like to see you "copy" Crafty to a mailbox version. :-)
The inverse has already been done as Crafty came from a mailbox program... The eval would be a lot of work. But the final "numbers" it produces would be the same, talking about centipawn results. Converting Crafty to another language like PL/1, or ADA would be a _major_ effort, but you would end up with the same program... And I do not call that "original work" ever...



Regardless of whatever copy right violation issues may be involved here, I still would not call the converted engine a clone or derivative. It would be too different for that.
And yes Matthias I know what I am talking about too, I have tried to convert Frenzee to mailbox - I call it Bandit and it is playing like crap in spite of my best efforts :roll:
bob
Posts: 20943
Joined: Mon Feb 27, 2006 7:30 pm
Location: Birmingham, AL

Re: Fabien's open letter to the community

Post by bob »

SuneF wrote:
Matthias Gemuh wrote: 1) Crafty is not what I personally would pick for convertion (size of code).
Fair enough. But Fruit was no small program to convert either.
Matthias Gemuh wrote: 2) Convertion is so much work that many people would do it only if they want to go commercial.

Convertion has the advantage that you know how strong "your" engine will be, if you don't mess up something.
You mention 100%. Why 100% ? Does 90% not qualify for cloning ?
To be functional equivalent it must be 100% identical in its output. That's was the argument as I understood it from Fabian. Because if it's not copied code and it is not performing the same, then by what metric are you going to identify them as being the same?
Basicly all programs are 90% the same anyway, all using hashing, nullmove, iterated deepening, mobility eval etc...
I worry with you strict definition of things that there are no original engines left, we are all cloning eachother basicly, even Fruit is just a few percent original code by this strict definition.

So I think that makes not much sense. The problem for us, are the ones that take Fruit or Ippolit, change a few eval weights, add another extension and call it their own engine. These are the ones we should look out for.
Matthias Gemuh wrote: BTW, when DanChess used substantial amounts of adapted Crafty eval, it was condemned as a clone :twisted: :!:

Regards,
Matthias.
Right there are various degrees. I don't know about this specific case but in general copying or reusing code is the key thing to avoid.
I didn't interpret his comments in that way. Suppose you take a good work of fiction such as "Ice Station" by Matt Reilly (one of my favorite authors). You could translate the book from English to something else (French, Russian, German, etc). You could change the basic setting from the arctic to a desert, you could change the main character from Shane Schofield to Donnie Dumbass, you could change the enemy combatants from the SAS and French to Spetsnaz and Chinese, etc. Is this now a new and original story? Underlying plot is the same, only the names and locations have been changed.

So taking fruit, rewriting it to use bitboards does not pass the "original work" litmus test...