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