Fruit 2.1 vs Strelka 2.0

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

Moderator: Ras

chrisw

Re: Fruit 2.1 vs Strelka 2.0

Post by chrisw »

Surely so. Distribuition clauses will contain such a protection, or more exactly an indemnification against loss by the distributor. The indemnification is only as good as the assets of the programmer however. Programmer got no money? Indemnification worthless.

But this will not be the real concern of the distribution company. His capital value will be the concern. If he wants to borrow money, value the share stock, sell the company or its shares (OS for example went for 6 times turnover, so the multiple can be quite meaningful), then he will be subjected to due diligence, where accountants and lawyers crawl over the contracts, invoices, everything. If they raise suspicions over some of the revenue (because they read also the gossip if they do their job properly) then that revenue will be discounted (at a multiple of 6 or more).

Libellers are not just in danger of sales revenue loss but of heavily leveraged sales revenue loss, as would be the publisher, and in the case of unlawful program status, so would be the programmer. Hence the publisher has to strongly BELIEVE the good status of the program. And the programmer can't risk providing unlawful material either.

It is inconceivable that R3 is not entirely Vas own work/property and breaches no licence, GPL or otherwise.

Imo, banging on about R1 under the global term "R", and denying that the topic is R3 only under pressure, at the time of the R3 release is mischevious in the extreme. Also dangerous and foolish. Not to mention the ethics of an impending pre-tourney programmer vote (C).


tiger wrote:
chrisw wrote:Zach,

Do you seriously imagine Frederik is going to take on publishing Rybka without cast-iron guarantees that it is squeaky clean?

Why risk it?

Do you imagine Vas, if Rybka was just maybe possibly under suspicion, didn't spend all the effort necessary to ensure no possible contamination from other software?

Business is business. Breaches of criminal and/or civil law, unnecessarily, woudl be just dumb. And why woudl it be necessary? Do you imply there isn't sufficient knowledge and capability in the Vas team to be unable to produce independent source code?

Come on.


Chris I forgot to mention that in ALL software distribution contracts I have ever signed in my life, there was a special clause.

The clause states that the author of the program to be distributed guarantees that he owns all the needed rights on the software and that he will protect the distributor against any lawsuit about copyright issues on said software.

So basically the distributor is not taking any risk even if later the copyright is challenged.



// Christophe
Uri Blass
Posts: 10888
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Fruit 2.1 vs Strelka 2.0

Post by Uri Blass »

I can say that different order may lead to the same result(for example
swapping the order between reset killers and reset history and generate legal moves is going to change nothing)

I doubt if you can know the order that things are done in rybka based on strelka's code.

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

Re: Fruit 2.1 vs Strelka 2.0

Post by Uri Blass »

tiger wrote:
kranium wrote:
Uri Blass wrote:
I think that it is not clear and the question what is considered as derivative

I consider parts that are not about chess as unimportant parts and it is stupid to ask everybody to reinvent the wheel so I consider the way the program handle uci commands as unimportant.

The only important stuff is stuff that effect the moves that the program choose(basically evaluation move generator and search)

In these parts you may find significant similiarity between strelka and fruit only in the search and even here we need analysis to decide how much significant because the algorithm is not the same.

The question that we should answer first is how many lines of strelka search functions are taken from fruit in equivalent functions.

A good analysis should comment every line of fruit by different number and comment every line of strelka by equivalent number to make it easy for people to see how many lines are similiar.

Uri
Hi Uri-
i disagree...

do you mean only the evaluation, move generator, and search should be scrutinized? the other code is fair game for anybody who doesn't want to reinvent the wheel?

where in your opinion does a derivative start and end?

as far as the # of lines, just in the example i posted alone, there's more 800 lines (blanks not counted).

regards,
Norm


Unfortunately the GPL does not mention areas where it is fair game to violate it.

Uri wants to know clearly what is considered a derived work of an existing source code. Uri wants full determinism here.

