There is an important corollary to the principle that one size does not fit all: Not everything should be patentable. Scientific discoveries, laws of nature and abstract ideas have always been unpatentable. Business methods were deemed unpatentable until 1998 when a decision of the patent-specialized Court of Appeals for the Federal Circuit radically expanded the scope of patent-eligible subject matter by abolishing the long-established and uncontroversial rule. Although the Supreme Court declined to reestablish the rule in its recent Bilski decision, it unanimously held that the hedging method at issue was an unpatentable abstract idea.
Unfortunately, it is not easy to determine what is abstract and what is not, and this is especially problematic for software. While the Supreme Court has held that algorithms are unpatentable (Benson), it has also held that the presence of algorithm in an otherwise patentable process, such as curing rubber, does not make the process unpatentable (Diehr). The Federal Circuit has routinely upheld software patents and the USPTO has granted hundreds of thousands of them.
Experience with software patents illustrate the problems created by abstraction. The Benson court saw mathematical algorithms as building blocks comparable to principles of nature. However, software operates at many different levels of functionality from code to user interfaces. Patents should cover specific implementations rather than functions (such as the chemical makeup of a drug that cures headaches, not the concept of a drug that cures headaches). Unfortunately, this principle is not enforced rigorously for software and sweepingly broad patents often purport to cover the concept rather than who it is actually executed.
Since independent invention is not a defense to patent infringement, broad abstract patents can wreak havoc where innovation is widely distributed and carried on by tens of millions of individuals and small entities around the world. Patents presuppose a world in which everyone knows clearly what is patented and what is not — and who owns what patents. This is possible in the rarefied and highly regulated environment of pharmaceuticals, but clearly not for software development. By contrast, copyright only protects actual copying and does not preclude innovators from coming up with the same ideas independent of each other.
A parallel problem with abstract patents is that the language used in claims is inherently indefinite, which makes for “fuzzy” and indeterminate boundaries. While not a problem for chemicals, including pharmaceuticals, where patents claim particular molecules, the abstract functionality of software and business methods can be described in many different ways. This makes relevant patents difficult to locate, interpret and evaluate.