Resources For Computer Scientists
Shouldn’t I have legal control over my creative work?
Sure, but not necessarily by patents. After all, people write creative novels, paint original paintings, and record original compositions, but none of them may patent their output. Instead, their works are covered by copyright law. Note that copyright covers more than just the literal text that an author has written. Fans who write stories about a recognizable character like Darth Vader or Harry Potter can still be found to be violating the original authors’ copyright, even though they may not use a single word from the original stories.
The key difference between patent and copyright is that a person needs to have the original work in hand and be shown to be imitating it to be found infringing a copyright, whereas independent invention is not a valid defense against claims of patent infringment. A person can easily be accused of infringing a patent that he or she has never even heard of.
Isn’t mathematics unpatentable?
Absolutely. Further, most computer scientists are aware that any program could be translated to Lisp (e.g., try using the Java-to-lisp translator), meaning that any common program can be expressed as a formula in Church’s lambda calculus. [Lisp is still a few steps away from Church's formulation, but those are easily surmounted with a bit more symbol-shunting.]
As Donald Knuth explains,
[It is not] 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. [Stated in testimony regarding Knuth's opposition to software patents.]
However, software patents are a fiction. Instead, patents are for what patent attorneys call a Beauregard claim, after the IBM case that pioneered the modern software patent. The claim is not for software, but for a machine on which is loaded software. The US Court of Appeals for the Federal Circuit [CAFC], a court whose bench consists of several former prominent patent attorneys, ruled that loading software onto a stock PC creates a “new machine” that is patentable like any other. That is, an application beginning “an algorithm to…” will always be rejected as unpatentable, but “A stock PC on which is loaded an algorithm to…” is given full consideration.
How does the algorithm and the algorithm loaded on a stock PC differ? They don’t. Lawyers have a number of ways of expressing the equivalence, such as saying that the patent on a PC-with-algorithm “wholly pre-empts” the use of the algorithm, or some of the descriptions below. Intuitively, the process of loading a program onto a stock PC is relatively easy, thanks to a wealth of computing languages that let us easily communicate to the machine an idea expressed in equations and flowcharts.
The Supreme Court ruled three times that prepending “a stock computer on which is loaded…” to an otherwise unpatentable algorithm is just a wording trick, designed to get around the established consensus that software and pure mathematics are not patentable. As one Supreme Court ruling explained: “Indirect attempts to obtain [software] patents … by drafting claims as a … machine or components thereof programmed in a given manner, rather than as a program itself, have confused the issue further and should not be permitted.” Another ruling repeated this position, explaining that “insignificant postsolution activity will not transform an unpatentable principle into a patentable process. To hold otherwise would allow a competent draftsman to evade the recognized limitations on the type of subject matter eligible for patent protection.”
How did the CAFC reconcile its rulings that loading software on a PC creates a “new machine” with the Supreme Court’s statements? It didn’t: none of the key rulings that established the concept of a “new machine” addressed the several statements by the Supreme Court that such reading of a software patent is just a wording trick.
So despite the best efforts of the Supreme Court, many recognize this wording trick as law. The tide is turning, however; see the page of Resources for lawyers for citations and the current state of legal affairs.
Isn’t it all just a question of eliminating obvious and low-quality patents?
The “software industry” is massively decentralized, because every company with a computer is a software company. For example, the Green Bay Packers are a software company, because they have a web site, and so they are being sued for patent infringement for elements of that site. This anonymous blogger, who reported on the suit against the Packers, has been accused of patent infringement, for his or her use of Blogger’s standard software. Note well that it is not Blogger who is being accused of infringement, but the user of Blogger’s software who used it to produce an allegedly infringing web site.
So let us say that only a handful of the highest-quality patents get through the system. Every user of a computer (every business, every blogger, every one-person Sourceforge project, every student) would still run risk of patent infringement. Remember, independent invention is not a valid defense against claims of infringement, so the holder of a carefully-approved patent still need only search the Web for a few minutes to find somebody to sue.
Does my code run risk of patent infringement?
Yes. Even if you are certain that you used only results from 20-year old journals, a patent-holder with a patent for a vaguely similar “new machine” can still send you a letter claiming infringement. It would cost the patent-holder a dollar or two in postage and letterhead, but you are legally obligated to consult a patent attorney to check whether the claim is valid, which typically costs about $30,000. So long as software is patentable subject matter, this could happen to you.
Should I participate in prior art searches like the Peer to Patent project?
If you think it would be fun or a learning experience, go ahead. But don’t expect to have any effect on software patents.
Bessen and Hunt estimated about 70 software patents granted by the USPTO per day [see page 47 of their empirical look at software patents.]
Meanwhile, the Peer-to-patent project reports that as of 5 November, they have gotten 93 items of prior art submitted on 24 applications. The project opened in June, so in five months they have been able to advise about a third of a day’s worth of output from the USPTO. [from the P-to-P demographics page, accessed December 2007.]
So don’t expect projects like Peer-to-patent to make a significant dent in the flood of software patents coming forward. But they do provide an interesting look at patents from a technical perspective, and can show you how difficult it can be to find prior art that has legal bearing upon any given patent.