OR/MS Today - October 2003



INFORMS Online


Are Software Patents Harmful?

By Matthew Saltzman


Patents are granted to provide inventors with a limited monopoly on technologies they develop in exchange for disclosure. The expectation is that the disclosures will spur the advancement of technology. While there is not even universal agreement on whether patents are necessary or even effective in maximizing the pace of innovation, there is a groundswell of support for the position that software and business practice patents (at least as currently realized) have a detrimental effect on innovation in those areas. The arguments are far too arcane and complex to do justice in a short column, but I will boldly attempt to summarize them anyway.

Arguments opposed to these kinds of patents fall into two main classifications: that such patents are inherently inappropriate, and that the patent process as currently applied to these innovations is distorted. This month, I will discuss the philosophical arguments. A future column will address the practical and economic arguments.

The fundamental philosophical argument against software patents is that they properly fall under the traditionally unpatentable classification of "laws of nature, natural phenomena or abstract ideas." According to this view, software is properly considered an "expression of an idea" and the proper form of protection is that afforded by copyrights. Before the advent of software patents, this was in fact the way software was protected.

The key difference between patent and copyright protection is that, in copyright, only the expression of the idea (in the form of a particular code) is protected. Thus an independent implementation of the same idea does not violate copyright protection. A patent protects the idea itself, so an independent implementation does violate patent protections.

Mathematical algorithms have been determined to be nonpatentable; in particular, they are deemed not to be "processes" as required by statute. From an analysis of patentability of mathematical algorithms and computer programs by an attorney at the United States Patent and Trademark Office (USPTO) (republished at http://lpf.ai.mit.edu/Patents/papers/barrett.paper): "Inventions may be patented only if they fall within one of the four statutory classes of subject matter...: 'process, machine, manufacture or composition of matter.' ... The exception applies only to mathematical algorithms since any process is an 'algorithm' in the sense that it is a step-by-step procedure to arrive at a given result."

An apparatus or process that involves application of a mathematical algorithm is not necessarily unpatentable simply because of that fact, but it is the process (including the limited application of the algorithm to the process), and not the algorithm itself, that is patentable. Also, the claim must be drawn narrowly enough so as not to "wholly preempt" the algorithm, i.e., to be a claim on the algorithm per se. Simply adding preprocessing or postprocessing steps is not enough to render a mathematical algorithm patentable.

While the Supreme Court has not ruled on patentability of software, the Court of Customs and Patent Appeals (CCPA) has found broadly for patentability of computer processes except for "mathematical algorithms." The philosophical objection to software patents holds that the distinction between mathematical and nonmathematical algorithms is a false one. Donald Knuth wrote in a letter to the USPTO (republished at http://lpf.ai.mit.edu/Patents/knuth-to-pto.txt):

"I am told that the courts are trying to make a distinction between mathematical algorithms and nonmathematical algorithms. To a computer scientist, this makes no sense, because every algorithm is as mathematical as anything could be. An algorithm is an abstract concept unrelated to physical laws of the universe.

"Nor is it possible to distinguish between 'numerical' and 'nonnumerical' algorithms, as if numbers were somehow different from other kinds of precise information. All data are numbers, and all numbers are data. Mathematicians work much more with symbolic entities than with numbers.

"Therefore the idea of passing laws that say some kinds of algorithms belong to mathematics and some do not strikes me as absurd as the 19th century attempts of the Indiana legislature to pass a law that the ratio of a circle's circumference to its diameter is exactly 3, not approximately 3.1416. It's like the medieval church ruling that the sun revolves about the earth. Man-made laws can be significantly helpful but not when they contradict fundamental truths."

At first glance, it may seem that this issue is of limited relevance to the OR software community, as our day-to-day work involves algorithms that are clearly mathematical in nature. But we are affected.
  • The boundary between a mathematical algorithm and its application is not sharp and may be subject to the whims of patent officers.

  • Combinatorial optimization and discrete-event simulation algorithms can be described as operating on concrete objects rather than on mathematical abstractions.

  • We do use symbolic computation explicitly (think: modeling languages, constraint programming).

  • We use nonmathematical algorithms as subroutines in our codes and we build user interfaces to make our codes accessible.
The next column in this series will describe the risks that developers are exposed to when such algorithms are given patent protection.



Matthew Saltzman (mjs@ces.clemson.edu) is an associate professor of Mathematical Sciences at Clemson University and the editor of INFORMS Online.





  • Table of Contents

  • OR/MS Today Home Page


    OR/MS Today copyright © 2003 by the Institute for Operations Research and the Management Sciences. All rights reserved.


    Lionheart Publishing, Inc.
    506 Roswell Rd., Suite 220, Marietta, GA 30060 USA
    Phone: 770-431-0867 | Fax: 770-432-6969
    E-mail: lpi@lionhrtpub.com
    URL: http://www.lionhrtpub.com


    Web Site © Copyright 2003 by Lionheart Publishing, Inc. All rights reserved.