Hacker News new | past | comments | ask | show | jobs | submit login
Letter to the Patent Office From Professor Donald Knuth (1994) (pluto.it)
135 points by espeed on June 28, 2014 | hide | past | favorite | 48 comments



>>"I am told that the courts are trying to make a distinction between mathematical algorithms and nonmathematical algorithms."

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."


You and Knuth (and most others here) are operating under the same misunderstandings, the main one being a false equivalence between a patentable invention and the non-patentable underlying principles or elements that enable it. Let me just point to a previous comment that addresses this: https://news.ycombinator.com/item?id=7923894

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.


'If people had understood how patents would be granted when most of today’s ideas were invented, and had taken out patents, the industry would be at a complete standstill today.' Mr. Gates worried that 'some large company will patent some obvious thing' and use the patent to 'take as much of our profits as they want.'

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-...


Patent trolling is the final stage of the evolution of a software or tech company, before dissolution or death-merger.

E.g., Sun, SCO, Wang.


And clearly, with its 15 different billion-dollar a year businesses, Microsoft is at the edge of collapse.


Microsoft ceased being a growth company in the late 1990s / early 2000s. It's now a mature to late-mature tech company.

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.


Apple, Google, Facebook subsidiaries, Samsung, etc.


I wouldn't consider those to be dead or dying.

Yet.


A distinction should be made between buyers and sellers. As we understand the trolls buy the stuff.


Be careful about criticizing Gates on here, especially if you point out contradictions between his past and present behavior. I lost a ton of karma in another recent thread simply by agreeing with another poster that the "DOS isn't done 'til Lotus won't run" mentality that ruled Microsoft's early days wasn't exactly a shining example of business ethics.


I'm just curious, what value do you place in Internet karma. Conceptually I get why people give a damn about it- but why do you, personally, care about imaginary Internet points?


I don't place any value on "Internet karma" (and I can certainly afford the hit, in any event). But I do enjoy HN and respect its goals, and I hate to see it attacked by what amounts to moderation abuse. The Internet doesn't need another echo chamber or another game room.


Prof. Knuth's point boils down to:

> 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.


The more vague the laws we allow, the more prone they are to abuse. Also, it's not clear that there is any meaningful distinction that can be drawn between types of algorithms. Any process which has numbers (or symbols, bits, data, etc.) as input and output is mathematical. The fact that all types of data are equivalent may only go back to Godel or so, but algorithms themselves have been known as mathematical since the very beginning.

> "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.


Your mistake is assuming that the criterion for distinguishing between unpatentable math and patentable algorithms must come from within the domain of computer science. There is no reason that has to be the case. The distinguishing criterion can be wholly external, rooted in policy concerns.


Laws can be made in any way they like. The argument is not in how laws can be made, but in whether they are any good. This is an argument about quality and usefulness of law. As Knuth puts it, "Man-made laws can be significantly helpful but not when they contradict fundamental truths.".

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.


That is a truism that I did not find useful to call out. It's true that they can redefine words, even after millennia of usage, to suit their purposes. But, for example, defining that pi in legal contexts is exactly three serves only to make communication impractical, as if we are trying to talk to Humpty Dumpty in Alice & Wonderland whose words mean exactly what he wants them to and nothing else.

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.


The reason for making software patentable is just one:

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.


So what distinction, exactly, do you propose? Somehow a definition has to be offered that can be consistently applied by the courts. I don't see what that could be.

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.


> Algorithms are mathematical structures, and they're also machines.

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.


Any program you can write, you could build a physical machine to execute.

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?


Any algorithm has an infinite set of different physical machines that could be built that will execute it. A machine expressing an algorithm is not the same as the algorithm itself.


Excellent example of the lawyer's defense patent. I'm often in discussion with engineers from other fields taking patents as some holy grail. I now have some ammo to show that patents are not a generalized solution.

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.


It doesn't. It's building blocks all the way up. That's why I don't think that software should be patentable.


I agree with you, but what about copyrightable? I don't think that "swipe gestures with 3 fingers in a diagonal motion" should be patentable. But I don't think blatant ripoffs of entire applications should be protected or encouraged either.


If you copy the code, the specific artwork or the resulting binary, you're copying the expression, which is covered by copyright. If you copy the specific ornamental design, you may violate a design patent, if one was registered. If you copy the name or logo, or create one that is confusing, you may violate trademark law, if one was registered.

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.


Exactly. That's what Copyright is for, a perfectly fine way of protecting a software developer's work.


It occurs to me that the fight over software patents is all about marketing, which is (mostly) about money. After all, if you produce a unique piece of software, you have "first mover" advantage; the only way someone can eat your lunch is if they a) copy you and b) market it better than you.

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.


> If software patents had been commonplace in 1980, I would not have been able to create such a system, nor would I probably have ever thought of doing it, nor can I imagine anyone else doing so.

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 ?


>How would patents have prevented him thinking about it ? I don't understand this logic.

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.


yeah so it's more a business practice problem than anything else...

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 ?


> I don't understand this. How would patents have prevented him thinking about it ? I don't understand this logic.

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.


They don't prevent the initial idea but they do make implementing it pointless. For a current example A lot of educational software ideas fall into this due to Blackbards mass of patients and litigation happy stance.

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.


> I don't understand this. How would patents have prevented him thinking about it ? I don't understand this logic.

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.


Or even if just quicksort and mergesort were patented.


"I don't understand this. How would patents have prevented him thinking about it ? I don't understand this logic."

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.


Does anyone know if he received a reply?


Patent officers give no damn to Knuth! ...


We changed the url from http://progfree.org/Patents/knuth-to-pto.txt, which doesn't mention the date.


Knuth wrote: soon USA will lose domonant positions. His prediction was wrong, which leads me to think that his oppinion about software patents was highly theoretical assuming how it would be if..., because he truly believes that... Such arguments are emotionally driven.


[deleted]


He did invent Tex (including a line-breaking algorithm many consider important), many credit him with the foundations of algorithmic analysis, and string searching (Knuth-Pratt-Morris) has many commercial implications.

I think he's done the requisite share of invention to have a perspective here.


But Knuth did an excellent job in writing down basic algorithms. And without those the other "inventions" would not been possible. I am also not sure, if Knuth himself invented some basic algorithms for which he does not get credit, because they are not patented.

Guess, what would have been happened, when he had patented Tex. I am not sure, if not some of our todays software would be infringing.

This is not a mindless down-vote, but I must shake my head, about your ignorance.


Yes, maybe he too would be biased by profiting from them. That's not an argument for patents, though.


With all respect to Knuth, if you really inspect his arguments and assertions they are quite weak or have turned out unfounded.

* 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? :)


>>Is this right or wrong? Only if rent-seeking is right or wrong. The patent system is working exactly as it should be.

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.


> Is this right or wrong? Only if rent-seeking is right or wrong.

Wait, what? Rent-seeking is wrong. Please let me know if there is anything else you need clarified.


while i agree with the fact that rent seeking is wrong, you should present an argument as to why it is wrong, instead of just a condescending statement of the fact.


There is no actual dispute about the wrongness of rent-seeking, the only people who might think otherwise are either misanthropic Machiavellian jackasses who are themselves wrong or people who don't know what rent-seeking is. It's like saying "that's only wrong if corruption is wrong." Well no kidding corruption is wrong, does anybody actually want to dispute that or are you just asking for a link to the collected works of John Locke and Thomas Jefferson?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: