Edit: This question has been revised into a more specific question here that does not muddy the waters by bringing up the difficulties of supporting scientific software financially. Please see the new question for a clearer explanation of what I'm trying to get at in this question.

I'm a data-scientist in the general field of neuroscience, and, as part of my research, I write a lot of scientific software that is intended to be used and improved by the scientific community. I have traditionally licensed all of this software under the GPL.

Lately, I have been reading a lot about the AGPL, the SSPL, and the various CC licenses. This interest is not idle: I'm aware of at least one company that has considered using my software basically verbatim as part of a commercial web-service and charging other scientists/clinicians for its use.

I don't much like this idea for the usual reasons: I've developed the software in the spirit of advancing public science understanding and making the scientific process more transparent; if a company wants to use my software in a manner not aligned with these goals, I want some of the money they make to go back to the scientific community, which altruistically funded and supported the software's development in the first place.

It's worth noting for some context that grants to develop scientific software are rare, difficult to obtain, and generally do not provide very much support. Nor does scientific software development usually provide a path toward supporting one's own research with the software due to the open nature of science. (And, for the most part, we don't want other scientists or hobby-scientists to pay for our software or even for our help using it.) In short, our model is very different than that of MongoDB or other commercial software companies that tend to embrace open-source.

In addition, I think there is at least one concern not addressed by the GPL that is specific to scientific software: If company that modifies my software then provides it as part of a web-service, other scientists cannot guarantee that the company has not broken a scientifically-critical part of my code. The company may be inadvertently providing incorrect scientific conclusions to other clinicians or scientists. If I were to use the AGPL license, the company would at least be forced to make these modifications public so that researchers could determine for themselves if the product they were using was actually equivalent to the software I painstakingly wrote, tested, and published.

All of this leads up to my questions: (1) are there resources that discuss the professional/legal ramifications of these licenses specifically in the context of scientific work? and, (2) given that I don't have funds to have a lawyer write a custom license, how can I ensure that the kind of commercial mis-use I've described above is prohibited? I've spent several days reading discussions about the SSPL and related licenses, but I feel that all of the discussion centers around non-scientific software (and mostly around commercial software) and thus miss the mark. My intuition so far is that the best choice for me would be to license the software under GPLv3 + CC-BY-NC and to offer to license the software under negotiable conditions with anyone interested in commercial use. (Edit: I did a bit more reading and apparently Creative Commons licenses are not (any more?) compatible with GPL licenses. Alternately, it seems that the Commons Clause could do what I want; though I'm aware this is not generally considered open-source.)

Also, for the record:

  • I'm looking for general advice as well as specific resources; I do not feel that I've been able to find much discussion of scientific software licenses online.
  • I am not concerned with the relationship between the software and publications; I don't need the license to require co-authorship or citations or anything, I just want commercial companies to use/distribute the software in a scientifically responsible way, and, when appropriate, for some of the money made by commercial companies to be returned to the scientific community.
  • I'm aware that relicensing my software does not prevent a company from using previous versions of the software that were licensed under the GPL. I don't see this as an issue.
  • I'm more worried about the scientific misuse issue than the issue of commercial profit; it seems to me that the AGPL is the least restrictive change to the GPL that solves this.

Firstly, welcome to OpenSource.SE, and thanks for a very nicely-written first question. I'm aware that not everyone likes it, but it gets a +1 from me.

Your basic problem is that free licences are incompatible with restrictions on commercial use. The issue is discussed here, in other OS.SE questions, and in the GPL FAQ, but it boils down to the idea that one freedom users should enjoy is the right to use software commercially, either by using it in a commercial enterprise or selling it as a product.

How copyleft software protects the freedoms of users down the line is by mandating that people who sell the software on must provide their downstream users with source and similar rights to those they themselves enjoy. This means that in practice selling copyleft software is a business with very slim margins. If they're simply re-selling your software, their users can get the same software from upstream (ie, you) at no cost. If they're making significant changes to your software, the purchaser of the first copy they sell can then redistribute it for free if they so choose; or many users can club together to purchase it once, then each of them gets a copy. Neither business model lends itself well to the sort of user abuse we regularly see from distributors of proprietary software.

The Commons Clause (which should not be confused with Creative Commons licences) is a way of making software non-free. It is incompatible with the GPL, and if you try to distribute something under GPLv3+CommonsClause then depending on the reading of the licences you either render the Commons Clause ineffective (under GPLv3 ss 7, 10) or you render the software non-redistributable (GPLv3 s12). CommonsClause, along with the SSPL and several other recent "freeish" licences, have a bad reputation in the some parts of the community, and will likely make your software unusable even in places that are GPL-friendly (disclaimer: I wrote that article, though I didn't give the talk it describes).

So depending on whether your software is something people actually use on their computer, or something that they are likely to interact with over a network (Software-as-a-Service), choosing the GPL or AGPL respectively best protects the freedoms of the wider community while still allowing your software to be free-as-in-freedom.

I just want ... some of the money made by commercial companies to be returned to the scientific community.

No free licence will require this; they are about freedom, not money.

  • Thanks for responding! Would you be willing to edit your answer to address my specific concerns about scientific malpractice? (Or are you saying that this kind of ethical issue cannot be addressed using open/free licenses?) This is the main thing I am hoping to get advice about. Currently, your answer reads more like a general piece of advice for someone writing generic open-source software--i.e., software without additional scientific/ethical concerns about its use. (The money issue is minor.) Also, could you explain why you say that you're "aware that not everyone likes" this question? – user16054 Apr 5 at 10:18
  • I don't know that I understand your specific concerns about scientific malpractice. There's increased awareness that closed code means nonreproducible papers, but you're planning on publishing under a free licence, thus anyone wanting to reproduce can get the code from you regardless of who else is trying to sell it, so that's a non-issue. If you can be concrete about your "specific concerns" I will try to address them. As for "not everyone likes it", I can see that your question has attracted a downvote - but the upvotes outweigh it. – MadHatter Apr 5 at 11:22
  • Sure; in fact, in rereading my question, I realized that I had muddied the waters a lot by bringing up the whole compensation/money issue as well--this is not really the point of the question, just a minor gripe. I've revised the question considerably in light of your comments. Let me know if you still have questions about what concerns me. TL;DR as a scientist I have a responsibility to protect my work from misuse that competes with the responsibility to make software completely open/free; the possible consequences of allowing misuse are not trivial. How do I address both responsibilities? – user16054 Apr 5 at 12:09
  • We have a phenomenon round these parts, the chameleon question, which changes as successive generations of answers cause successive refinements of the question. I agree that your question is better now - as you say, the commercial issue, which my answer focussed on, muddied the waters - but it's also a different question, which makes my answer a bit out of place. So I'm about to roll back your question to the previous version... – MadHatter Apr 5 at 12:40
  • Your edit will still be in the wiki history, and I strongly recommend you use that to write a new question, linking to this one, but focussing instead on the scientific responsbility vs. freedom argument, which I admit I find fascinating. You should probably also consider accepting an answer to this question, so it can be put to bed, and we can move on to the new one. – MadHatter Apr 5 at 12:43

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.