In Article I, section 8, the U.S. Constitution:
Congress shall have power . . . To promote the progress of science and useful arts, by securing for limited times to authors and inventors the exclusive right to their respective writings and discoveries.
Note that Congress is only given this power in order to promote the progress of science and useful arts. If one can effectively argue that software patents have the opposite effect, and in fact hinder the progress of science and useful arts - and I think such an argument can be made - then it seems reasonable that the courts should strike down software patents as unconstitutional.
That said, Title 35 of the United States Code states:
>Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.
It is difficult to see how software patents could really fall under this. I don't know of any software patent describing a "process" which is not simply a mathematical algorithm (unpatentable), and they certainly don't describe a machine, manufacture, or composition of matter.
The patent described in Diamond v. Diehr is really not at all what we would today consider a software patent; it's not really similar to the patents on, say, wavelet compression in any sense beyond "there's silicon involved". It was a process of molding synthetic rubber, not pushing bits around.
And therein lies the problem. If you read SW patents they're usually pitched as processes over a computer device. This makes it hard to untangle from any other process that acts over some matter.
With that said maybe we get rid of processes altogether. I'd say get rid of everything except drug patents. But that would require congress to sign off.
The problem is that a computer is itself a mathematical construct. If the patents really wanted to describe a process on a device, they could not use as their "device" a Turing machine, because that is not a physical device in the sense of water sanitization. Whereas water sanitization requires the physical presence of water, a program can exist totally in theory as some bits in Wolfram's 2-state-3-symbol.
That is, unless you believe the mathematical universe hypothesis, but I don't think the Court's job is to decide whether the Universe exists!
I am also not a lawyer, nor formally educated in the field of law. I do know a bit about theoretical CS, though.
But with things such as DNA computers and nanotechnology, could one argue that the universe is a computer? Can everything just be described as a construction of objects in the real world with stimuli applied to it?
To me it just feels like a really slippery slope. Just say "medical drugs" and leave it at that.
A particular computer is not a mathematical construct. The concept of a computer, however, is a mathematical construct; there are no physical characteristics necessary to identify something as a "computer" for the purposes of e.g. arithmetic coding. I could perform arithmetic coding with nothing but a pen and an extremely large amount of paper.
BUT a pen and paper. A patent wouldn't be just the algorithm, but also a writing device and paper.
Everything is a theoretical until you do it in practice. You can't patent a cool 3D rendering algorithm. But you can patent a device that uses it and renders the output to a computer screen. This is how patents are written.
Well, yes, and if the patent says "a writing device and paper" it might be valid, because paper is a specific construct, and the patent obviously does not cover such things as e.g. a piece of cloth.
Why do you use bzip2 and not bzip? Well, because arithmetic coding is covered by a supposedly valid patent. However, bzip can be executed by hand, or on any multitude of devices satisfying the requirements for Turing-completeness. The idea that a patent should preclude the writing of bzip, a purely mathematical construct, is absurd. bzip runs on an abstract device.
You could, for instance, specify a specific processor in the patent, but this is not done. You could not, however, specify a processor architecture, because this is also a mathematical construct, which can be carried out on paper.
Let me give you an example: My uncle knows that a cell phone is a computer. How? Well, I told him, and I'm a researcher. How do I know? Well, originally, some professor told me, and he's a professor. How does he know? Well, he or his colleague studied the literature indicating that an ARM processor is Turing-complete... which, at the end of the day, is a totally mathematical consideration, independent of the physical world except perhaps the brains which analyze it.
>But you can patent a device that uses it and renders the output to a computer screen.
No, because each independent part of this is some prior art. The representation of data on silicon is long since public domain, the display of silicon data on a screen is long since public domain, the x86 architecture and the GPU architecture are mathematical, and the algorithm itself is mathematical, and the combination of these is not itself novel or interesting: it is not even performed except by the end user, who must merely double-click a game icon and shuffle some bits around with a mouse.
Actually I don't think its technically "Turing Complete". it doesn't have unbounded tape. In fact any given ARM processor will have a fixed addressable limit. I can certainly compute a class of things in theory that the ARM processor can't compute. There are real HW considerations that you need make when you deal with an actual physical processor that don't exist in the theoretical model.
And this sidesteps questions of complexity.
But this is similar to a patent on a new wing design. You can say it is simply a mathematical model of airflow and such. But the pudding is the creation, not the mathematical model of the wing.
Obviously -- it is a finite state machine, but this doesn't mean any less that it is a theoretical model.
>But this is similar to a patent on a new wing design. You can say it is simply a mathematical model of airflow and such. But the pudding is the creation, not the mathematical model of the wing.
No -- the wing is a physical object. I can hold a wing in my hand. Conversely, a patent on a wing design does not mean that I cannot use that wing design in a computer simulation of an airfoil. But a patent on bzip does mean, supposedly, that I cannot run bzip on a virtual machine. In other words, the wing design is the point, here: you could patent a specific device for running bzip, but you cannot patent bzip on all computing devices. Which, I suppose, might help to explain my point.