About derivatives

Code, algorithms, languages, construction...
Post Reply
User avatar
Olivier Deville
Posts: 128
Joined: Mon Jun 14, 2010 6:49 pm
Real Name: Olivier Deville
Location: France
Contact:

About derivatives

Post by Olivier Deville » Thu Aug 11, 2011 8:17 am

Hi all

When ChessWar XVI cycle ended in May, I took a 2 months break.

On the light of recent events, I asked myself whether spending time on computer chess was still worth the effort.

I finally started the Promo division of ChessWar XVII in July, and I found out I still care for computer chess. I am glad I did not give up, and I'm getting very good feedback from the participants of the Promo.

I have deleted several engines from the top division (Rybka was the first to fall). I don't want any derivative from strong open source engines anymore. Some cases are clear cut, but some other ones seem to belong to a grey area.

For instance, I'm wondering what to do of Bison. I only have this statement from Dann Corbit : http://www.open-aurec.com/wbforum/viewt ... it#p193088

Any opinion?

Olivier

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: About derivatives

Post by BB+ » Thu Aug 11, 2011 8:51 am

I think I need to take one of these multi-month vacations too. :)

What is the latest version of Bison? I could find some 9.11 version (Nov 2009) with sources at sdchess.ru, but Dann's post was from March 2010, and mentioned no version number. At a first glance, I would say that it is a derivative of Fruit, though various differences are also apparent. Without further investigation I could be convinced either way, but my initial impression is that it would not meet the "originality" specification for ICGA entry. OTOH, I think it would fit well in a "super-modified" division [that is, it is certainly not merely a "clone"]. Maybe someone should ask Fabien what he thinks.

I agree with Dann that is a significant re-write, but that at the very least it should mention its Fruit heritage (the GPL is rather noted for not requiring attribution in most cases).

User avatar
Olivier Deville
Posts: 128
Joined: Mon Jun 14, 2010 6:49 pm
Real Name: Olivier Deville
Location: France
Contact:

Re: About derivatives

Post by Olivier Deville » Thu Aug 11, 2011 9:15 am

BB+ wrote:I think I need to take one of these multi-month vacations too. :)

What is the latest version of Bison? I could find some 9.11 version (Nov 2009) with sources at sdchess.ru, but Dann's post was from March 2010, and mentioned no version number. At a first glance, I would say that it is a derivative of Fruit, though various differences are also apparent. Without further investigation I could be convinced either way, but my initial impression is that it would not meet the "originality" specification for ICGA entry. OTOH, I think it would fit well in a "super-modified" division [that is, it is certainly not merely a "clone"]. Maybe someone should ask Fabien what he thinks.

I agree with Dann that is a significant re-write, but that at the very least it should mention its Fruit heritage (the GPL is rather noted for not requiring attribution in most cases).
Thanks Mark for the quick answer.

Yes 9.11 is the latest version.

Olivier

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: About derivatives

Post by BB+ » Fri Aug 12, 2011 11:08 am

I sent an email to Fabien, but as legality is not an issue [the Fruit readme.txt allows later GPL versions], and "derivative in the sense of computer chess" seems to have degenerated into a sociopolitical construct, he might not care enough to comment.

Here is most obvious example of "copied code" in Bison:

Code: Select all

const int PawnFile[8] = {-3,-1,0,1,1,0,-1,-3};
const int KnightLine[8] = {-4,-2,0,1,1,0,-2,-4};
const int KnightRank[8] = {-2,-1,0,1,2,3,2,1};
const int BishopLine[8] = {-3,-1,0,1,1,0,-1,-3};
const int RookFile[8] = {-2,-1,0,1,1,0,-1,-2};
const int QueenLine[8] = {-3,-1,0,1,1,0,-1,-3};
const int KingLine[8] = {-3,-1,0,1,1,0,-1,-3};
const int KingFile[8] = {3,4,2,0,0,2,4,3};
For "originality", which is quite strict for the ICGA, I would say that this [and the Fruit/Strelka origins in general] would need to be declared on the ICGA entry form, at which point they could make a more deliberative decision. This is vaguely in line with Larry Kaufman's proposal: The bottom line (in my view) is this: if it is obvious to a knowledgeable observer that you could not have come up with the values you used without having seen those in another program you have made a derivative of that program. My guess is that the ICGA would in turn ask Fabien (if possible) if he was OK with such an entry, but not require him to a be a joint author. But I'm just guessing.

For other purposes, such as ChessWar, one can argue that Bison's source-code distribution under the GPL already satisfies any ethical requirement of attribution, though I (like Dann) would prefer something more direct.

Though it shouldn't matter here, I'd guess the strict legal definition of "derivative" would say that Bison is a Fruit-derivative already from the above code -- one could argue that these arrays were de minimis, though then other fragments would need to be considered (such as evaluation, or history usage in sort.h) before a conclusion could be made. See http://en.wikipedia.org/wiki/Castle_Roc ... hing_Group (with various fragments of Seinfeld) in this latter regard. My suspicion is that Bison would be found to be a "derivative" in this legal sense (surpassing de minimis), but for a rather small amount percentage-wise. In general, the word "derivative" can be used even when there is a quite small overlap -- an analogous historical computer chess example is Berliner asking Hsu to remove 0.3% of this code that was borrowed from HITECH's Cray Blitz simulator [though one should be aware that line-counting is not always the most relevant metric].

User avatar
Olivier Deville
Posts: 128
Joined: Mon Jun 14, 2010 6:49 pm
Real Name: Olivier Deville
Location: France
Contact:

Re: About derivatives

Post by Olivier Deville » Sat Aug 13, 2011 5:37 am

Thanks a lot Mark.

I have asked the same question at TalkChess and the programmers there answered that if I forfeit Bison, I would have to dismiss a lot of other engines.

Therefure I'll probably let it live for now.

Olivier

BB+
Posts: 1484
Joined: Thu Jun 10, 2010 4:26 am

Re: About derivatives

Post by BB+ » Sat Aug 13, 2011 3:51 pm

I skimmed through a number of open-source engines recently, and found maybe 5 or so that explicitly used the Fruit PST scheme (I spot-checked a few other things too, but nothing methodical). Some had attribution to Fruit (or Toga) in a readme, and most were GPL (one might have been public domain, and DolphinChess seems to have no license?!). I think the Bison/Fruit question is merely a subquestion of the whole "Fruit-influence" toward hobby engines. For the ICGA, my sense is that they wish to be quite strict.

I would fully agree that ChessWar should have a different standard, particularly if one goal is to get engine authors to communicate, discuss their ideas, etc. As long as everyone is ethical in attribution, isn't trying to pass off other's work as their own, and such, I would say it's OK. Of course, it's not exactly the open-source competitors that one needs to worry about here...

User avatar
Olivier Deville
Posts: 128
Joined: Mon Jun 14, 2010 6:49 pm
Real Name: Olivier Deville
Location: France
Contact:

Re: About derivatives

Post by Olivier Deville » Sun Aug 14, 2011 5:55 am

Yes you got the spirit of ChessWar indeed :)

Actually I am having more fun with the lower divisions. Authors come to the chat, share ideas, help each other, etc, in a very friendly way.

Thanks once more for you help.

Olivier

Post Reply