Software patents and patents on computer-implemented inventions are a class of patents and one of many legal aspects of computing. There is intense debate as to what extent such patents should be granted, see Software patent debate.
FOLDOC provides a general definition of a "software patent" as "a patent intended to prevent others from using some programming technique", while the European Patent Office (EPO) provides a general definition of a "computer-implemented invention": "an expression intended to cover claims which involve computers, computer networks or other conventional programmable apparatus whereby prima facie the novel features of the claimed invention are realised by means of a program or programs".
Software patents vs copyright
Software patents are sometimes confused with software copyright. Under international agreements, such as the WTO's TRIPs Agreement, any software written is automatically covered by copyright. This regulates the direct copying of the program code.
Applying for, and being granted a patent gives stronger rights. It covers the programming method itself, independently of any implementation in code. Thus usually reimplementing a program will avoid copyright infringement, but not patent infringement. Like all patents, software patents are enforceable regardless of whether the competitors were aware of the patent (patents are kept secret for at least 18 months) and the software was completely independently developed.
A patent holder may prevent others from using their invention absolutely, or licence it at terms they dictate. There are strong sanctions for patent infringement, including triple damages in the USA if the infringement is considered deliberate, which means knowing of the patent but not licensing it (even under the assumption it was invalid).
As laid out in TRIPS, patents are required to last 20 years after filing, provided the maintenance or renewal fees are paid.
The first software patent ever granted is probably a patent for a "computer having slow and quick access storage, when programmed to solve a linear programming problem by an iterative algorithm, the iterative algorithm being such that (...)" applied for in 1962 by British Petroleum Company. The patent relates to solving simultaneous linear equations.
The USPTO has traditionally not considered software to be patentable because by statute patents can only be granted to "processes, machines, articles of manufacture, and compositions of matter". In particular patents cannot be granted to "scientific truths" or "mathematical expressions" of them. This means that most of the fundamental techniques of software engineering have never been patented.
In 1982 the US created a new court (the Federal Circuit) to hear patent cases. The court made patents generally easier to uphold by presuming patents were valid unless proved invalid and weakening the defence of nonobviousness. By the early 1990s the patentability of software was well established, and in 1996 the USPTO issued Final Computer Related Examination Guidelines.
In Europe, the EPO (and other national patent offices) has been issuing many software patents since the 1980s, although or since Article 52 of the European Patent Convention excludes "programs for computers" (Art. 52(2)) but only when claimed "as such" (Art. 52(3)).
The recent expansion of the internet and e-commerce has led to many patents being applied for and being granted for related software and business methods. There have been several successful enforcement trials in the USA.
Substantive law regarding the patentability of software and computer-implemented inventions, and case law interpreting the legal provisions, are different under different jurisdictions.
The national jurisdictions relating to software patents in Europe and in the European Union are not harmonized even though some harmonization has been brought into the national jurisdictions in the 1970s and 1980s. Interpretation of the substantive law varies to some extent from state to state. In 2002, in order to harmonize the national laws a step further, the EU Commission proposed a Directive on the patentability of computer-implemented inventions, but settling the exact terms of the Directive has proved highly controversial. In 2003, the European Parliament deeply amended the original draft from the Commission, but subsequently in 2005 the European Council (i.e. national government ministers) reinstated the original text.
Software patents under multilateral treaties:
- Software patents under TRIPs Agreement
- Software patents under the Patent Cooperation Treaty
- Software patents under the European Patent Convention
Software patents under national laws:
- Software patents under US patent law
- Software patents under UK patent law
- Software patents under German patent law
Scope of software patentability
As noted above both the EU and the US have traditionally restricted the ability to patent software. This has led to several proposals for some very narrow definitions of what software actually is. For example:
- A piece of code not relating to "the use of controllable forces of nature to achieve predictable results". (whatever that means)
- A piece of code relating solely to the "processing, handling and presentation of information"
- A piece of code with no "technical effect" (depending in turn on how one chooses to define "technical")
- A piece of code as an abstract listing, not actually running on a programmable device
- A piece of code with merely literary merit, rather than any identifiable functional benefits
A further difficulty in drawing a clear boundary between software patents and other patents may come from the fact that a patent claim can be written so as to embrace many different implementations (some using purely mechanical or electrical means, others using software), for instance by using functional features under certain jurisdictions (for example, "means for controlling"). The expression "computer-implement able inventions" has been coined to refer to this reality.
Additionally, under the so-called doctrine of equivalents and its analogues, a patent that on its face does not appear to require software can be infringed in certain circumstances if software is used as an equivalent of (that is, to substitute for) a non-software element, making even more difficult to draw the boundary.
The term "computer-implemented invention" was put forward by the European Commission, based on an expression used by the European Patent Office, and proposed as "any invention the performance of which involves the use of a computer, computer network or other programmable apparatus and having one or more prima facie novel features which are realised wholly or partly by means of a computer or computer programs." The term has been criticized as a politically motived obfuscation manoeuver. The German chancellor Schröder is quoted with "the manuscript is titled with 'software patents' - wait I may no longer say that - well the 'protection of computer-implemented inventions'".
The terms "software-enabled invention", "software-related invention", "software-operated invention" are also sometimes used to convey a similar meaning.
Several successful litigations show that software patents are enforceable in the USA. For example, Eolas was awarded $565 million from Microsoft.
So far there does not appear to have been any case before a European Court where infringement of a software patent has been proved and damages have been awarded. However, there have been a few court cases where the validity or not of a patent involving software has been the question, where in some European countries a national court has ruled either that a particular patent is valid (eg Germany); or that other patents involving software could be (eg UK).
Practical effects of software patents
Patenting software has become popular. This is difficult to quantify but as an indication as at January 2005 Microsoft alone has 6,130 issued patents which are presumably mainly software patents (US PTO Search). Microsoft expects to file 3,000 new applications this year. IBM received 3,415 patents in 2003 but many of these do not relate to software.
Most large software companies have cross-licencing agreements in which each agrees not to sue the other over patent infringements. For example, Microsoft has agreements with IBM, Sun Microsystems, SAP, Hewlett-Packard, Siemens, Cisco and recently AutoDesk (IDG News Service). Interestingly Microsoft agreed to share with Sun even though they are a direct competitor and with AutoDesk even though they have far fewer patents than Microsoft. It appears that large companies would prefer to avoid expensive and uncertain litigation rather than assert their own intellectual property rights. Indeed, being able to negotiate such agreements is a major reason that companies file "defensive" patents.
Some large companies have started to enforce patent rights. For example, in the early 1990s IBM started an aggressive licencing program which generated over $2 billion a few years later. Licences are often charged as a cost per unit sold or at a few percent of gross sales (not profit), and this license "tax" can become a major burden if several different organizations are claiming patent violations.
A new line of business has emerged that mainly focusses on obtaining and enforcing software patent rights rather than building and marketing usable software systems. Some companies such as Intellectual Ventures have the backing of large corporations while others such as Acacia Technologies are independently enforcing patents. High prices have been paid for software patent portfolios, eg. Commerce One.
Many open source developers fear that software patents will prevent them creating software. Such projects generally have no defensive patent portfolio of their own, and no mechanism to pay royalty fees. This has affected several projects. Several companies (eg. IBM) have licenced parts of their patent portfolio to open source products or more generally, particularly to encourage standards. However, this represents a small fraction of the total number of software patents that have been issued. It does not give the open source community a defensive patent portfolio which can be used to negotiate cross-licencing agreements. Novell seems to have gone further in committing to actively use its patent portfolio against other companies that might bring actions against certain open source products.
The "inventive step" requirement for software patents is viewed by some as being quite low. This allegedly makes it relatively easy to obtain a software patent. The quality of assessment also seems to be quite low, with well known prior art often ignored. This has resulted in some software patents being rejected upon re-examination, eg. the Microsoft FAT Patent File Allocation Table#FAT licensing.
In practice, software engineers rarely search patent databases and applications looking for new inventions that could benefit their projects. This is because of 1. the lack of inventive step in many software patents, 2. the obscure language with which software patents are described, and 3. the risk of being assessed for triple damages for knowingly infringing one (Federal Trade Commission). Many infringements are for independent inventions.
There are several Economic Studies that assess whether software patents actually encourage or discourage innovation.
Wikipedia article (the free online encyclopedia) reproduced under the terms of the GNU (General Public License) Free Documentation License.