"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."
Yes, rayiner, that's pretty broad but I don't see software in the list. Maybe I copied it out wrong?
The math is the algorithms effect on purely mathematical objects. The patent is the algorithm plus a mapping between the mathematical objects and real-world entities. This is how it should be. The problem we currently get wrong is the "non-obvious" term.
People are way too stuck on the "software is math" bit, it is not nearly as meaningful as people think. In fact, I think it is decidedly lacking in any meaning as everything in the universe can be abstracted to "math".
I think some would use that as justification to abolish all patents. I would love for that to happen, but pragmatically accept that such an outcome is unlikely, and in a world partially populated by devious thieves, trolls, and free-riders, potentially undesirable.
I still think software is meaningfully different from any other embodiment of an algorithm, due to its self-descriptive nature. Most of the time when I write software, I feel much more that I am "creating" (copyright) rather than "inventing" (patent). I can just "tell" the computer to do something, and it does it. That doesn't work for wheels and gears.
Inasmuch as there are better arguments against software patents, let's raise them as well, but I see no reason to abandon the mathematical argument entirely.
I think this is true for the vast majority of software, and likely for the vast majority of software people try to patent. I think you raise an interesting point regarding "telling a computer what to do" vs "inventing", and this seems like it would be a good distinction between non-patentable software and that which is patentable.
There is a subset of processes that essentially involve "telling a computer what to do", and then refining those instructions until the point where the computer knows how to execute each step. Obviously, this is just a description of writing software. But this process doesn't work for all problems. There is no telling a computer to "write a symphony"--there are no standard/obvious set of refinements to that statement that will result in a working program to write a symphony. To accomplish this would require "inventing" a new algorithm (lets not go "ergo math" just yet). One would have to create a non-obvious process to govern the interactions between input sounds to create the output symphony. I don't think anyone would have a problem with saying someone "invented" a symphony writing computer program.
On the other hand, the process of "one click ordering" has an obvious set of refinements from problem statement to execution such that you cannot reasonably be said to be inventing one click ordering.
Of course, these are probably the two most obvious examples on either side of the debate, but I think it illustrates the fact that these decisions can be made rationally and fairly with some common sense guidelines.
An algorithm is a mathematical expression, not merely something that can be described with mathematical expressions.
Consider my "method/process patent" for finding the length of a hypotenuse. It is easy to see why that is straight up math, and therefore should not be patentable. However just because they don't teach the notation used for expressing algorithms in primary school does not mean that it is not math.
The Pythagorean Theorem is ancient so it was never in any danger, but consider FFTs. FFT algorithms were not patented, but imagine what a shame it would be if they were. These type of patents have no business existing.
The only way this conclusion follows is if you're judging patentability of an idea by the impact the idea has had. This is plainly absurd. Lets consider the opposite, what if it were invented but the algorithm kept secret because patent protection didn't exist. Would humanity have been better off in that scenario? Processes like the FFT are exactly the types of software that are reasonable to patent, and yet you want to claim the opposite precisely because it was non-obvious and so important?
FFT, and things like it, are exactly the sort of software that should not be patented. Patent your minimal-clicking checkout process or bouncy kinetic scrolling all you want, I don't like those patents but they are reasonable. Those ideas aren't algorithms, they only use them; if I hold the patent for kinetic scrolling in my hand, I am not holding kinetic scrolling itself in my hand. If I hold an FFT algorithm patent in my hand, I am holding an FFT algorithm itself in my hand. Patenting algorithms themselves is patently absurd.
Would you be okay with the Pythagorean Theorem being patented as well? Mathematics does not currently suffer a trade-secret problem. Introducing patents would do nothing but harm to society, while enriching corporations.
What else do you believe to be patentable? Should Newton and Leibniz have escalated their conflict to an all-out patent war? Calculus is non-obvious and wildly important; would society be better off if it were patented?
Or hell, maybe Feynman should have patented Feynman Diagrams! If we are patenting mathematical expressions, why not throw in novel and useful notations for mathematical expressions as well! Any mathematician, physicist, or engineer will have to join the Mathematics Patents Experts Group in order to get any useful work done without being sued into homelessness, but at least all of those people won't be keeping their creations and discoveries secret, right?
Edit: Response:
Patents are for the benefit of society, not for the benefit of the creators. You cannot evaluate the merit of patentablity without considering the benefit to society.
We are sure as shit better off in a society where anyone doing ML research doesn't have to license ideas from IBM.
>FFT, and things like it, are exactly the sort of software that should not be patented.
Again, you are judging patentability by the impact of the idea. This is nonsense. For every idea worth patenting that has been invented, the world would be better off if everyone could use that idea unencumbered. This is a tautology. The interesting question is: how many of those ideas would remain trade secrets if they weren't patentable? This is the meaningful question here.
Had IBM chosen to keep it secret (and perhaps it would have been a smart business decision to do so), the world would be decidedly worse off. If they had patented it, the world would be better off compared to the world where that invention was kept a trade secret. This is the meaningful conclusion to be drawn from the FFT scenario.
So you don't like hypotheticals? Fine--lets consider Watson. How it works is currently a trade secret. Is the world better off for them keeping it a secret or publicizing and patenting it? I'll let you decide that one.
By the 1960s, the algorithm's time had come. It is inconceivable that it would have remained obscure for much longer -- patent or no patent, trade secret or no trade secret. Software simply does not work that way.
>You cannot evaluate the merit of patentablity without considering the benefit to society.
You misunderstand my point. You are evaluating the potential patent after we have observed its impact and thus judging it as too important to patent. We do not have a crystal ball to make these sorts of judgments in general, so using that as a rationale for the particular case of FFT makes no sense.
>We are sure as shit better off in a society where anyone doing ML research doesn't have to license ideas from IBM.
So the new ideas that IBM created will languish in IBM research for however many years/decades then? The alternative is an environment where universities and researchers can expand on their ideas freely. When a new product is created, sure they would have to license tech from IBM, but this is preferable to total secrecy. Patents have not prevented a myriad of other inventions from impacting the world, why would you think these examples of software patents would be different?
Because at the time I could not reply to your comment directly. I apologize if this has distressed you.
The reality of modern mathematics research is that most ideas do not languish as trade secrets, but are instead shared and built upon. Introducing patents into this system would do nothing but harm society and enrich corporations rich enough to throw money at legions patent lawyers.
We can look at examples from the past to predict future performance. The past paints a clear picture of patents being unnecessary, and a lack of them being beneficial to society.
We can also see the history of patents on other things like processors and the like, which have not stifled innovation in these fields to an obvious degree--we still have core i7 processors and ipads. It's not clear that past history is on your side.
What is not clear is that a patent free environment would be preferable either, as the inner workings of modern processor tech might be kept trade secrets or worse, no one bothers to develop this technology at all. It is decidedly not obvious that software patents are some sort of exception to this rule, and its definitely not because software can be reduced to math (as everything can).
Of course, if you did force specifics, then software patents would be pretty toothless as you can always find another process that ends up with the same result. However, if the patent office and courts had decided to take that approach, they wouldn't have had such a valuable income stream to play with, and I suspect they value that over consistency of approach.
An example of a solution would be to say that you can't go after someone for implementing an algorithm (so by extension any software). Rather than eliminating the patent eliminate that ability to enforce it. They likely wouldn't go for something so simple, but it is an example of the potential train of thought.
Software is usually claimed as a method, commonly accepted as a synonym for the statutory term process.
Some patents include claims directed to machines programmed to perform a stated method. The Federal Circuit held 20 years ago that a general-purpose that is programmed to perform a new method programming becomes a new, special-purpose computer that as such can be patented if otherwise eligible [1].
Another type of claim in a software patent is the so-called Beauregard claim. [2] That type of claim is directed to an "article of manufacture," one of the statutory categories, along the lines of the following: "15. A program storage device tangibly embodying a program of instructions for performing the method of a specified one of claims 1 through 14." That type of claim allows the patent owner to sue not just the end user for using the patented method, but also to sue the software vendor for having sold the patented article of manufacture.
(For clarity, Beauregard claims to program storage devices, etc., are unpatentable if the underlying software methods are themselves unpatentable. [3].)
[1] In re Alappat, http://digital-law-online.info/cases/31PQ2D1545.htm
[2] http://en.wikipedia.org/wiki/List_of_patent_claim_types#Beau...
[3] http://inventivestep.net/2011/08/22/federal-circuit-rules-be...