Below is a note that I sent to the WordNet-Similarity mailing list,
and will slowly circulate around to some of our other packages...NSP,
SenseClusters, etc. The idea is to try and provide some more
information about the GPL, and also generate some discussion if anyone
has any particular concerns about this form of license.

Most of our packages have a command line interface available, so that
discussion below applies to most if not all of our packages (you'll
see where command line fits into the picture here, and why it's an
interesting angle with respect to the GPL). On the other hand, most of
our packages do not have web interfaces, so that discussion may not
always apply, but it might make the point that we should think about
providing more and better web services for some of our
packages....there are always concerns about licensing and portability,
and providing them via a web service of some kind might well solve
many or most of those...

In any case, comments and questions are most welcome.

Ted

-------------------------------------------------------

Greetings all,

I thought it might be good to post some informal musings on the GPL
and what it means for the use and redistribution of WordNet-Similarity
(or any other package that uses the GPL).

The GPL is the General Public License, sometimes called the CopyLeft,
and that is the license under which WordNet-Similarity is distributed.
You can read the formal language within our package (GPL.txt in the
main directory) or here :

http://www.gnu.org/copyleft/gpl.html

What does the GPL mean? Well, it means a few things ... you can use
this software for any purpose you want, and you get the source code to
study or modify, in short, you can do whatever the heck you want with
it as a user.

Now, if you decide to distribute what you have done using
WordNet-Similarity, that's where the GPL kicks in. What the GPL says
is that you can redistribute WordNet-Similarity as we provide or your
modified version, if you do the following :

1) distribute or make easily available your modified version of the source code

2) retain the original copyright/author information

3) your modified version of the code must continue to use the GPL, and
if your modified version of the code is embedded into a larger program
then that whole program must also use the GPL (** this is where there
is lots of confusion, and it centers around what it means to be
"embedded", and we'll try and clarify here shortly. Note that I'm
using embedded in a very informal non-computatinal sense here, meaning
that it's just part of a bigger system in some way **)

That's pretty much all that you are required to do.

Now, some folks balk at the third condition above, and there can be
good reason for that, especially if one is working at a company or
organization that doesn't release source code or doesn't use the GPL
in general. If that's the case, you can actually still use GPL code,
you just can't modify it and then redistribute it. That may seem quite
limiting, but in fact it might not be quite as bad as it seems at
first...

In fact you can still use GPL code and redistribute code that uses the
GPL without having to use the GPL in your own code that does this, as
long as you do this the "right" way. This requires a bit of planning
and perhaps some conscious decisions on the software engineering side,
but it can be done. More on that shortly.

Now, if you modify WordNet-Similarity and you want to redistribute
that modified version, that needs to be done following the GPL. That
means distribute the source code, and keep the modified version under
the GPL. No way around that, and we'd be happy to see new and improved
versions of Similarity spring up in this way. :)

But, if you simply want to use WordNet-Similarity within a program or
package that does not actually modify WordNet-Similarity, you can do
that by keeping an appropriate distance from WordNet-Similarity. This
is where a bit of computer science terminology comes into play, but
the basic distinction between distributing a modified version of
WordNet-Similarity and simply using the existing one depends on the
address space.

If your program includes WordNet-Similarity in its virtual address
space, that program needs to follow the GPL. If your program uses
WordNet-Similarity but does not have it within its address space, your
program does not need to use the GPL, although WordNet-Similarity is
still governed under the GPL.

How can WordNet-Similarity be kept at an appropriate distance, so that
the program that uses it does not need to itself follow the GPL? There
seem to me to be two ways of doing that...

1) via programmed calls to the command line interface. In perl, for
example, you can make calls in your program like this:

system("similarity.pl --type WordNet::Similarity::jcn dog cat")

The effect of the system function is to create a new process (address
space) to run similarity.pl, and so your program that does this does
not need to use the GPL.

2) via programmed calls to our web interface. There the process
running similarity.pl is actually on our server, so it's nowhere near
your address space. :)

Now, if you are using the API functions that WordNet::Similarity
provides, then you are probably at a point where your address space
will include WordNet::Similarity, so your program would need to be
licensed with the GPL if you wanted to redistribute that program....

Now, please understand that this is meant to be an informal
description, and mostly as a way to get people thinking about this
issue. I have used some of my own terminology above just in an effort
to explain, so you should certainly consult http://www.gnu.org for
more definitive information.

So...you've read this far and you are wondering, should you be
concerned about the GPL at all?

If you have not redistributed WordNet-Similarity then there is nothing
to worry about. You can use it for any reason you want, you can look
at the source code, you can modify it, whatever you like. :)

If you have redistributed WordNet-Similarity in a program or package
that uses the GPL and retained the GPL, no problems there. You can
even sell that for money if you like and we won't ask for a dime. :)

If you have distributed a program that uses WordNet-Similarity under
something other than the GPL, that's where we all need to be a bit
careful. If you have mainted an "appropriate distance" then even that
is ok, if you have not, then perhaps we should talk. :)

We do not have a team of lawyers waiting to sue people, btw. If you
are wondering about some of these redistribution issues, please feel
free to bring them up on this list or privately, we'd be happy to
discuss them.

Also, we are especially interested in the opinions of people who have
felt constrained by the GPL in some way, and might have changed their
plans for using WordNet-Similarity because of the GPL. If that's the
case, we'd really like to hear from you.

Finally, if I have messed up any of the above, please don't hesitate
to correct or comment on it. I think it's best that we discuss these
sorts of issues from time to time, just to make sure everyone is
thinking of them.

Most of us aren't lawyers, and this sort of stuff gets pretty
complicated, and it can take a little time to truly understand what
boundaries are established by the GPL or any other license.

Cordially,
Ted

--
Ted Pedersen
http://www.d.umn.edu/~tpederse

Reply via email to