Plagiarism and Computer Engines

All non-Go discussions should go here.
Suji
Lives in gote
Posts: 302
Joined: Wed May 19, 2010 2:25 pm
Rank: DDK
GD Posts: 0
KGS: Sujisan 12 kyu
OGS: Sujisan 13 kyu
Has thanked: 70 times
Been thanked: 8 times

Re: Plagiarism and Computer Engines

Post by Suji »

quantumf wrote:GPL/open source is not relevant to this Rybka case, though, right? My understanding of why Rybka was stripped of its titles was because it allegedly violated one of the rules of the competition, namely that the "game playing" code had to be "original".


Technically, yes they stripped Rybka of the titles based on the now infamous rule #2. The game-playing code must be original. In Rybka, they determined that it wasn't, and that Rybka had some Fruit parts. Even before Rybka played in the world championship though (pre-Rybka 1.0 beta) they found that code from Crafty (another chess engine) was in Rybka. As far as I know, the FSF is looking into the legalities of Rybka, though.

Marcus wrote:But, all this is tangential to the original discussion. Sorry for the derailment. :)


Considering this discussion is entirely civil, this derailment is acceptable since it's all in someway related to the issue. In the computer chess world, i.e. Talkchess, Open-chess, Rybka Forum, and the others this discussion would be over 200 posts, 99% of which would just be hurling insults.
My plan to become an SDK is here.
Mike Novack
Lives in sente
Posts: 1045
Joined: Mon Aug 09, 2010 9:36 am
GD Posts: 0
Been thanked: 182 times

Re: Plagiarism and Computer Engines

Post by Mike Novack »

flOvermind wrote:...........
Goex needs a custom version of Pachi, therefore Goex is a derivative work of Pachi, so it has to be put under GPL.
........

Consider another example: Let's say Goex doesn't need a custom version of Pachi. Let's say it doesn't need Pachi at all, just some GTP-speaking program. It just happens that Pachi speaks GTP. In that case, Goex would probably not be a derivative work, although that hasn't been tested in court.
............

A third example: Now let's assume Pachi does not speak GTP. Completely unrelated with Goex, you can of course release a GPL-licensed fork of Pachi that does speak GTP. This fork will run with Goex (among other GUIs). But, if you implement some extension to GTP that's specific to Goex, and Goex needs these extensions (i.e. doesn't work with other, unmodified, GTP-speaking engines), then you're on thin ice.
..........

<disclaimer>I'm not a lawyer, just a software developer with some experience in dealing with OSS licenses.</disclaimer>


Let's call those a, b, and c

a --- No, the custom version of pachi (the alterations you add to pachi so that goex could use it) must be open sourced. Not goex.

b --- Would definitely not be. Come on now, you are implying that there is even the slightest question about whether the existence of an open source program X means any other program Y would have to be open sources whetehr Y ever interacted with X in any way.

c --- If it was GTP that was modified those extensions must be open sourced. That my motivation for making those specific extensions was so that some non-open source program I planned to write would work easier would not "capture" my non-open program.

Look, you say you are a software developer. Can you not see that your arguement is akin to claiming that if a non-open source program is ever run under an open source operating system this would represent a violation? After all, when that program runs it will be making calls on the operating system for services, calling open source utilites, etc.

I was using the specific example of pachi not only because this is a go forum but also because pachi is just an "engine", not intended or able to run all by itself. It is intended to be called by some go playing program or other as the vehicle that will call pachi (or some other go engine) for its engine. That the site suggests a particular one is besides the point. Yes of course, the distribution of a non-open goex that was going to use pachi in this way would have to include the source code of pachi to be in compliance.
User avatar
flOvermind
Lives with ko
Posts: 295
Joined: Wed Apr 21, 2010 3:19 am
Rank: EGF 4 kyu
GD Posts: 627
Location: Linz, Austria
Has thanked: 21 times
Been thanked: 43 times

Re: Plagiarism and Computer Engines

Post by flOvermind »

Mike Novack wrote:a --- No, the custom version of pachi (the alterations you add to pachi so that goex could use it) must be open sourced. Not goex.
Wrong:
GPL FAQ wrote:But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

If you need to modify the program in order to make it compatible, then you're exchanging internal data structures. If you don't need to modify it, the data structures you're exchanging are not internal.

Ok, there is also the case where you just modify the program to make it more convenient to use, like implementing an IPC mechanism instead of stdin/out, but without changing the actually transmitted information. That would probably be ok.

Mike Novack wrote:b --- Would definitely not be. Come on now, you are implying that there is even the slightest question about whether the existence of an open source program X means any other program Y would have to be open sources whetehr Y ever interacted with X in any way.

I never said that needs to be GPLed, just that it hasn't been tested in court. I certainly hope it doesn't need to be ;)

