Patents and Open Source Software
Patents are about:
- Having an idea (an "invention")
- Formally documenting your idea in the form of a patent application
- Being granted your patent, if you can establish priority
- The patent gives you the right to prevent other people from using your idea
Open source software is about:
- Having an idea
- Writing software to implement that idea
- Sharing your software with everyone and anyone
- Allowing everyone and anyone to use your software as a basis for writing new software
Patents, Open Source Software and the Legal System
Patents exist because legal systems of countries explicitly define the processes of patent application and the rights of patent-holders.
Open source software is not explicitly supported by the legal system of any country.
Open source software typically has a license, and this license is enforceable due to copyright law.
However, copyright law is not designed to "protect" open source software from the thing it needs protecting from, which is, patents. (Copyright is designed to "prevent" copying, which is the exact opposite of what open source software is all about.)
If an open source software application or library is deemed to be using an idea contained within the claims of a valid patent, then anyone who distributes that software is guilty of infringement, and even if they are not sued for large sums of money, they can at least be required to cease and desist from distributing that software, until such time as the patent expires (which can be up to 20 years later).
Patents, Open Source Software and Money
Patents are based on the assumption that you will spend money to get them, and users of your idea will need to spend money to be allowed to use the idea, and if there is a need to "share" ideas from patents owned by other patent holders, then lawyers will be involved (which will also cost money), and there will be cross-licensing and patent pooling.
Open source software is based on the assumption that the developer will choose to develop the software without any expectation of receiving payment, and users will not have any obligation to pay any money to the developer or anyone else. Sharing of open source software between different open source developers happens easily, without lawyers, and for practically zero cost.
Patents, Open Source and Public Benefit
Patents are designed to benefit the public, because the rights of patent-holders gives them a means of making money from their "ownership" of the ideas they thought of, and this money "incentivises" the thinking of more ideas.
Open source benefits the public, because whatever software is released as open source is immediately beneficial to anyone who chooses to download it and use it. And for any open software which is released to the general public, anyone else can choose to develop new software which is an extension or improvement of that software, and that extension or improvement can also be released as open source software (note: all open source licenses allow this, some actually require it for publicly released derived works).
The Cost of Patents
The good thing about patents is that they provide income to inventors. The bad thing about patents is that they add cost to any implementation of a patented idea.
If the added cost is only a small portion of the total cost of producing something, then this is not a major problem.
But if a patent adds a finite cost to something that would otherwise be free, then the patent is effectively increasing the cost of using an idea by infinity.
Which is not so good. Especially when we already know that writing software, distributing sofware and collaborating on the development of software, all for free, is an efficient way to write high quality software, software which most of us are already using, either directly on our own computers, or indirectly on other computers via the internet.
Which is why many software developers want to abolish "software patents".
Giving "Protection" To Open Source Software
As I have already mentioned, intellectual property laws do not give any explicit recognition to the public benefits of open source software, other than allowing such software to be licensed according to whatever license a develop wished to apply to their software, given that the developer is the copyright-holder.
But this does not "protect" open source software from the destructive effect of patents on the free sharing of ideas and implementations of ideas.
If "we", i.e. the people living in countries with intellectual property laws, think that open source software has some intrinsic value, on account of its benefit to the public, then "we" can alter our laws to given open source software the protection that it deserves.
But how should we do this?
Options: Validity and Infringement
There are two different ways in which you can win a patent infringement action taken against you:
- You can have the patent declared invalid.
- You can show that you are not infringing against the patent.
There are two corresponding ways we can choose to protect open source software against the effects of patents:
- We can legally define software patents to be invalid
- We can legally protect open source software from patent infringement actions.
Approach 1: Software Patents Are Invalid
The first option corresponds to the slogan: "Abolish Software Patents".
It has a number of pros and cons:
- It benefits all software, not just open source software. Of course we can argue, and many do, that patents have bad effects on all types of software, not just open source software. However, open source software does have a stronger moral claim to protection, as it provides an intrinsically public benefit as soon as it is published.
- We must define exactly what is a "software patent". The claims of a patent generally describe a way of doing things to solve a certain problem. Some or all of the elements of a claim may be capable of implementation in software. Some inventions may require special hardware for a practical implementation today, but may allow for a purely software implementation on a general purpose computer some time in the future.
Approach 2: Software Cannot Infringe a Patent
With the second option, there is no restriction as to what can be patented, but there is a restriction on what the patent applies to with respect to infringement.
In particular, we want to say that open source software cannot be "accused" of infringing upon a patent. (Of course those against "software patents" generally might wish to extend this protection to all software, but at least we have a choice about which categories of software we wish to protect in this way.)
The difficulty with the infringement protection approach is determining how much activity can be considered to be protected.
For example, a given invention might be implemented with or without the help of software. Infringement protection can certainly be extended to the development and distribution of software, even if the sole purpose of that software is to help implement the patented invention. But what happens when the software is used? If a certain activity infringes a patent when performed without the help of software, why should protection be extended just because software is being used? In practice one could supplement any implementation of any invention with some suitable open source software.
To avoid this difficulty, we may need to characterise a set of uses of software which are protected from infringement action:
- Running software on a home computer.
- Running software for the purpose of processing input information to generate output information, where said information may then be published or sold privately. (Such information may be passed on to someone else implementing a patented invention, but that person then has the responsibility for licensing use of the patent.)
- Running software for the purpose of generating certain physical effects, including:
- Playing digitally rendered sound through speakers
- Displaying digitally rendered graphics on a screen
- Printing digitally rendered graphics onto a 2-dimensional surface
- "Printing" digitally rendered 3D models on a 3D printer
(A secondary issue I am ignoring for the moment is that we would also have to give a precise legal definition of "open source". Ideally such a definition would be broad enough to include all existing popular open source licenses, but would not allow licenses so restricted that the software distributed under such licenses is less than useful to the general public.)
Consequences of Giving Legal Protection to Open Source Software
If open source software is given special legal protection, then many companies that currently have to license patents will now have the option of using open source software to avoid having to pay for licenses. In doing so, there will be direct public benefits:
- If a combination of software and hardware infringes on a patent, the manufacture may choose to distribute the software separately as open source, and allow the end-user to install it in the hardware. For this to work, the hardware itself must be more open.
- Some companies may attempt to obfuscate their "open source" software. Sufficiently blatant obfuscation may be reason for forfeiting protection from patents. However, obfuscation is not necessarily a major issue. For software to be considered to be "open source", there has to be a right for end-users to create derived works which are less obfuscated (i.e. by reverse engineering), and redistribute those derived works publicly under the same open source license.
- Where proprietary software infringes on a patent, the developer of that software may choose to distribute the patent-infringing components of their software as open source extensions to that software.