I am a software engineer who writes about that topic and related areas of computer science. Recently, I published an article titled Software Engineering != Computer Science, which discusses the differences between programming and formal (mathematical) computer science. In response to that article, IPWatchdog.com kindly invited me to comment about some of the controversy surrounding patents for software. I gladly accepted.
My position is that software must be patentable, or 500 years of patent laws make no sense.
First, some well-established background principles:
- Novel, useful manufacturing processes can be patented. Among many examples are US Patent No. 7,000,318, which relates to a method of designing and manufacturing vehicles, and US Patent No. 5,194,877, which relates to a process for manufacturing thermal ink jet printheads.
- Novel, useful electronic devices can be patented. Examples include US Patent No. 5,867,795, which relates to a portable electronic device having a transceiver and visual display, and US Patent No. 5,557,579, which relates to a power-up circuit.
- Just because something is a clever, interesting, original piece of software does not automatically make it patentable. The primary example is software that is a mere expression of a mathematical formula, because mathematical truths are not patentable.
The reason that software must be patentable is that software can be an inseparable part of both manufacturing processes and electronic devices. A patent for such items must crucially include the software components of the invention, or the patent would be incomplete.
Consider two imaginary manufacturing processes, MP1 and MP2. Both produce a new type of automobile which is vastly more reliable than existing cars. These new cars only need minor maintenance every 10 years, and run well for at least 100 years. MP1 achieves this astonishing result partly by using better raw materials, but primarily through improved manufacturing processes. The inventors figured out how to organize workers on an assembly line in a much better way, to create much better cars. MP1 would, of course, be patentable.
MP2 creates the same cars as MP1, using the same materials. But MP2 replaces the people on the assembly line with robots. The robots are controlled by a large, complex software system. The software instructs the robots to inspect the materials, reject parts that are defective, and then assemble a car as good as MP1 creates. If MP1 is patentable, then MP2 must be also, especially if MP2 were invented first.
What would a patent for MP2 cover? It would contain a description of the raw materials, an explanation of how the plant floor is laid out, a list of the robots used, and, crucially, the software instructions to operate the robots correctly. If the owners of MP2 were to sell or license this process, what would they deliver to the buyer? Among other things, the deliverable would contain a printout or computer disk with the robotic software. Without this software, MP2 cannot make a single car and has no monetary value.
Now consider two electronic devices, ED1 and ED2. Assume both are single-chip integrated circuits, that perform identical operations, but their internal constructions are different. ED1 is “hardwired”. It contains thousands of transistors, resistors, and other embedded circuits, arranged to perform the overall operations of the chip. ED2, on the other hand, contains a programmable micro-machine and microcode that implement the same operations as ED1. So ED2 achieves the desired (identical) behavior by software emulation of the hardwired components of ED1.
For those unfamiliar with digital electronics, ED2 might seem hard to believe. In fact, hardware emulation by microcode, in exactly the way I describe, is common today. So if ED1 is potentially patentable, ED2 must be as well, especially if ED2 were invented before ED1. And what would a patent for ED2 cover? The patent would include the operations of ED2, perhaps its physical characteristics, and, of course, its microcode. By any definition, microcode is software.
Finally, consider a third device, ED3. This device is physically identical to ED2, both externally and internally. It is housed in the same integrated circuit chip. It contains the same layers of silicon and germanium, creating the same set of transistors, resistors and other internal components. In other words, ED3 contains the same micro-machine as ED2.
But ED3 performs a very different function than ED2. It takes different inputs and gives different outputs. It performs operations for which no previous integrated circuit was available. It solves a long-standing problem in a novel, non-obvious way. ED3 does this because it contains a new micro-program for its embedded micro-machine. ED3 is the same as ED2, except for its software. And that software makes ED3 a new device, which meets the criteria for patentability.
As mentioned above, new, useful software is not always patentable. But some software must be patentable, or the long history of patents for manufacturing process and electronic devices cannot be sustained as software becomes central to these inventions.