Talk by Richard M. StallmanThe Danger of Software Patents
After that introduction, I am sure many of you want to know about Free Software. But unfortunately that's not what I am supposed to speak about. In fact, this topic, software patents, is not very closely related to the issue of Free Software. Software patents are a danger that affect all programmers and all computer users. I found out about them of course in working on Free Software because they are a danger to my project as well as to every other software project in the world.
There is a very unfortunate phrase that you may have heard. It is the phrase "intellectual property". Now, there are two things wrong with this phrase. One - it prejudges the most important policy question about how to treat some kind of ideas or practices or work. So, whatever it assumes that they are going to be treated as some kind of property. Now, this is a public policy decision and you should be able to consider various alternatives to choose the best one. Which means you shouldn't name the whole field, name the question with with a term that prejudges what kind of answer you use.
But second and and even more fundamental, that term is actually a catalogue for totally different areas of law including copyrights, patents, trademarks, trade secrets and various other things as well. Now these areas of a law in fact have almost nothing in common. What the laws say is totally different from one to the next. Their origins are completely independent and the public policy issues that they raise are completely different. So the only intelligent way to think about them is to pick one of them and think about it; think about them separately.
So the intelligent way to talk about them is never to generalise about them but to talk about a specific one, you know, talk about copyrights or talk about patents or talk about trademarks, but never lump them all together as intellectual property because that is a recipe for simplistic conclusions. It is almost impossible to think intelligently about "intellectual property" and so I refuse to do that. I just tell people why the term is a mistake and then if you ask me for my opinion on copyrights or my opinion on patents it will take me an hour to tell you it. But they are two different opinions and my opinion on trademarks is something completely different as well.
So the most important thing for you to start with is never mix copyrights and patents as topics. They have nothing to do for each other. Let me tell you some of the basic differences between copyrights and patents: a copyright deals with a particular work, usually a written work and it has to do with the details of that work. Ideas are completely excluded from it. Patents, by contrast - well, patent covers an idea. It's that simple and any idea that you can describe - that's what a patent might restrict you from doing.
Now, copyrights have to do with copying; if you wrote something that was word for word the same as some famous novel and you could prove that you did this while you were locked up in a room and you have never seen that novel, this would not be copyright violation because it's not copying. But a patent is an absolute monopoly on using a particular idea. Even if you could show that you thought of it on your own that would be considered totally irrelevant. It doesn't help you.
Now, copyrights exist automatically. Whenever anything is written, it is copyrighted. Patents are issued through an expensive application process. There is an expensive fee and even more expense in paying lawyers, which of course tends to be good for big companies and the patent office says that it only issues patents for things that are unobvious. However, practically speaking, in many patent offices the criterion is unobvious to somebody with an IQ of fifty. And they have all sorts of excuses to ignore the fact that whenever any programmer looks at it his first statement is, "this is absurd, it's obvious." They say, "well, this is hindsight". So they have an excuse to completely ignore the judgement of everybody who really is a programmer.
Now, copyrights last an extremely long time. In the US today it's possible for copyrights to last for a 150 years, which is absurd. Patents don't last that long; they merely last for a long time - 20 years which in the field of software, as you can imagine is a long time. Now there are many other differences as well. In fact every detail is different. So the worst thing you should ever do is to learn something about copyrights and suppose that the same is true of patents. No, more likely it is not true of patents. If it's true of copyrights, it's not true of patents. That would be a better guideline if you had to guess.
Now most of the time when people describe how the patent system works they are people with a vested interest in the system. And so they describe the patent system from the point of view of somebody who wants to get a patent and then point it at programmers and say, "hand me your money". This is natural, you know, when they sell lottery tickets they talk about people who win, not people who lose. Of course most of the people lose, but they don't want you to think about them and so they talk about the ones who win. It's the same with patents.
The patent system is a very expensive lottery for its participants. But of course the people who run the system want you to think about the small chance you might win. So to redress this imbalance, I am going to explain what the patent system looks like from the point of view of somebody who might be a victim of a patent. That is, somebody who wants to develop software. So, suppose that you want to develop a program and you were in a country that has software patents. How do you have to deal with the patent system.
Well, the first thing is you have to find out about the patents that might potentially affect your area. This is impossible, because patents that are in the pipeline being considered by the patent office, are secret. Well, in some countries they are published after 18 months but that still gives plenty of time for it to be secret. So you might develop a program this year, which is perfectly legal and safe this year. And then next year, a patent could be issued and all of a sudden you could be sued. It happens, or your users could get sued.
For instance, in 1984 the compress program was developed and since it was Free Software. It was distributed by many companies along with UNIX systems. Well, in 1985, a US patent was issued on the LZW compression algorithm used by compress. And after a few years UNISYS began squeezing money out of various companies.
Well, since we in the GNU project needed a data compression program and since we could not use compress we began looking for some other compression program. We found that somebody came forward and said, "I have been working on this algorithm for a year and now I have decided I am going to contribute it to you. Here is the code". We were a week away from releasing this program when I just happened to see a copy of the New York Times , which doesn't happen very often, and it just happened to have the weekly patents column and I noted it and so I read it. It said that somebody had got a patent for inventing a new method, a better method of data compression.
Well, that was not in fact true. When I saw this I thought we'd better get copy of this patent and see if it's a problem and it turned out to cover exactly the same algorithm that we were about to release. So this program was killed one week before it was released. And in fact that person, that patent holder had not invented a better method because in fact it wasn't new, but that doesn't matter. He had a monopoly.
So eventually we found another compression algorithm which is used in the program that's known as GISA. But this illustrates the danger that you face: even if you had unlimited resources, you couldn't find out about all the patents that might endanger your project. But you can find out about the issued patents because they are published by the patent office. So in principle you could read them all, and see what they restrict you from doing. Practically speaking, though, once there are software patents there are so many of them that you can't keep up with them.
In the US there are over a hundred thousand of them; may be two hundred thousand of them. This is just an estimate. I know that 10 years ago they were issuing 10,000 a year and I believe it has accelarated since then. So it's too much for you to keep track of them unless that's your full-time job. Now you can try to search for those that are relevant to what you are doing, and this works some of the time. If you search for keywords or follow links you'll find some patents that are relevant to what you are doing. You won't find them all.
Now, a few years ago somebody had a US patent - may be it's expired by now - on natural order recalculation in spreadsheets. Now, what does this mean ? It means the original spreadsheets did the recalculation always from top to bottom. Which meant, if a cell depends on a lower cell, then it wouldn't get recalculated the first time. You have to do another recalculation to get that one. Clearly it's better to do the recalculation in the order, you know, if A depends on B then do B first and then do A. This way a single recalculation will make everything consistent.
Well, that's what the patent covered. Now if you search for the term spreadsheet you would not have found that patent because that term did not appear in it. The phrase "natural order recalculation" didn't appear either. This algorithm, and it was indeed the algorithm they covered basically every imaginable way of coding this algorithm. The algorithm is called topological sorting and that term did not appear in the patent either. It presented itself as a patent on a technique for compilation. So reasonable searching would not have found this patent but it would have been a reason to sue you.
In fact you can't tell what a software patent covers even roughly, except by studying it carefully. This is different from patents in other areas because in other areas there is some physical thing happening and the details of that physical thing usually give you a sort of anger so that you can tell whether it relates or not. But in software there is no such thing and so it's easy for two totally different ways of saying something to cover, in fact, the same computation and it takes careful study to see that they cover the same one. Because of this even the patent office can't keep track. So there is not one, but two patents covering LZW data compression. The first one was issued in 1985 and the second, I think, in 1989.
But that one had been applied for even earlier. One of this patent belongs to Unisys and the other belongs to IBM. Now, this kind of mistake is not in fact that rare. It's not the only one.You see patent examiners don't have a lot of time to spend on one patent. In the US they have an average of 17 hours per patent. Now that's not enough to carefully study all the other patents in the area to see if they are really the same thing. So they are going to make this kind of mistake over and over. So you won't find all the patents that might threaten you but you might find some of them.
So then what do you do? You have to try to figure out precisely what
these patents prohibit. That is very hard because patents are written
in tortuous legal language which is very hard for an engineer to understand.
You are going to have to work with a lawyer to do it.