[ View Thread ] [ Post Response ] [ Return to Index ] [ Read Prev Msg ] [ Read Next Msg ]

BGonline.org Forums

Is XG violating GNUBG GPL?

Posted By: Jack Mack
Date: Saturday, 11 March 2017, at 9:09 a.m.

The entire article I had referred to in my previous article on this subject is quoted below, but let me "summarize" ala Chow anyway for any feeble minded:

1- Xavier had admitted that early versions of XG were based on GNUBG but that later on XG was completely reprogrammed.

Anyone is free to believe or not that XG was later reprogrammed to "NOT USE GNUBG GPL CODE" but, based on the observable evidence, I personally dont't believe Xavier!

Aside from that, since early versions of XG incorporated GPL code from GNUBG, XG's code should for those early versions should be GPL also. So, let have the source code of those early versions of CG made public!

2- Murat has provided numerous (and currently, infinitely reproducible) examples of the resigning error bug shared by both bots.

3- Murat has demonstrated with numerous (and currently, infinitely reproducible) examples that the resigning error in question is not due to the bots' not realizing "gin-positions". In other words, both bots display behavior such as picking any one legal move from among equally rated moves yet still fail to resign knowing so!

4- Murat has provided examples of both bots resigning more points than necessary (i.e. resigning a gammon when gammons don't count).

5- Murat has documented that the above observations had been shared by/among people other than just Murat.

6- Being a life-long (i.e. since 1980's) computer programmer, Murat argues that two different software sharing such bugs is akin to dozens of exact spelling/punctuation errors in "a plagiarized math PHD Thesis" (my embellishment :))

All this is enough for me to conclude that Xavier/XG is incorporating GNUBG GPL code in violation of the condition to make XG's source code also GPL.

I'm not yet asking for my money back that I haven't already paid, but when I will purchase XG tomorrow, I WILL LEGALLY REQUEST that Xavier provides in the packaged goods the source code for XG...

That's all there is to it folks. Let's not complicated any further.

And here is Murat's RGB article: (let's see how well you can still ignore it?)

****************************************************************************

This is going to be a long article because I take the issue seriously, so I wanted to provide enough background and enough examples before I make comments and ask for comments back.

Resigning issues for each and both bots have been raised numerous times in the past, by several people including myself.

Until recently, they were all seen as merely "bugs" and nuisances for users but some recent comments in another thread made me take a deeper look at it again with a different concern.

Below are some quotes from previous threads and a number of examples for both bots that I will briefly refer to here in my main story (by their labels like A1, B1, etc.) but I also enourage you to read and compare/interpret them all for yourselves. In fact, you may want to find and read the original complete articles and threads.

Let's start looking at the delienated sections below:

In A1, Xavier admits that the first version of XG was based on gnubg but adds that it was later completely reprogrammed and as a proof of it, he claims that XG plays differently and is much faster than GNUBG. I'm not convinced that XG plays differently than GNUBG and speed alone can't prove that XG no longer uses GNUBG GPL code.

In B1, are the 2012 GNUBG examples that I had provided to Petch with my updated remarks indicated by "***". I believe that all bugs are since fixed and that GNUBG does resign correctly like a real word-class bot.

In C1, in response to Thymes position comments, Chase says by adding that both XG and GNUBG resign a gammon even when gammons don't matter. You can find this in my examples also and it's important to point out that other people observed this "odd behavior" common to both bots.

In D1, Paul and Chow are acknowledging and discussing XG's failure to resign properly but Chow wrongly convinces Paul (as he does often do with other people and issues, thanks to his "misearned credibility") that it's a "gin position" checking problem. Yet, it's clear that both bots already check for "gin positions" (i.e. 0% winning chances) in at least some cases as indicated by their subsequently making "random" checker moves (i.e. the first legal moves that the bot evaluates).

In E1, while discussing "user interface bugs" with Paul, I also point out XG's long unfixed resigning bugs and express my suspicion that it may be just another example of bugs which usually indicate poor mastery of code legally or illegally borrowed from other software. In light of Chow's recent comments regarding bugs, my suspicion has grown stronger.

In F1, one way to read Chow's arguments to Michael may be that Xavier has copied GNUBG code into XG but had the same difficulty (as Michael) of navigatingthe GNUBG source code and thus, wasn't able to integrate it into XG cleanly, nor to fix the bugs later...

In G1, following up to his own previous comments, Chow "instructs" that after studying someone else's code, re-programming the same code is not a GPL violation and that doing so is the "surest way of detecting bugs". In other words, if Xavier had done so, he would have detected GNUBG's resigning bugs. As duplicated spelling and punctuation errors are strong evidence of plagiarism in text, duplicated bugs are strong evidence of plagiarism in software. The question is whether any duplicate bugs exist.

In H1, are some examples of XG's resigning bugs that I found in my two sets of 100-game sessions against two different playing levels of XG. Compare them to the sample GNUBG resigning bugs that I had provided to Petch back in 2012.

So, what do you all think, folks...??

MK

=== A1 ====================================================================

On March 17, 2010 at 8:20:51 AM UTC-6, eXtreme Gammon wrote:
: On Mar 16, 11:53 pm, u...@kees-piv.UUCP (Kees van den Doel) wrote:
: > Does anyone have any info on the design/architecture of XG?
: > .....
: > I learned bg on gamesite2000, playing many games against their XG bot. I
: > remember reading it was then based on gnubg. Is this new commercial
: > stand-alone version based on gnubg?
: > .....
: In 2001 when the first version of XG was put on GammonSite, I got a
: jump start on how to program a Neural Network from Gary Wong's gnubg
: 0.02.
:
: However since then. It was completely reprogrammed (using Delphi).
: That's one of the reason is it playing quite differently than GnuBG
: and is much faster.
: .....

=== B1 ====================================================================

Thread header: Why doesn't gnubg resign?

https://groups.google.com/d/msg/rec.games.backgammon/lz966NPOrhY/dnSxu92UQCsJ

On October 14, 2012 at 3:37:22 PM UTC-6, mu...@compuplus.net wrote:
: On October 14, 2012 10:17:29 AM UTC-6, Michael Petch wrote:
:
: > lmao, I have asked you for SGF files. I have been
: > unable to reproduce the behavior. Why haven't you
: > sent any SGF files? I am still waiting.
:
: Oops, my fault. I forgot to save and send them. But
: you can look at the matches that you downloaded from
: my site. Below are several examples from the first
: 21 matches of 25 points, with some comments I added.
: .....
: File 25005-mk27-gb12.sgf
: Game 3 Move 27
: Position ID: 1wAAgN93AAEAAA
: Match ID: AQEgA0AAAAAE

*** Fails to resign game after rolling (in move 28 resigns before rolling) *** BTW: I don't remember if GNUBG ever did or does resign in between *** rolling and moving(?).

> Game 5 Move 30
: Position ID: AwAAYLtPIAIAAA
: Match ID: AwEgA0AAGAAE

*** Fails to resign gammon before and after rolling

*** Game 8 Move 30 *** Position ID: FwAAIG0DAAAAAA *** Match ID: EwElA8AAmAAE *** Fails to resign game after rolling (in move 31 resigns before rolling)

> File 25006-mk36-gb06.sgf
: Position ID: DQAAsO1uAQAAAA
: Match ID: AwEgA0AAYAAE
: Game 8 Move 25

*** Fails to resign game after rolling

> Position ID: AQAA3HYDAAAAAA
: Match ID: AwEgA0AAYAAE
: Game 8 Move 26

*** Fails to resign game before and after rolling

> File 25008-mk14-gb28.sgf
: Position ID: AQAA7G6bAAAAAA
: Match ID: AgEgAwAAEAAE
: Game 2 Move 23

*** Fails to resign game after rolling

> Position ID: BgAAwO0BAAAAAA
: Match ID: sAEgA4ABSAAE
: Game 14 Move 20

*** Fails to resign game before and after rolling

> File 25009-mk50-gb16.sgf
: Position ID: GwAAgNNnMCEAAA
: Match ID: AQEgA2AAcAAE
: Game 6 Move 24

*** Fails to resign gammon before and after rolling

> Position ID: AwAAyOkZTAIAAA
: Match ID: AQEgA2AAcAAE
: Game 6 Move 25

*** Fails to resign gammon before and after rolling

> Here is a strange one. After rolling 22, it knows it
: has 0% chance of winning and makes random moves but
: doesn't resign. On top of that, it lets me recube to
: 32 unnecessarily and then takes, still not resigning.
: Position ID: CAAAJB0AAAAAAA
: Match ID: FAEpAwABkAAE
: Game 10 Move 26

*** Fails to resign game after rolling *** This is a good example of random moves

> File 25015-mk29-gb06.sgf
: Position ID: AQAAYP2DhQAAAA
: Match ID: AQEgA0AAYAAE
: Game 5 Move 21

*** Fails to resign gammon after rolling

> Game 5 Move 22

*** Fails to resign gammon before and after rolling

> File 25017-mk28-gb10.sgf
: Position ID: e1sAABB8bhgYAA
: Match ID: EQEgA6AAwAAE
: Game 9 Move 21

*** Resigns gammon for 4 points when 2 points are enough for me to win *** Not only that but why doesn't it realize that it can save the gammon *** for sure and furthermore, since it still has a piece in my board, *** why doesn't it resign backgammon for 6 points..??

=== C1 ====================================================================

On Thursday, October 22, 2015 at 8:11:58 AM UTC-6, Chase wrote:
: On 10/22/2015 9:03 AM, Justin Thyme wrote:
:> .....
: As to gnubg's resignation, is the problem that it still had winning
: chances, or that it resigned a gammon? My experience with XG is that,
: when gammons don't matter, it will still resign a gammon if it has
: checkers in the outfield but has determined it cannot win. It sounds
: like gnubg does the same.

=== D1 ====================================================================

On June 8, 2016 at 12:37:14 AM UTC-6, Paul wrote:
: On June 8, 2016 at 2:57:19 AM UTC+1, Tim Chow wrote:
: > On June 7, 2016 at 3:23:47 AM UTC-4, Paul wrote:
: > > When the bot rolls out at DMP, the game should be aborted whenever
: > > the DMP result is known. So gammon/backgammon stats should be unknown
: > > or N/A because no game should roll out to a gammon.
: >
: > Checking that a position is gin requires extra programming effort and
: > will probably not speed up the rollout by a detectable amount.
:
: But this extra programming effort is sorely needed! XG often resigns
: far too late, and that is irritating for the user. I wonder if XG's
: competitors have the same issue?

=== E1 ====================================================================

On October 13, 2016 at 7:35:20 PM UTC-6, mu...@compuplus.net wrote:
: On October 12, 2016 at 3:39:34 AM UTC-6, Paul wrote:
: .....
: > This type of issue arises because the XG programming
: > team is small. If Google developed a backgammon interface
:
: Is XG an "interface"? Maybe you would rather or also say
: that if Google claimed to have developed a world-class BG
: bot, it would know how to resign??
: .....
: But obviously it tries to resign haphazardly and fails to
: resign in situations where it knows it has no chance to win
: but it prefers to make random valid moves instead of
: resigning.
:
: I don't know if it's the case here but such bugs usually
: indicate poor mastery of code legally/illegally borrowed
: from other products.

=== F1 ====================================================================

On January 23, 2017 at 5:55:58 PM UTC-7, Tim Chow wrote:
: On January 22, 2017 at 6:02:44 PM UTC-5, Michael wrote:
: .....
: You're saying that it's hard to navigate one's way through the code and
: find where things are actually being calculated. But if Xavier,
: hypothetically, included the GNU source code in XG, then obviously he
: must have at least been able to *find* the relevant snippet of code in
: the first place. So the difficulty of navigating the GNU source code is,
: if anything, an argument *against* Xavier having put GNU source code in XG.

=== G1 ====================================================================

On January 23, 2017 at 6:07:08 PM UTC-7, Tim Chow wrote:
: On January 22, 2017 at 2:28:49 PM UTC-5, I wrote:
: > This doesn't mean anything. Since the GNU code is open source, there
: > is nothing wrong with studying the code to figure out exactly how the
: > algorithm works. If you then re-program the same algorithm yourself,
: > that is not a violation of the GPL.
:
: ..... usually it's because I want to make sure I fully understand the
: algorithm. I will often consult some existing code and make sure that
: I'm getting the same answers, because that's the surest way of detecting
: bugs.

=== H1 ====================================================================

MK Dicedll++ vs XG Roller++

Game 8 Move 33 XGID=--A---------------------e-:4:-1:-1:00:36:5:2:0:10 *** Fails to resign game before and after rolling

Game 19 Move 18 XGID=--B--------------a-abcbcc-:1:-1:-1:44:65:13:2:0:10 *** Fails to resign game before and after rolling

Game 26 Move 37 XGID=--B----------------accaba-:2:-1:-1:64:73:19:2:0:10 *** Fails to resign game before and after rolling

Move 38 XGID=-A------------------cbaba-:2:-1:-1:54:73:19:2:0:10 *** Fails to resign game again before and after rolling

Game 27 Move 18 XGID=-DC-------------a---ccdca-:1:-1:-1:62:77:19:2:0:10 *** Fails to resign game after rolling

Move 19 XGID=-DA-----------------cceba-:1:-1:-1:31:77:19:2:0:10 *** Fails to resign game before rolling but resigns after rolling

Game 44 Move 25 XGID=-AAA---aaa----a----cbbb-b-:2:-1:-1:32:84:42:2:0:10 *** Fails to resign gammon after rolling, makes random moves

Move 26 XGID=-A-----aa---a-a----cabc-b-:2:-1:-1:52:84:42:2:0:10 *** Fails to resign gammon before and after rolling, makes random moves *** This is a good example of random moves

Game 49 Move 18 XGID=-C-A-aA------------dccbaa-:1:-1:-1:65:93:50:2:0:10 *** Fails to resign game after rolling

Move 19 XGID=-C--A-----------a--dccbaa-:1:-1:-1:63:93:50:2:0:10 *** Fails to resign game before and after rolling

Move 20 XGID=-B-----------------dccbaa-:1:-1:-1:31:93:50:2:0:10 *** Fails to resign game before and after rolling

Game 53 Move 25 XGID=aBC---a--b-------bbcbb----:1:1:-1:53:98:54:2:0:10 *** Fails to resign gammon after rolling, makes random moves

Move 26 XGID=-BA--aa--b-------bacbc----:1:1:-1:61:98:54:2:0:10 *** Fails to resign gammon before rolling but resigns after rolling

Game 57 Move 53 XGID=-C---------------------fd-:4:-1:-1:21:102:61:2:0:10 *** Fails to resign game before rolling but resigns after rolling

Game 69 Move 24 XGID=-D-----------------da-aad-:2:-1:-1:52:119:78:2:0:10 *** Fails to resign game before rolling but resigns after rolling

Game 73 Move 19 XGID=-B-----------a---a-gbbb---:1:-1:-1:53:127:84:2:0:10 *** Fails to resign gammon after rolling, makes random moves

Game 96 Move 20 XGID=-D--A--------------ad-aea-:1:-1:-1:21:149:107:2:0:10 *** Fails to resign game after rolling

Move 21 XGID=-B-----------------ad-ad--:1:-1:-1:54:149:107:2:0:10 *** Fails to resign game before and after rolling

Game 97 Move 25 XGID=--A----------------dbabbb-:1:-1:-1:11:151:107:2:0:10 *** Fails to resign game before and after rolling

MK Roller++ vs Extreme Gammon

Game 1 Move 23 XGID=--E----------------gcc-b--:3:-1:-1:41:0:0:2:0:10 *** Resigns okay

Game 3 Move 22 XGID=-BA----------------bcbab--:2:-1:-1:64:8:2:2:0:10 fail before roll, r after

Game 6 Move 37 XGID=-B-----a--a--aa----abb-cc-:5:1:-1:41:12:8:2:0:10 *** Fails to resign game before and after rolling

Game 19 Move 34 XGID=-A-------a----a----ebb-bb-:0:0:-1:63:96:15:2:0:10 *** Fails to resign game after rolling

Game 23 Move 31 XGID=-B----a------------abbbcd-:1:-1:-1:62:100:19:2:0:10 *** Fails to resign game after rolling

Game 27 Move 16 XGID=aBCBa-------c----bbd--b---:0:0:-1:51:113:21:2:0:10 *** Fails to resign game after rolling, makes random moves

Move 17 XGID=-BC-a-a-----c----bbd--b---:0:0:-1:66:113:21:2:0:10 *** Fails to resign game before and after rolling, makes random moves

Move 18 XGID=-BA-a-------b----bcd--b-a-:0:0:-1:41:113:21:2:0:10 *** Fails to resign game before and after rolling, makes random moves

Move 19 XGID=-A-------a--b----bcd--b-a-:0:0:-1:65:113:21:2:0:10 *** Fails to resign game before and after rolling, makes random moves *** Fails 4 times!

Game 47 Move 24 XGID=-AA-A---------------cdbba-:1:-1:-1:44:128:49:2:0:10 *** Resigns okay after rolling

Game 50 Move 25 XGID=-B-------------------c-a--:2:-1:-1:54:130:55:2:0:10 *** Fails to resign game after rolling

Game 68 Move 33 XGID=-B-----------------aaba-a-:1:-1:-1:42:147:91:2:0:10 *** Fails to resign game before and after rolling

Game 81 Move 26 XGID=--AA---------------aacaba-:1:-1:-1:61:162:108:2:0:10 *** Fails to resign game after rolling

Game 87 Move 20 XGID=-A------------------bc--c-:2:-1:-1:54:165:117:2:0:10 *** Fails to resign game after rolling

Game 100 Move 19 XGID=-C--------------------acc-:1:-1:-1:42:183:124:2:0:10 *** Fails to resign game before and after rolling

Move 20 XGID=-A---------------------bc-:1:-1:-1:65:183:124:2:0:10 *** Fails to resign game again before and after rolling

****************************************************************************

Messages In This Thread

 

Post Response

Your Name:
Your E-Mail Address:
Subject:
Message:

If necessary, enter your password below:

Password:

 

 

[ View Thread ] [ Post Response ] [ Return to Index ] [ Read Prev Msg ] [ Read Next Msg ]

BGonline.org Forums is maintained by Stick with WebBBS 5.12.