Software patents under the European Patent Convention
The European Patent Convention excludes "computer programs as such" from patentability, but does not define what this means. Recent case law from the European Patent Office has provided a definition, which allows patent claims on what they call "program products". Patents with such claims are sometimes regarded as software patents. There are definite limits on such claims.
To be patentable, an invention must have technical character. This means that the invention must use technical features and solve a technical problem. A computer program has a technical character if it causes a technical effect when run on a computer. This effect must be more than the "normal" physical interaction between program and computer. The program is then more than a "program as such".
In practice, this requirement is usually not a problem for inventions that use software for their realization. So it should not come as a surprise that there are many European patents covering software-related inventions (colloquially known as "software patents").
Article 52 of the European Patent Convention (EPC) defines what inventions are and when they are patentable under the EPC. Article 52(1) states:
European patents shall be granted for any inventions which are susceptible of industrial application, which are new and which involve an inventive step.
There is no definition of what an invention is or is not. However, article 52(2) provides a list of things that "in particular" shall not be regarded as inventions (suggesting there might also be other things that are not inventions):
- discoveries, scientific theories and mathematical methods;
- aesthetic creations;
- schemes, rules and methods for performing mental acts, playing games or doing business, and programs for computers;
- presentations of information.
The scope of this list is reduced by article 52(3) which states that the provisions of paragraph 2 shall exclude patentability of the subject-matter or activities referred to therein only to the extent that an application or a patent relates to such subject-matter or activities as such. Unfortunately, article 52(3) does not explain what "as such" means, presumably leaving it up to the case law to provide a workable definition.
From the fact that this list contains only abstract things, and that the items on the list have in common that they are non-technical, the Board of Appeals has concluded that to be patentable, an invention must be technical in some way.
A computer program will, when run on a computer, cause that computer to do something like display items on screen, store a particular pattern in a memory, activate a peripheral device, or at the very least, cause certain electrical currents to run over particular connections. Such activities can be seen as technical effects of running a computer program, and so all programs would be technical in the sense that they can cause a technical effect merely by being executed on a computer.
However, this would mean that there are no programs for computers excluded by articles 52(2) and (3). So there must be some kind of technical effect that goes beyond the effects produced by all programs which makes the program patentable. In the words of the Board of Appeals (T 1173/97 and T 935/97), the technical effect must go beyond the "normal" physical interactions between program and computer. If such an effect can be found, the program is not excluded and hence a patentable invention.
A technical effect can be, for example, a reduced memory access time, a better control of a robotic arm or an improved reception and/or decoding of a radio signal. It doesn't have to be external to the computer on which the program is run; reduced hard disk access time or an enhanced user interface could also be a technical effect.
The above analysis is always undertaken on the claims, as the claims define the (desired) scope of protection conferred by the patent. This means that the technical effect must be produced by the features mentioned in the claims; otherwise the claim must be amended. In practice this analysis is rarely made on its own, but rather will be a part of the normal evaluation of novelty and inventive step.
The scope of protection of a patent is determined exclusively by the claims. So, if a claim is directed towards a "Computer system having a processor and a memory, which processor is able to execute instructions for X, Y and Z stored in the memory", then only people who sell the complete system with processor and memory infringe on the patent. Selling a program with instructions for X, Y and Z does not infringe directly.
Some countries provide for so-called indirect infringement, whereby selling something that is a "substantial part" of the claim can also be an infringement. However, this is more difficult to prove, and the remedies for such indirect infringement are typically more limited than for direct infringement. This means that for the best protection of a software invention, a claim directed towards the program itself is necessary. Usually this is done by claiming "A computer program product with features X, Y and Z".
Of course the computer program product claim must specify all the features of the program necessary to achieve the technical effect. If there is also a claim for a method that has a technical effect, one could claim "A computer program product arranged for causing a processor to execute the method of claim 1".
The examination procedure
Usually the Examining Division will first try to determine whether the claims of the invention are novel. If the entire invention was already publicly known before the filing date, there is no need to evaluate whether the invention can produce a technical effect, or is technical in some other way.
If the claims are novel, the inventive step (article 56 EPC) is examinated using the "problem and solution approach". Briefly speaking, this means that the Examiner tries to determine what problem is solved by the features of the claims that are not in the closest prior art. If the solution to this problem is then considered to be nonobvious, the claim involves an inventive step. This is explained in more detail in When is an invention obvious?. In 2004 the EPO has tightened its procedure to assess inventive step in the so-called Comvik decision.
For computer programs, this means that the features of the invention (as given in the claims) are evaluated to determine whether they solve a technical problem in some way. This problem must be derivable from the application, unless it is a common problem (like making the computer do something faster).
Of course, while an invention might solve a technical problem, the solution could still be an obvious one (e.g., the problem of reducing hard disk access time is technical, but the solution of adding a cache in RAM is obvious).
A patent application must contain a description of the invention in such a way that the invention can be implemented and practiced by a person skilled in the art without undue effort. In the field of computer programs, this would be a computer programmer, although not an expert hacker.
Typically, patent applications do not provide a complete specification but rather focus on the most relevant parts of the program and describe those in terms of the desired function(s). So, there could be a "networking module" that connects to a LAN, a "filtering module" that reads packets received on the LAN using the networking module and selects those matching a pattern, and a display module that prints the matching packets on the screen, or in a log file, in a human-readable form. Or in other words, a LAN sniffer.
From such a basic description it is possible to write a program that performs this function, especially now that there are many standard modules available for things like networking, parsing and database management. It would be a lot of work to actually implement the program, but as long as it's a straightforward job, the description is acceptable.
While it may seem like a good idea to require a reference implementation in the patent application, this is actually forbidden by the Guidelines for Examination, section C-II-4.14a:
In the particular case of inventions in the computer field, program listings in programming languages cannot be relied on as the sole disclosure of the invention. The description, as in other technical fields, should be written substantially in normal language, possibly accompanied by flow diagrams or other aids to understanding, so that the invention may be understood by those skilled in the art who are deemed not to be programming specialists. Short excerpts from programs written in commonly used programming languages can be accepted if they serve to illustrate an embodiment of the invention.
If a patent application does contain large listings, the applicant can be asked to remove the irrelevant portions before the patent is granted.