Letter to the Patent Office From Professor Donald Knuth (1994)
pluto.it
pluto.it
As Knuth implies, this is a fool's errand, and this is the reason why courts should not award any patents protecting an algorithm at all.
As a thought exercise, is "A website that advertises a series of random beers from a known collection of user preferred beers" mathematical?
No? Then, is a random shuffling algorithm mathematical based on a vector of inputs mathematical? No? How about the following code?
void sort(int *arr, int len) for (int i = 0; i < len; ++i) { r = rand % len; swap(arr + i, arr + r); }
Not mathematical? Then what about a function "s" described as s(x) = f(g(h(x))), where x is a vector, h multiplies the vector by the identity matrix, and g multiplies its input against the set of all possible matrices such that all elements are 1 or 0 and there can be at most 1 non-zero element for a given row and column, and f chooses a random input from its set and returns its multiplication against a vector of 1s?
These are, at their core, all algorithms, and they are all mathematical. The courts have already established that the "Internet of things" is not patentable, which is why the first example transfers to the second. This is admittedly a poor example, but for a better understanding read Knuth's "Fundamental Algorithms."
Applying that to your example, note that a patent on "random ads" would not preempt anyone else from using shuffling algorithms, and hence it is not the algorithm being patented.
Bill Gates in the early 90's [1]. Pretty similar line of thought, no? Unfortunately, now Bill Gates is a defender of Intellectual Ventures [2] and Microsoft extracts billions of dollars every year from open source software by asserting "infringement" on such software patents that should've never been granted, and doing the very thing that Gates was condemning when Microsoft wasn't in the abuser's position.
[1] - http://www.networkworld.com/article/2230877/microsoft-subnet...
[2] - http://arstechnica.com/tech-policy/2013/08/bill-gates-still-...
E.g., Sun, SCO, Wang.
Yet.
As pg called it, Microsoft lost its dominance over the tech world by the early-mid 2000s. It was no longer mandatory to have "a Microsoft strategy" (e.g., partner, out-compete, be bought out). Today the pace is set by Google, Apple, Amazon, and Facebook. In about that order. The Economist's cover from a year or so back highlighted this.
> To a computer scientist, this makes no sense, because every algorithm is as mathematical as anything could be.
But there is no reason for definitions in the law to mirror precisely the definitions of computer science. After all, a patentable drug formula is, to a chemist, just a description of a chemical system under the laws of chemistry. A patentable mechanical invention is, to a physicist, just a description of a physical system under the laws of physics.
The law very often makes distinctions between things that cannot be distinguished by their fundamental nature, on the basis of external policy reasons. The difference between murder and self-defense cannot be described by fundamental differences in the physical mechanics of the two actions. Now, that is not to say that software should be patentable, but rather that "all algorithms are math" is an irrelevant reason for making software not patentable. It's an interesting philosophical and theoretical point (not to mention, obviously true), but has no relation to the purposes of patent law.
Big corporations see an advantage in it.
That is all about it. That's the reason, they started with this and that is the reason, why nobody changes this system, although anybody with a clear mind can see what harm is being done. The corporations pay hundreds of lobbyists and lawyers to ensure, they can protect their support-system.
All the other reasons told, are just gibberish.
Algorithms are mathematical structures, and they're also machines. Both of these claims are true in the plainest, most common meanings of the words possible. An attempt to create a distinction between classes of algorithms has to be based on something. Again: what could that be?
EDITED to add: just so it's clear where I'm coming from -- I think algorithms are clearly patentable subject matter. The problem we have with software patents is that the obviousness bar is far, far too low.
Sorry, but you can kick a machine. You can not kick an algorithm, exactly like can you can not kick any kind of mathematical construction.
Now consider a physical general-purpose computer with your program loaded into it. Can you really argue that this is fundamentally a different kind of object than the special-purpose machine? They behave, let's suppose, identically.
Okay, maybe you would say, the program considered abstractly is still an object I can't kick, so it's not patentable; the only thing that's patentable is a physical computer with the program loaded into it. But that doesn't help you, because no one can actually use the program without loading it into a computer anyway. So if you get a patent on a computer with your program loaded, that has the same practical effect as a patent on the program itself. No?
> "all algorithms are math" is an irrelevant reason for making software not patentable
Not so, the statutes themselves are a bit unclear, but they say that processes are patentable but math is not. Unfortunately, the courts have not fully realized the fact that algorithms are mathematical processes nor are they overly clear about what is and is not math, as they have clever lawyers crafting arguments that go against what mathematicians have considered as math for millennia.
al-Khwārizmī may be responsible for the world algorithm, but they've been used by mathematicians since at least Euclid in ~300 BC.
You are right that the method for deciding on what parts of math are subject to patent can be wholly external to maths and not pay any attention to mathematics whatsoever, however what Knuth is saying, and I would tend to agree with him, is that this would be folly.
So it's true, they can create an arbitrary distinction. The problem with that is that it can be made to mean anything and, for that reason, is inherently meaningless.
I understand this to be the sort of vague law they, quite reasonably, normally attempt to avoid. I cannot see any reasonable justification for adopting that here, though I suppose that those in the patent bar have a monetary interest in saying otherwise.
I do have one remark, Knuth refers to algorithms as fundamental building blocks, but as every programmer knows - we like to abstract upon abstractions making solutions higher level, so when does something stop being a building block and where does something start to be a patentable product.
Software patents don't protect someone against blatant rip-offs of their product, those other laws do that. They merely prevent good ideas from disseminating quickly. The software patent system acts in exact opposition to its stated aim: encouraging innovation.
The two major ways you can be out-marketed are a) adding your product as a feature to a much larger, already successful product, and b) spending more money on marketing, adoption, and general product/market fit. (There is the possibility that you just get lucky on virality, like what happened with Flappy Birds, but that's extremely unlikely).
"The little guy" is helped tremendously by patents, because he now has tremendous leverage against against a company that does one of these two things with his idea. They are forced to license the invention.
This, in turn, falls apart when the invention is "obvious" or in some way "inevitable". This hurts both the big guy and the little guy - although arguably, it hurts the little guy even more than the possibility of theft, since the little guy is not spending his days reading patents.
I don't understand this. How would patents have prevented him thinking about it ? I don't understand this logic.
I totally agree that software patents are abusive and most of the time not useful to society, but why say it would prevent people from inventing stuff ?
Even if someone steals your invention, if it's a real breakthrough it will be used, don't you think ?
Anyway, Blackboard has little I incentive to buld a better product or bother trying to buy out competitors thus killing off a lot of innovation.
It would mean he would need a license for every building block of an algorithm. It would have meant early (and vital) algorithm research bogged down by lawyers and lawsuits. You can't release a free implementation without a license and so the free software ecosystem may not have appeared at all (and we wouldn't even realize what we lost). Lastly, Knuth is a mathematician and he could have chosen any number of specialties; early lawyerization of algorithm research may have denied us all his input in the field.
Current software giants benefited greatly from free ideas and copied mercilessly off each other. Even now the tendency is to have broad and inclusive cross-licensing, leaving mostly young companies in the firing line. The things that never get built probably dwarf any measurable damage caused by patent litigation.
also I don't understand why patent trolls are not patenting gzip, sorting algorithms or any other kind of technology.
I think the patent office use experts to approve a patent, so why are there such stupid patents ? Can't they just void them ?
Standing on the shoulders of giants. Imagine everything software-related that AT&T or IBM did in the 1960s was patented. There could have been no Xerox PARC. There could have been no Free Software Foundation. There could have been no Apple or Microsoft. There could have been no Compaq or any other PC clones. All of the contributions these organizations made to the state of the art and all of the benefits of competition they brought could have not existed.
It would be hard to think about computers formatting text if there were no computers that supported a GUI or fonts and configuring your operating system to allow the computer owner to access the frame buffer required a $20,000 site visit from the IBM service technician.
He would have rejected it as impractical as one could not release free software, as he did, given the constraints if the more fundamental algorithms had been patented.
Imagine if every sort of sorting was patented, for example.
Do you see all the fuss around 3D printers today?
Everybody could think about 3D printers 5 years ago, but no body could sell supplies because 3D printers patents had not expired.
This meant it was extremely difficult for anyone to make a 3D printer, compared with today when I could go to a web page, pay 400 dollars(instead of 40.000) and own one.
* emigration? No. U.S.A still has smart minds immigrating
* stifle innovation? No. Innovation still happens, progress is being made
* mathematical/non-mathematical and numerical/non-numerical distinction - Not clearly elaborated
* Limp analogy to to previous edicts (designating PI as 3 and Earth as flat) are category errors
---
We now see that the end result of the current patent set up is that it allows those with questionable morals and/or deep pockets to extract rent from the stuff of thought rather than land or housing as was the traditional way.
Is this right or wrong? Only if rent-seeking is right or wrong. The patent system is working exactly as it should be.
Note: I actually think that some algorithms which are of significant invention/discovery could/should be patented (I mean, why not?) but what happens is that many many many stupid algorithms get patented and also large corporations can defend turf by sewing patents in virtual land that they have traversed. Because the systems surrounding patents is equally broken, patents are broken. The original idea to reward inventors for ideas is still valid. We throw the baby out with the bath-water if we do not acknowledge this.
What say you? :)
Wait, what? Rent-seeking is wrong. Please let me know if there is anything else you need clarified.
This is a fatal oversimplification hiding in economist jargon. Is making money wrong? As an economist, the answer is "It depends." From a public utility standpoint, the point of patents is to encourage invention by protecting those who would not otherwise invent. Do you honestly believe that without patfents, the software industry will decrease in productivity?
>>* stifle innovation? No. Innovation still happens, progress is being made
What? Stifling and dead-stopping are two entirely different things. We're talking about the rate of innovation, not whether it's happening or not. Once again, do you think patents are hindering innovation?
>>The patent system is working exactly as it should be.
You can't use this claim as an argument. That's the entire matter at hand.