The Federal Circuit's recent decision in Aristocrat Technologies will require software patent drafters to take more care to describe the algorithms covered by their software--or risk patent invalidity. (See Aristocrat Technologies.) The court held that expert testimony that a programmer would know how to write code to perform a given function cannot supplement an incomplete patent disclosure when software claims are written using "mean-plus-function" format. Means-plus-function format means that something is claimed by the function it performs rather than by a specific structure--for example, a means-plus-function claim might recite a "means for fastening paper together" as opposed to a "paper clip." Software claims written in means-plus-function form are invalid unless the specification discloses an algorithm that performs the function stated in the claims.
Because many software patents fail to describe the necessary algorithms, the Aristocrat case will likely result in more software patent claims being invalidated by the courts (at least those written in means-plus-function format) and should encourage patent practitioners to include more details in their specifications. Though the algorithm need not be spelled out in detail, patent practitioners would do well to make sure that their software patents discloses algorithms.
The problem of unreadable software claims
In light of the "algorithm rule", one might ask why a patentee would ever write a software patent using "means-plus-function" language in the first place. One reason has to do with the difficulty patent drafters face writing claims that cover software.
Patent claims are a linguistic nightmare, a fact that tends to be all the more true for software inventions. Part of the reason is that no matter how complex the invention may be, every patent claim is written in one long run-on sentence. Though not required by Congress, Patent Office procedure insists that patent claims be written in single-sentence form. (See MPEP Sec. 608.01(m).) In the only case to challenge the one-sentence rule, the court sided with the Patent Office. See Fressola v. Manbeck, 36 USPQ2d 1211 (D.D.C. 1995). By its very nature, software tends to be a complex series of steps, often iterative and interrelated--which makes it hard to describe precisely in a single sentence.
For example, if a software invention included a mortgage calculator with a routine for calculating compound interest, one way to claim the subroutine would be to detail the steps of the algorithm: (1) receiving the principal, interest rate, compounding period, and term of the loan; (2) applying the compound interest formula to determine the amount to be paid; (3) determining the number of payments in the payment period; and (4) dividing the amount to be paid by the number of payments to determine the size of each payment. Writing this out, along with the other aspects of the program that presumably made it patentable, in a single sentence, all but guarantees unreadable prose.
The use of means-plus-function claims in software
One solution that patent lawyers sometimes use is to write claims using the means-plus-function format. Rather than detail all the steps performed by the computer program, the patent drafter recites a "means for calculating compound interest." This kind of patent shorthand makes the claim much easier to read. But, there is an important catch. Claims written in means-plus function language do not cover every means for performing the recited function. Instead, by statute, they are limited to the structure disclosed in the specification that is clearly linked to performing the function, and to equivalent structures. (See 35 USC § 112, ¶ 6) In the world of software, this means the claims are limited to the algorithm or algorithms disclosed in the patent, and equivalents thereto.
The problem arises if the patent never mentions the general steps that a computer would follow to calculate interest. There is no doubt that a skilled programmer could write a mortgage interest calculator, perhaps as a subroutine, perhaps as an object, perhaps as a lookup table. There could be many ways to write such a program, all within the expected ability of an undergraduate computer student. But, that's not the issue. If the patent claim recites a "means for calculating compound interest," then the patent must disclose an algorithm that is clearly linked to calculating compound interest.
One alternative is simply not to use means-plus-function claim language, and to find a different solution to the claim drafting challenge. But even so, it still makes sense to disclose some specific algorithms in the patent. Patents and the form of their claims often evolve during the years before they issue from the Patent Office. It will generally be good practice to err on the side of additional disclosure up front to provide support for the claims as they evolve.