Mike Novack wrote:c --- If it was GTP that was modified those extensions must be open sourced. That my motivation for making those specific extensions was so that some non-open source program I planned to write would work easier would not "capture" my non-open program.

GTP is a just specification, so the modification to GTP is mostly irrelevant to the license of the programs using it.

What is relevant is whether the communication between the programs is "intimate enough". That's a good question, and I can't really answer it. Anyway, the relevant point is whether your commercial program is considered a derivative work of the GPL program. Static linking is a strong indication that it is. Needing to modify the GPL program so it works with your product is also an indication that it is. If your product also works without the GPL program, or with alternative programs, that's an indication that it isn't a derivative work.

Just linking it via pipes doesn't tell you anything. That's just a technicality. It's necessary for not being a derivative work, but not sufficient.

Mike Novack wrote:Look, you say you are a software developer. Can you not see that your arguement is akin to claiming that if a non-open source program is ever run under an open source operating system this would represent a violation? After all, when that program runs it will be making calls on the operating system for services, calling open source utilites, etc.

The glibc and many other standard system libraries are licensed LGPL exactly for that reason. Some libraries also have special licensing exceptions to allow using them in non-free tools.
Also, if you're programming only against a specification (e.g. the C language standard, the POSIX standard, the X11 protocol, ...), then you're clear. You don't need glibc specifically, just some library that implements the C standard.

Whether calling open source utilities is allowed is a good question. Of course, standard shell utilities are covered by various standards (POSIX, ...), so you don't specifically need the GNU utilities, just some utility that fulfills the specification. If you need a specific GPL utility, that's hairy...

Mike Novack wrote:I was using the specific example of pachi not only because this is a go forum but also because pachi is just an "engine", not intended or able to run all by itself. It is intended to be called by some go playing program or other as the vehicle that will call pachi (or some other go engine) for its engine. That the site suggests a particular one is besides the point. Yes of course, the distribution of a non-open goex that was going to use pachi in this way would have to include the source code of pachi to be in compliance.

Yes, and pachi uses the standard protocol GTP. So if your GUI is using that, you're fine.

The relevant point in your example is the *required* modification of pachi to make it compatible with your GUI. With that, you make your GUI a derivative work legally speaking. If the modification was not required, but only some sort of "improvement", and your GUI would also work with the original version, then you're ok.


All that is perhaps a bit easier to understand if you consider the intention of the GPL:
You get this program completely free, but if you build something on top of it, you have to give your users the same rights.
That could be considered the "cost" of the software. It doesn't cost money, but it costs a "promise" to give your users the same rights.

If the developer of the program wanted it to be usable in a commercial product, it would be licensed LGPL (you may use it commercially, but if you modify it, you have to give back the modifications) or even BSD (you may use it for whatever you want, i.e., free as in beer).
Mike Novack
Lives in sente
Posts: 1045
Joined: Mon Aug 09, 2010 9:36 am
GD Posts: 0
Been thanked: 182 times

Re: Plagiarism and Computer Engines

Post by Mike Novack »

About "intentions" (of the free software movement)

In 2006 we had a house fire. Only the "office" (computer room) room actually burned but the entire second floor had to be gutted for smoke damage. In this fire I lost many things including my record of the free software debates going back to the beginning. I was a subscriber to the journals where the relevant papers/debates were published.

I simply disagree with your interpretation.

However, I agree who knows what courts might do. Lawyers are not the best people when it comes to software and data. ROFLOL once I spent a very hectic week trying to make sense of data obtained from a hostile source under court order. The lawyers knew some of the things that the order had to specify, but every speecification they left out those forced to supply the data took advantage of to make the task harder (if we couldn't extract the data by a certain date we would have had to renew a contract with that hostile source as we wouldn;t be able to turn this business over to somebody else to handle and were legally obligated that these customers be serviced properly).
Post Reply