Open source software is a type of computer software that is released under an open source license, that is a license in which the copyright holder grants users the right to use the software under certain conditions. It also overlaps conceptually with free software, and in recent years has come to be commonly understood as meaning software that anyone can use without limitation. Whether this common understanding is correct is the question that we will address in this and the following articles.
Software is protected by copyright because it is considered a type of creative work, and the copyright of open source software belongs in principle to the creator of the software, regardless of whether steps are taken to register the copyright with the relevant authorities.
Most open source licenses grant permission to users to use the software in view of the copyright existing in the software. However, the copyright owner who developed the software does not explicitly reserve or give up all rights existing in the software. Copyright owners continue to own their copyright and stipulate usage conditions in accordance with the principles of open source. In a typical open source license, and the well known GNU Public License (GPL) is a good example of this, there is also a requirement for the user of the software to release the source code of any derivative works relating to the software that is the object of the open source license.
Even though an open source license may allow users of a software to use the software freely as long as they are in compliance with the terms of the open source licenses, there is still a need to consider other intellectual property rights associated with the software.
This is because copyright may not be the only type of intellectual property existing in the software. Patent rights may exist as well. Copyright and patent rights may exist simultaneously in one software. Unless the open source license mentions patent rights, the license may be construed as applying only to the copyright. In other words, even if copyright infringement may be avoided by complying with the open source license, there may still be a risk of infringement of patent rights.
The debate on whether software patents should be allowed is an old one. A 2014 decision by the US Supreme Court (Alice Corp. vs. CLS Bank) made it very difficult to obtain software patents at the USPTO (United States Patent and Trademark Office). Since then, however, the USPTO has become more lenient in their acceptance of software patents, and regardless of what one’s personal opinion may be regarding the protection of software with patents, the global trend towards acceptance of software patents now appears inevitable.
Many early open source licenses did not mention patents. The GPL license does not mention patents until version GPLv2. From an open source standpoint, the potential of patent rights to interfere with the ability to freely use software seems to contradict the principles of open source. To some, it may even seem unthinkable for a company that offers open source licenses to also own patents for the same software. But, as strange as it may sound, open source software is not simply open source software. For example, many companies that already hold patents over their software later decide to share their technology on an open source basis. As a result of this apparent dichotomy, many open source licenses these days include explicit clauses relating to patents, examples being the Apache 2.0 and GPLv2 and GPLv3 licenses.
Let's take a look at the patent clause of the Apache 2.0 license, which is used by Tensorflow:
“3. Grant of Patent License. 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.”
The intent of the patent clause in the Apache 2.0 license is clear. The patent clause makes it clear that software users are also free to use the patents which are owned by the contributors to open source software. It clarifies what previous open source licenses did not mention, but users took for granted. However, it also crucially includes a retaliation clause, which revokes the license in case a software user themself raises a patent infringement claim in relation to the open source software.
That is, it stipulates that software users have a license for patents related to the open source software, but the revenge clause addresses the potential situation in which a software user claims that the open source software infringes their patents.
So does this mean that under the Apache 2.0 license there is no need to worry about the patents of Google, Tensorflow’s main contributor? Not quite. As the saying goes, the devil is in the detail, and a careful reading of the following passage is recommended:
“... 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.”
This passage stipulates that a license is only granted for those patent claims that are both (1) licensable and (2) necessarily infringed when using the relevant open source software.
In other words, one should analyze the claims of key deep learning patents of Google and determine whether one has no choice but to infringe the claims when using Tensorflow.
It is never easy to determine the extent to which a patent can be used freely, and in the context of a new project like Tensorflow, this determination is even more difficult.
It would ease our mind if Google were to say: “You do not have to worry about our patents related to our open source software”.
It appears that this is what Google is telling us. Is that really what they are saying though?