On the other hand, he proposes to subjectively exempt some parts of the code.

Now imagine that by looking closely to the whole source code of Fruit and Strelka we discover that:
- initialization/cleanup code is identical
- parameter reading is identical
- UCI interpreter is identical
- move generation is identical
- search is identical
- selective heuristics are identical
- evaluation is identical
- time allocation is identical
- draw recognizers are the same
...
Uri would probably consider that Strelka is a derived work from Fruit?

Now imagine that it is like that:
- initialization/cleanup code is identical
- parameter reading is identical
- UCI interpreter is identical
- move generation is different
- search is identical for some parts, different for other parts
- selective heuristics mostly identical, with some differences
- evaluation is different but some parts are like Fruit
- time allocation is identical
- draw recognizers are the same
...
Now it's not as clear and one has to imagine how it happened.

If we find that it looks like the second list above, suddenly the "unimportant" parts of the source become an interesting indication of where Strelka comes.

I mean, if we have a few parts of Fruit's search and selective heuristics, a move generator and an evaluation never seen before and finally other parts already seen in Glaurung or Crafty, it's a Frankenstein-like creature that has been built from different sources, with some original work added. Please note that it violates the GPL by using code from Fruit, Glaurung and Crafty.

Now if we have all parts of Fruit (including what Uri calls the unimportant ones) and differences in the move generation, search and even in the evaluation, then it should become clear that this source code has started its life as Fruit, as been progressively modified, and has finally been published under the name Strelka. And naturally it also infringes on the GPL.

So I believe the "unimportant" parts of the code should definitely be taken into account for a fair and informative comparison.



// Christophe
The main problem is that I suspect that you can blame many people that their work is derivative work based on unimportant parts.

I never started from existing program and started to modify it but I clearly started from some variable names and variable functions in tscp
with no content inside them and had to add other variables and other functions not in tscp.

I also later added functions to help me to read pgn files from Crafty
when bob had no problem with it and I talk about deterministic task
of understanding the moves from pgn and not about using book in the same way as Crafty.

There are other non original parts that are not about choosing the moves.

I am sure that many programmers did the same and if you blame strelka based on similiarity tomorrow you may blame me and half of the programmers(Trace started from tscp and I read that the baron also started from tscp when sjeng started from faile when at least I did not start from existing working program).

You can download some source of non original parts of movei together with version 358 from the wbec site and tell me you your opinion about it.

Uri
User avatar
Zach Wegner
Posts: 1922
Joined: Thu Mar 09, 2006 12:51 am
Location: Earth

Re: Fruit 2.1 vs Strelka 2.0

Post by Zach Wegner »

Uri Blass wrote:I doubt if you can know the order that things are done in rybka based on strelka's code.
But as I said in my message, I disassembled Rybka. It IS the same. I'll post the disassembly later today.
Uri Blass
Posts: 10888
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Fruit 2.1 vs Strelka 2.0

Post by Uri Blass »

Zach Wegner wrote:
Uri Blass wrote:I doubt if you can know the order that things are done in rybka based on strelka's code.
But as I said in my message, I disassembled Rybka. It IS the same. I'll post the disassembly later today.
You may be right but I think that it is too late to do something about it today.

The legal status is unclear
You can try to go to court against Vas but I do not think that you will have success in doing it .

Uri
User avatar
tiger
Posts: 819
Joined: Sat Mar 11, 2006 3:15 am
Location: Guadeloupe (french caribbean island)

Re: Fruit 2.1 vs Strelka 2.0

Post by tiger »

Uri Blass wrote:
tiger wrote:
kranium wrote:
Uri Blass wrote:
I think that it is not clear and the question what is considered as derivative

I consider parts that are not about chess as unimportant parts and it is stupid to ask everybody to reinvent the wheel so I consider the way the program handle uci commands as unimportant.

The only important stuff is stuff that effect the moves that the program choose(basically evaluation move generator and search)

