[Biopython-dev] Developmental policies
bsouthey at gmail.com
Tue Jan 13 16:50:28 UTC 2009
Tiago Antão wrote:
>> I think we must be explicit in this and ensure that any accepted code is
>> BSD-compatible because we can not ensure what people really know. Further
>> the license of any application that Biopython interacts with must be clearly
>> stated and the developer is responsible to get one if it does not have one.
>> That way we know what is included and should help users as well in terms of
>> whether or not they can use some application.
> A point is not clear here to me: If you only interact with an (say
> command-line and web-based) application, is there a problem if that
> application has an unspecified license? There are 3 dimensions here
> that I find important
> 1. If biopython interacts with a application with no license are there
> possible liabilities with regards to the project? The same question in
> regards to users?
I do not think that there is any real difference between the developer
and the user as ignorance is usually not a good defense.
If you use code from another application in your project with little or
no modification (such as rewriting the code into Python) or did
reverse-engineering or even looked at the code then your application
could be controlled by the license of that application. Obviously if it
has a license then you must abide those terms. If it does not have a
license and you do not get permission to use that code then you have
violated the original author's copyrights and you are liable for
damages. Of course, as in one of the most important open-source related
cases in the USA, the Jacobsen v. Katzer case (eg
http://www.groklaw.net/article.php?story=2008081313212422 ) about the
Java Model Railroad Interface (JMRI), those damages may be nothing.
> 2. I would remember that interaction might be library based (with
> linking - where we know problems exist), command-line based (are there
> any problems?) and web-based (are there any problems different from
> the command-line case?).
Unless the application forbids it then there is no problem on how you
actually run the application. As Peter said, web tools also have
conditions that you have keep or you will find yourself locked out.
The main problem is using someone else's code in your project and the
real problem is the actual terms of the code used. Using a function from
that code in yours is a potential violation such as how to parse the
output especially if it is in a binary format. If your code clearly
follows the published documentation or a clean-room approach (see
http://en.wikipedia.org/wiki/Clean_room_design ) was properly used then
there should no problems. Linking only becomes a problem if your code
can be considered a derivative or the license forbids linking such as
the GPL but not the LGPL. However, this is a grey area as evident from
the use of binary drivers in Linux.
> 3. I would suppose (for licensed non-free apps) that some licenses
> might not be clear in regards to this kind of usage. Would it be
> necessary to inspect the licenses in detail?
Yes, you must inspect any license in detail because even downloading the
code can involve or imply acceptance of the terms. Some licenses,
usually for commercial applications, are rather nasty in terms what can
and can not be done like no reverse engineering. Even open source
license like the GPL v3 can have some unexpected side effects (ie
related to patents). Most non-open source licenses (including academic
only licenses) that I have seen related to bioinformatics usually are
aimed at restricting the commercial usage of the code and the subsequent
distribution of it. But you need to see if there are other restrictions
involved that limit the output from that application.
> A strict view regarding software without licenses (ie, no interaction
> at all) would require immediate removal of the fdist code (not very
> important, it is the part that is probably not used by anyone). No
> inclusion of LDNe code. And more importantly no STRUCTURE interaction
> code and no Genepop interaction code (although the file format parser
> that currently inside is OK).
If the interaction is just creating inputs, running the standalone
application and parsing the output, then those interactions should be
okay. Obviously the code to create the input and parse the output must
be free of the application like based on public documentation or a
If the interaction creates a derivative such as when the code of the
application is required in addition to your code then it is not okay.
Further, as Peter commented elsewhere, there needs to be strong
justification to include it into Biopython. Rather I would strongly
suggest that you try to get your code included in the other application
as it may help other users and you don't have to maintain a version of
the original application.
> So, the very pertinent question are:
> 1. Can biopython command-line interact with applications with no license?
Yes, but must not be considered a derivative of the application or it
must do so in terms of the license. For example, AlignACE uses the
Harvard University license where everyone using it must have their own
license or it can be run on a second computer provided that only one
copy is running at a time.
> 2. Is biopython interacting with applications (command-line or web)
> for which the license is not clear regarding interaction with
I do not know the answer to this question because I do not know or use
all the applications involved. However, we do need to create a list of
applications with associated web sites and licenses that Biopython
'interacts' with which would answer this question.
More information about the Biopython-dev