It is currently Sat May 10, 2025 11:45 pm

All times are UTC - 8 hours [ DST ]




Post new topic Reply to topic  [ 34 posts ]  Go to page Previous  1, 2
Author Message
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #21 Posted: Mon Jan 09, 2012 5:53 pm 
Lives in sente

Posts: 1045
Liked others: 0
Was liked: 182
Maybe it would help if I gave a simple example from go. A situation that AFAIK does not currently exist but could exist.

Pachi is open source. You can download the source and complie it (they don't provide run execs). But Pachi is just a go playing engine. You can't run it to play a game of go. You need a shell application for playing go that would call Pachi to make the moves.

OK, somebody could write such a shell, lets call that Goex. Goex could be a "commercial" product, could be sold, would not have to be open. However, because it is using an open source component it would have to provide the source code for that open component. Not the rest of Goex, just the Pachi part. If to make this work, a modified version of Pachi was needed (something attached to Pachi) those modifications would/should be open and source code provided.

Perhaps many of you think that for a program to run all of its parts must be closely connected (compiled together, at least link edited together). That is not the case. But let's not go into the how of dynamic calls, pseudo static calls (dynamic only the first time), etc.


This post by Mike Novack was liked by 2 people: Marcus, Suji
Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #22 Posted: Mon Jan 09, 2012 6:19 pm 
Gosei

Posts: 1387
Liked others: 139
Was liked: 111
GD Posts: 209
KGS: Marcus316
Thanks, Mike! As a programmer, I was struggling to come up with a way to describe exactly what you just did. That examples agrees with my understanding of the GPL.

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #23 Posted: Tue Jan 10, 2012 3:30 am 
Lives in sente
User avatar

Posts: 844
Liked others: 180
Was liked: 151
Rank: 3d
GD Posts: 422
KGS: komi
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".

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #24 Posted: Tue Jan 10, 2012 4:01 am 
Lives with ko
User avatar

Posts: 295
Location: Linz, Austria
Liked others: 21
Was liked: 44
Rank: EGF 4 kyu
GD Posts: 627
Mike Novack wrote:
Maybe it would help if I gave a simple example from go. A situation that AFAIK does not currently exist but could exist.

Pachi is open source. You can download the source and complie it (they don't provide run execs). But Pachi is just a go playing engine. You can't run it to play a game of go. You need a shell application for playing go that would call Pachi to make the moves.

OK, somebody could write such a shell, lets call that Goex. Goex could be a "commercial" product, could be sold, would not have to be open. However, because it is using an open source component it would have to provide the source code for that open component. Not the rest of Goex, just the Pachi part. If to make this work, a modified version of Pachi was needed (something attached to Pachi) those modifications would/should be open and source code provided.

Perhaps many of you think that for a program to run all of its parts must be closely connected (compiled together, at least link edited together). That is not the case. But let's not go into the how of dynamic calls, pseudo static calls (dynamic only the first time), etc.


That's a common misconception about how the GPL works. Technical implementation has nothing to do with the legal requirements of the GPL.

If you make a derivative work, you have to distribute it (and all of it) under GPL (or not distribute it at all). It's as simple as that.

It gets complicated when you ask "what's a derivative work?". What you describe is clearly a derivative work. It doesn't matter at all how you link the programs together, statically or dynamically linking a library, communicating via IPC or simply starting the program and communicating over stdin/stdout doesn't make a difference legally. 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>

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #25 Posted: Tue Jan 10, 2012 4:12 am 
Gosei
User avatar

Posts: 1585
Location: Barcelona, Spain (GMT+1)
Liked others: 577
Was liked: 298
Rank: KGS 5k
KGS: RBerenguel
Tygem: rberenguel
Wbaduk: JohnKeats
Kaya handle: RBerenguel
Online playing schedule: KGS on Saturday I use to be online, but I can be if needed from 20-23 GMT+1
http://en.wikipedia.org/wiki/GNU_Genera ... ived_works

_________________
Geek of all trades, master of none: the motto for my blog mostlymaths.net

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #26 Posted: Tue Jan 10, 2012 5:17 am 
Tengen

Posts: 4382
Location: Caldas da Rainha, Portugal
Liked others: 499
Was liked: 733
Rank: AGA 3k
GD Posts: 65
OGS: Hyperpape 4k
flOvermind wrote:
It gets complicated when you ask "what's a derivative work?". What you describe is clearly a derivative work. It doesn't matter at all how you link the programs together, statically or dynamically linking a library, communicating via IPC or simply starting the program and communicating over stdin/stdout doesn't make a difference legally. Goex needs a custom version of Pachi, therefore Goex is a derivative work of Pachi, so it has to be put under GPL.
As RBerenguel's link indicates, it's pretty common to think that it definitely does matter how the program is linked, whether it uses IPC, etc, etc. That may be wrong, but you're not really addressing what seems to be the prevailing opinion--you're just dismissing it out of hand.

_________________
Occupy Babel!

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #27 Posted: Tue Jan 10, 2012 6:11 am 
Lives with ko
User avatar

Posts: 295
Location: Linz, Austria
Liked others: 21
Was liked: 44
Rank: EGF 4 kyu
GD Posts: 627
hyperpape wrote:
As RBerenguel's link indicates, it's pretty common to think that it definitely does matter how the program is linked, whether it uses IPC, etc, etc. That may be wrong, but you're not really addressing what seems to be the prevailing opinion--you're just dismissing it out of hand.

Ok, perhaps my formulation was a bit misleading. I'm not saying the method of the communication is completely irrelevant. A statically linked program is definitely a derivative work, but linking via an IPC mechanism may still be a derivative work. Communication mechanism is one criterion, but not the only one.

I'm just trying to point out that merely the act of choosing a sufficiently loose linking method does not put you on the safe side.


From http://www.gnu.org/licenses/old-licenses/gpl-2.0-faq.html#MereAggregation:
Quote:
Mere aggregation of two programs means putting them side by side on the same CD-ROM or hard disk. We use this term in the case where they are separate programs, not parts of a single program. In this case, if one of the programs is covered by the GPL, it has no effect on the other program.

Combining two modules means connecting them together so that they form a single larger program. If either part is covered by the GPL, the whole combination must also be released under the GPL—if you can't, or won't, do that, you may not combine them.

What constitutes combining two parts into one program? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. 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.

The question is what is considered "intimate enough". If you invent a completely new communication protocol and modify the program to support it, that certainly qualifies as "exchanging complex internal data structures". If you use a standardized protocol (like in the GTP example), I'm pretty sure you're on the safe side, especially if the program already supports the protocol. Anything in between... who knows?


Quote from the GPLv2 (also quoted on the wikipedia article, emphasis mine):
Quote:
You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

...

b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

...

These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

So if you need to modify a program to work with your product, the situation is simpler: The whole is covered by GPL. That directly contradicts the example of Mike.

The relevant point here seems to be the distribution as a whole. If you distribute it separately, you're back to the question of whether the communication is intimate enough. Of course there is also the question what counts as "separate distribution". If you just produce two separate software packages, but any user must download both to get anything meaningful, then it probably depends on the judge whether that is considered separate distribution or merely an evasive action.

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #28 Posted: Tue Jan 10, 2012 6:31 am 
Tengen

Posts: 4382
Location: Caldas da Rainha, Portugal
Liked others: 499
Was liked: 733
Rank: AGA 3k
GD Posts: 65
OGS: Hyperpape 4k
That's helpful, flOvermind.

_________________
Occupy Babel!

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #29 Posted: Tue Jan 10, 2012 7:54 am 
Gosei

Posts: 1387
Liked others: 139
Was liked: 111
GD Posts: 209
KGS: Marcus316
After reading through and correcting my misconceptions ... I find I have no use for GPL'd code, and I now have a better understanding of why it has the reputation it has among commercial outfits.

All this licensing stuff is a part of why I no longer code for a living, and have lost much of my interest even in personal projects.

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

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #30 Posted: Tue Jan 10, 2012 8:44 am 
Lives in sente

Posts: 1045
Liked others: 0
Was liked: 182
flOvermind wrote:

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs.


Might I suggest you reread what I wrote (about what would or would not have to be made open)


Regardless of whether the open program (or part of a program like a function) used just these legal methods of communication a shell could be written that did. That shell would call (or in the case of a function be linked) and it (the shell) would have to be made open. I said that. Why are you expanding that to "whatever calls that shell has to be open"?

When you call (for execution) a program from the command line supplying a number of run time parameters "something happens" (the system does a number of things before turning control over to the invoked program). If you know what those things are you can write code that does excatly the same thing. The program eventually called "doesn't know" whether it was invoked from the command line or another program.

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #31 Posted: Tue Jan 10, 2012 12:25 pm 
Lives in gote

Posts: 302
Liked others: 70
Was liked: 8
Rank: DDK
KGS: Sujisan 12 kyu
OGS: Sujisan 13 kyu
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.

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #32 Posted: Tue Jan 10, 2012 1:09 pm 
Lives in sente

Posts: 1045
Liked others: 0
Was liked: 182
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.


This post by Mike Novack was liked by 2 people: RBerenguel, shapenaji
Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #33 Posted: Wed Jan 11, 2012 4:26 am 
Lives with ko
User avatar

Posts: 295
Location: Linz, Austria
Liked others: 21
Was liked: 44
Rank: EGF 4 kyu
GD Posts: 627
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).

Top
 Profile  
 
Offline
 Post subject: Re: Plagiarism and Computer Engines
Post #34 Posted: Wed Jan 11, 2012 7:15 am 
Lives in sente

Posts: 1045
Liked others: 0
Was liked: 182
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).

Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 34 posts ]  Go to page Previous  1, 2

All times are UTC - 8 hours [ DST ]


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group