In these parts you may find significant similiarity between strelka and fruit only in the search and even here we need analysis to decide how much significant because the algorithm is not the same.

The question that we should answer first is how many lines of strelka search functions are taken from fruit in equivalent functions.

A good analysis should comment every line of fruit by different number and comment every line of strelka by equivalent number to make it easy for people to see how many lines are similiar.

Uri
Hi Uri-
i disagree...

do you mean only the evaluation, move generator, and search should be scrutinized? the other code is fair game for anybody who doesn't want to reinvent the wheel?

where in your opinion does a derivative start and end?

as far as the # of lines, just in the example i posted alone, there's more 800 lines (blanks not counted).

regards,
Norm


Unfortunately the GPL does not mention areas where it is fair game to violate it.

Uri wants to know clearly what is considered a derived work of an existing source code. Uri wants full determinism here.

On the other hand, he proposes to subjectively exempt some parts of the code.

Now imagine that by looking closely to the whole source code of Fruit and Strelka we discover that:
- initialization/cleanup code is identical
- parameter reading is identical
- UCI interpreter is identical
- move generation is identical
- search is identical
- selective heuristics are identical
- evaluation is identical
- time allocation is identical
- draw recognizers are the same
...
Uri would probably consider that Strelka is a derived work from Fruit?

Now imagine that it is like that:
- initialization/cleanup code is identical
- parameter reading is identical
- UCI interpreter is identical
- move generation is different
- search is identical for some parts, different for other parts
- selective heuristics mostly identical, with some differences
- evaluation is different but some parts are like Fruit
- time allocation is identical
- draw recognizers are the same
...
Now it's not as clear and one has to imagine how it happened.

If we find that it looks like the second list above, suddenly the "unimportant" parts of the source become an interesting indication of where Strelka comes.

I mean, if we have a few parts of Fruit's search and selective heuristics, a move generator and an evaluation never seen before and finally other parts already seen in Glaurung or Crafty, it's a Frankenstein-like creature that has been built from different sources, with some original work added. Please note that it violates the GPL by using code from Fruit, Glaurung and Crafty.

Now if we have all parts of Fruit (including what Uri calls the unimportant ones) and differences in the move generation, search and even in the evaluation, then it should become clear that this source code has started its life as Fruit, as been progressively modified, and has finally been published under the name Strelka. And naturally it also infringes on the GPL.

So I believe the "unimportant" parts of the code should definitely be taken into account for a fair and informative comparison.



// Christophe
The main problem is that I suspect that you can blame many people that their work is derivative work based on unimportant parts.

I never started from existing program and started to modify it but I clearly started from some variable names and variable functions in tscp
with no content inside them and had to add other variables and other functions not in tscp.

I also later added functions to help me to read pgn files from Crafty
when bob had no problem with it and I talk about deterministic task
of understanding the moves from pgn and not about using book in the same way as Crafty.

There are other non original parts that are not about choosing the moves.

I am sure that many programmers did the same and if you blame strelka based on similiarity tomorrow you may blame me and half of the programmers(Trace started from tscp and I read that the baron also started from tscp when sjeng started from faile when at least I did not start from existing working program).

You can download some source of non original parts of movei together with version 358 from the wbec site and tell me you your opinion about it.

Uri


If you are inclined to not see the similarities between Fruit and Strelka because you fear that your own work is questionned, then I would say that you are somewhat biased for personal reasons.



// Christophe
Guetti

Re: Fruit 2.1 vs Strelka 2.0

Post by Guetti »

As far as I know crafty in not under the GPL. If you use some parts of crafty, and Bob is informed and has nothing against it, I don't see any problem with that.
I just dropped into this discussion and it is a bit hard to follow. We should stay focused on violation of the GPL.
Last edited by Guetti on Tue Aug 19, 2008 6:24 pm, edited 1 time in total.
User avatar
tiger
Posts: 819
Joined: Sat Mar 11, 2006 3:15 am
Location: Guadeloupe (french caribbean island)

