Picking an open source license

By Douglas, February 6, 2017

The Wikilogic Foundation is interested in building a community with a focus on improving rational thinking. We believe the best way to do this is to distribute our software for free. We are also aware of the benefits of having community involvement with the code base, such as community contributions and increased transparency. Therefore we decided we should pick an open source licence.

We have so far avoided picking a licence as it was not needed for our early prototypes and the task is rather intimidating as its difficult to change a licence once picked and the potential for WL to be used in many different areas means we want to get the right one that wont hinder us in the future.
We were also spurred on upon reading about how no licence still has its own set of rules which probably wont suit most people, us included.

The first step involved deciding our own approach to the open source world. We are happy for WL or a subset of its functionality (commonly known as a library) to be used in anyway by anyone including corporation who want to use it to make a profit. This is because the more people interacting with the software itself and its code base the better in our eyes as we increase our coverage of rational tools.
Our only worry is that someone might use WL to develop a great tool that we may feel is a basic human right to have. For example they can take the decisions making software and create an online diagnostic tool. If they did this and offered it to everyone, it would be one less thing for us to focus on. However if they did this and only offered to paying customers we would want to make, or have others develop, a competing tool that was more inclusive. Unfortunately with the potential for them to patent, it may not always be possible to compete. Therefore we had to find a licence that dealt with this.

The problem with developers picking licences is they are not always used to legal jargon and that was our biggest pitfall. The most common licences and therefore the ones I checked first were MIT, Apache 2.0 and the GPL family. A misinterpretation of the patent section for the Apache 2.0 licence and the unsuitability of the other poplar ones had me almost throwing my hand up in defeat looking for more and more obscure licences until I happened to re-read it and realise it is in fact perfect!

The full licence can be found here: http://www.apache.org/licenses/LICENSE-2.0

Below is the important part on patents:
Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.

It also comes with the non-essential but useful Trademark protection.

My research looked into much more than I may cover in a second blog post for prosperities sake, however one thing worth mentioning is the Affero GPL which is an extension of the GPL family made to deal with a loop hole effective server side code. This is important as WL will largely be server side. The loop hole takes advantage of the fact that most, if not all licences can not stop private use. They only stop distribution of the code which is fine by us. However, an unscrupulous company may use the program and offer it as an online service as technically they are not giving out the code or any executable. I am not yet satisfied that we are fully safe from this loop hole, but its obscure enough for me to feel confident postponing further investigation until we are much further on with the project.