Re: SWI-Prolog is open source

Michael Ben Yosef <[email protected]>
Newsgroups gmane.comp.ai.prolog.swi
Message-ID <CABnaNcrn3t2CfZoDBnfNwEV4=9VcPc7m5aYB864ubd=C-z1uKQ@mail.gmail.com>
I also agree with everything Paulo Moura says, even though I am in the
camp that wishes SWI-Prolog would stay closer to ISO Prolog.

But I think there is something that needs to be clarified and this is
a good opportunity to do so. Quoting Paulo:

> This document includes the following sentence:
>
>         "And, of course, SWI-Prolog is open source, so you are free to fork it under the conditions of the license."
>
> Is worth repeating: SWI-Prolog is open source. This means that:
>
> - Jan is sharing the source code of his hard work (it didn't have to)
> - Jan choose an open source code license that allows others to use, modify, and redistribute changes to his work (it didn't have to)

Although the last point is technically correct, it is actually not
possible to create a "usable" fork of SWI-Prolog under its current
license conditions. I mean that such a fork would not be "usable" in
the sense that any Prolog source code in the system that is modified
by the forker would have to be released under the GPL, meaning that
the forked Prolog system could only be used to develop GPL-licensed
software. This is because SWI-Prolog's linking exception (reproduced
below) does not grant the right to extend itself to third parties
(http://www.swi-prolog.org/license.html):
--QUOTE--
As a special exception, if you link this library with other files
compiled with a Free Software compiler to produce an executable, this
library does not by itself cause the resulting executable to be
covered by the GNU General Public License. This exception does not,
however, invalidate any other reasons why the executable file might be
covered by the GNU General Public License.
--UNQUOTE--

Since modifying and redistributing a Prolog source code library from
SWI-Prolog is *not* linking it "with other files compiled with a Free
Software compiler to produce an executable", the exception does not
apply and so the GPL does. The GPL regards such a modification as a
"work based on the Program" and so the redistributed version must
itself be released under the GPL.

Some projects use a GPL linking exception which explicitly allows
itself to be extended to derivative works. For example, the special
exception of the GNU Classpath
(http://www.gnu.org/software/classpath/license.html), which is
reproduced below, does this in its last two sentences (emphasised by
me):
--QUOTE--
Linking this library statically or dynamically with other modules is
making a combined work based on this library. Thus, the terms and
conditions of the GNU General Public License cover the whole
combination.

As a special exception, the copyright holders of this library give you
permission to link this library with independent modules to produce an
executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
module. An independent module is a module which is not derived from or
based on this library. >>>If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this exception
statement from your version.<<<
--UNQUOTE--

In keeping with the spirit of Paulo's message I want to emphasise that
Jan (or, more precisely, the University of Amsterdam) has the right to
release SWI-Prolog under whatever license he (or it) wishes. We are
all, I'm sure, grateful to be able to benefit freely every day from
Jan's incredible work.

Furthermore, I think we can all agree that making an open source
project harder to fork in this sense is not an unreasonable thing to
do. Nonetheless, Jan, it would be helpful if you could clarify if that
is indeed part of the intent behind SWI-Prolog's special exception as
it currently stands. If not, adding a few words to it, to the same
effect as those two sentences in the GNU Classpath license above,
might help us pedants sleep a bit better at night. :-)

Kind regards,

Michael
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.