Re: Fruit 2.1 vs Strelka 2.0

Post by tiger »

Uri Blass wrote:
Zach Wegner wrote:
Uri Blass wrote:I doubt if you can know the order that things are done in rybka based on strelka's code.
But as I said in my message, I disassembled Rybka. It IS the same. I'll post the disassembly later today.
You may be right but I think that it is too late to do something about it today.

The legal status is unclear
You can try to go to court against Vas but I do not think that you will have success in doing it .

Uri


You seem to oppose the whole idea that Strelka is a derived work from Fruit, even when you are shown the similarities. Then you oppose the idea that Rybka is almost the same as Strelka (so close that the word clone can apply). Then you say that some part of the code should not be considered as important and should be exempted.

What's next? The font used to display the source is not readable?

And you do not contradict factually the source code analysis that is done.

I would have expected a more objective approach from you, but when I read your other post where you clearly say that you fear that your own program is considered a derived work because you have taken from several open source program, I understand that your point of view is biased.

Uri I expected more intellectual honesty from you. If you do not want to follow the analysis of source code because all the time you fear that someday your own code could comes under scrutinity, then maybe you should not take part in this thread?

Or maybe this thread is going to be of fundamental interest to you as it will help you clean your code?

So, when do we discuss directly the presented evidence?



// Christophe
Guetti

Re: Fruit 2.1 vs Strelka 2.0

Post by Guetti »

tiger wrote:
Uri Blass wrote:
Zach Wegner wrote:
Uri Blass wrote:I doubt if you can know the order that things are done in rybka based on strelka's code.
But as I said in my message, I disassembled Rybka. It IS the same. I'll post the disassembly later today.
You may be right but I think that it is too late to do something about it today.

The legal status is unclear
You can try to go to court against Vas but I do not think that you will have success in doing it .

Uri


You seem to oppose the whole idea that Strelka is a derived work from Fruit, even when you are shown the similarities. Then you oppose the idea that Rybka is almost the same as Strelka (so close that the word clone can apply). Then you say that some part of the code should not be considered as important and should be exempted.

What's next? The font used to display the source is not readable?

And you do not contradict factually the source code analysis that is done.

I would have expected a more objective approach from you, but when I read your other post where you clearly say that you fear that your own program is considered a derived work because you have taken from several open source program, I understand that your point of view is biased.

Uri I expected more intellectual honesty from you. If you do not want to follow the analysis of source code because all the time you fear that someday your own code could comes under scrutinity, then maybe you should not take part in this thread?

Or maybe this thread is going to be of fundamental interest to you as it will help you clean your code?

So, when do we discuss directly the presented evidence?



// Christophe
There is nothing against taking code from an open source programm as long it is no violation of any license and the engine author (is asked in advance!!) and has nothing against sharing some lines of code.

There are open source authors that like to share ideas, or even code, like Tord or maybe under certain circumstances even Bob.

As you come form a commercial standpoint, you may probably not be aware of this concept.
Uri Blass
Posts: 10888
Joined: Thu Mar 09, 2006 12:37 am
Location: Tel-Aviv Israel

Re: Fruit 2.1 vs Strelka 2.0

Post by Uri Blass »

tiger wrote:

If you are inclined to not see the similarities between Fruit and Strelka because you fear that your own work is questionned, then I would say that you are somewhat biased for personal reasons.



// Christophe
I can see the similiarity but I think that people can claim that there is a problem not only with my own work but with the work of many programmers who worked hard to generate their program and did not start by modifying public source.

I remember reading that some even admit that they started from free source working program(when I only started from few constants and few names of functions).

If you claim that Fabien's opinion is not important here then the same is for programs that started as tscp or faile when the author had no problem with it because he thinks that the modification is big enough to consider it as acceptable.

I think that you simply have no basis to ask Vasik to release his source if you are not Fabien.
I think that the best that you can do is to try to convince Fabien to complain and I am not sure if even in this case the court is going to decide for Fabien.

Uri