Tuesday, November 20, 2007

Software patents – Obstacles to software development (Part 2)

Now, that you have a predictable terrain for doing business(!) what are you going to do? Well, there are three approaches that you might try. Any of which is applicable in some cases.

They are

  1. Avoiding the patent
  2. Licensing the patent
  3. Overturning the patent in court.

Let me describe these three approaches and what makes them workable or unworkable.

14:35

1) Avoiding the patent

That means don't use the idea that the patent covers. This can be easy or hard, depending on what that idea is. In some cases, a feature is patented. Then you avoid the patent by not implementing that feature. Then it just matters how important is that feature. In some cases, you can live without it. A while ago, the users of the word processor XyWrite got a downgrade in the mail. The downgrade removed a feature which allowed you to pre-define abbreviations. That when you typed an abbreviation followed by a punctuation character, it would immediately replace itself with by some expansion. So that way you could define the abbreviation for some long phrase, type the abbreviation then the long phrase will be in your document. They wrote to me about this because they knew the Emacs editor has a similar feature. In fact, it had it since the 70's. This was interesting because it showed me that I had at least one patentable idea in my life. I knew it was patentable because somebody else patented it afterward! Actually, they had tried these various approaches. First they tried negotiating with the patent holder, who turned out not to negotiate in good faith. Then they looked at whether they could have a chance of overturning the patent. What they decided to do was take out the feature. You can live without this feature. If the word processor lacks only this feature, maybe people will still use it. But as various features start getting hit, eventually you end up with a program people think is not very good and they are likely to reject it. That is a rather narrow patent on a very specific feature.

16:51

What do you do with the British Telecom patent on traversing hyper links together with dial-up access? Traversing hyper links is absolutely essential to a major use of computers these days. Dial-up access is also essential. How do you do without this feature, which, by the way, isn't even one feature, it is really a combination of two just arbitrarily juxtaposed. It is rather like having a patent on a sofa and television in the same room.

Sometimes the idea that's patented will be so broad and basic that it basically rules out an entire field. For instance, the idea of Public Key Encryption which was patented in the US. The patent expired in 1997. Until then, it largely blocked the use of Public Key Encryption in the US. A number of programs that people started to develop got crushed. They were never really available because the patent holders threatened them. Then, one program got away. The program PGP, which initially was released as free software. Apparently, the patent holders by the time they got around to attacking, realized they might get too much bad publicity. So they imposed restrictions making it for non-commercial use only, which meant it couldn't catch on too much. So they greatly limited the use of Public Key Encryption for a decade or more. There was no way around that patent. There was nothing else you could do like that.

Sometimes a specific algorithm gets patented. For instance, there is a patent on an optimized version of the Fast Fourier Transform. It runs about twice as fast. You can avoid that by using the ordinary FFT in your program. That part of your program will take twice as long. Maybe that doesn't really matter, maybe that is a small part of the program's running time. Maybe if it is twice as slow, you won't really notice. Or maybe that means your program won't run at all because it will take twice real time to do its job. The effects vary.

In some cases, you can find a better algorithm. This may or may not do you any good. Because we couldn't use compress, in the GNU project we started looking for some other algorithm for data compression. Somebody wrote to us saying he had one. He had written a program and he decided to contribute it to us. We were going to release it. Just by chance, I happened to see a copy of the New York Times, It happened to have the weekly patent column in it. I didn't see a copy of the Times more than once every few months. So I looked at it and it said that somebody had got a patent for "Inventing a new method of compressing data". I figured I better take a look at this patent. I got a copy and it turned out to cover the program that we were just a week away from releasing. That program died before it was born. Later on we did find another algorithm which was un-patented. That became the program gzip, which is now effectively the de-facto standard for data compression. As an algorithm to use in a program for data compression, it was fine. Anyone who wanted to do data compression could use gzip instead of compress. But the same patented LZW compression algorithm was also used in image formats such as the GIF format. But there because the job people wanted to do was not to simply compress data but to make an image that people could display with their software, it turned out extremely hard to switch over to a different algorithm. We have not been able to do it in 10 years! Yes, people use the gzip algorithm to define another image format, once people started getting threatened with law suits for using GIF files. When we started saying to people stop using GIF files, switch over to this, people said "We can't switch. The browsers don't support the new format yet". The browser developers said "We're not in a hurry about this. After all, nobody is using this file format".

In effect, society had so much inertia in the use of the GIF format, we have not been able to get people to switch. Essentially, the community's use of the GIF format is still pushing sites into using GIF format with the result that they are vulnerable to these threats.

In fact, the situation is even more bizarre. There are in fact two patents covering the LZW compression algorithm. The patent office couldn't even tell that they were issuing two patents on the same thing. They couldn't keep track. There is a reason for this. It takes a while of study of these two patents to see that they really cover the same thing.

23:37

If they were patents on some chemical process, it would be much easier. You could see what substances were being used, what the inputs were, what the outputs were, which physical actions are being taken. No matter how they are described, you'd see what they were and then you would see that they are similar.

If something is purely mathematical, there are many ways of describing it, which are a lot more different. They are not superficially similar. You have to really understand them to see they are talking about the same thing. The patent office doesn't have time. The US Patent Office as of a few years ago, was spending on average 17 hours per patent. This is not long enough to think carefully about them, so, of course they make mistakes like that. In fact, I told you about the program that died before it was born. That algorithm also had two patents issued for it in the US. Apparently, it is not that unusual.

Avoiding the patents may be easy, may be impossible. It may be easy but it makes your program useless. It varies depending on the situation.

Here is another point I should mention: Sometimes a company or consortium can make a format or protocol the de-facto standard. Then, if that format or protocol is patented, that is a real disaster for you. There are even official standards that are restricted by patents. There was a big political uproar last September when the World Wide Web Consortium was proposing to start adopting standards that were covered by patents. The community objected so they reversed themselves. They went back to insisting that any patents had to be freely implementable by anyone and that the standards had to be free for anyone to implement. That is an interesting victory. I think that was the first time any standards body has made that decision. It is normal for standards bodies to be willing to put something in a standard which is restricted by patents and people are not allowed to go ahead and implement it freely. We need to go to other standards bodies and call on them to change their rules.

25:20

2) Licensing the patent

The second possibility instead of avoiding the patent is to get a license for the patent. This is not necessarily an option. The patent holder does not have to offer you a license, it is not required. 10 Years ago, the league for programming freedom got a letter asking for help from somebody whose family business was making gambling machinery for casinos and they used computers back then. He received a threat from another company that said we have the patents. You are not allowed to make these things. Shut down.

I looked at that patent. It covered having a number of computers on a network for playing games such that each computer supported more than one game and allowed you to play more than one game at a time.

You will find patent office really think that there is something brilliant about doing more than one of anything. They don't realize that in computer science, that's the most obvious way to generalize anything. You did it once and now you can do it any number of times, you can make a subroutine. They think that if you do anything more than once, that somehow means you are brilliant and that nobody can possibly argue with you and that you have the right to boss them around. Anyway, he was not offered a license. He had to shut down. He couldn't even afford really to go to court. I would say that particular patent was an obvious idea. It is possible that a judge might have agreed, but we will never know because he could not afford to go to court.

However, a lot of patent holders do offer licenses. They often charge a lot of money for that though. The company licensing the natural order recalculation patent was demanding 5% of the gross sales of every spreadsheet in the US. I am told that was the cheap pre-lawsuit price. If you actually made them sue you and they won, they'd demand more. You might be able to afford that 5% for licensing this one patent, but what if you need to license 20 different patents to make the program? Then all the money you take in goes on patents. What if you need to license 21 patents?

28:00

People in business told me that practically speaking, 2 or 3 of them would make any business unfeasible.

There is a situation where licensing patents is a very good solution. That is if you are a multinational mega-corporation. Because these companies own a lot of patents, and they cross-license with each other. That way, they escape most of the harm that the patent system does and they only get the good. IBM published an article in Think magazine. I believe it was issue No. 5 of 1990 on IBM's patent portfolio, which said that IBM got two kinds of benefit from its 9000 US patents. I believe the number is larger today. These were first, collecting royalties and second, getting access to the patents of others. They said that the latter benefit is an order of magnitude greater. So the benefit that IBM got from being allowed to use the ideas that were patented by others was 10 times the direct benefit IBM could get from licensing patents. What does this really mean?

What is the benefit that IBM gets from this access to the patents of others? It is basically the benefit of being excused from the trouble that the patent system can cause you. The patent system is like a lottery. What happens with any given patent could be nothing, could be a windfall for some patent holder or a disaster for everyone else. But IBM being so big, for them, it averages out. They get to measure the average harm and good of the patent system. For them, the trouble of the patent system would have been 10 times the good. I say would have been because IBM through cross-licensing avoids experiencing that trouble. That trouble is only potential. It doesn't really happen to them. But when they measure the benefits of avoiding that trouble, they estimate it as 10 times the value of the money they collect from their patents.

This phenomenon of cross-licensing refutes a common myth, the myth of the starving genius. The myth that patents "protect" the "small inventor". Those terms are propaganda terms. You shouldn't use them. The scenario is like this: Suppose there is a brilliant designer of whatever of whatever. Suppose he has spent years starving in the attic designing a new wonderful kind of whatever and now wants to manufacture it and isn't it a shame the big companies are going to go into competition with him, take away all the business and he'll "starve". I will have to point out that people in high tech fields are not generally working on their own and that ideas don't come in a vacuum, they are based on ideas of others and these people have pretty good chances of getting a job if they need to these days. So this scenario, the idea that a brilliant idea came from this brilliant person working alone is unrealistic and the idea that he is in danger of starving is unrealistic. But it is conceivable that somebody could have an idea and this idea along with 100 or 200 other ideas can be the basis of making some kind of product and that big companies might want to compete with him. So let's see what happens if he tries to use a patent to stop them. He says "Oh No, IBM. You cannot compete with me. I've got this patent. IBM says let's see. Let's look at your product. Hmmm. I've got this patent and this one and this one and this one and this one and this one, which parts of your product infringe. If you think you can fight against all of them in court, I will just go back and find some more. So, why don't you cross license with me?" And then this brilliant small inventor says "Well, OK, I'll cross license". So he can go back and make these wonderful whatever it is, but so can IBM. IBM gets access to his patent and gets the right to compete with him, which means that this patent didn't "protect" him at all. The patent system doesn't really do that.

33:25

The mega-corporations avoid, for the most part, the harm of the patent system. They see mainly the good side. That is why they want to have software patents. They are the ones who will benefit from it. But if you are a small inventor or work for a small company, the small company is not going to be able to do this. They try. The problem is that they cannot get enough patents to do this. Any given patent is pointing in a certain direction. So if a small company has patents pointing there, there and there and somebody over there points a patent at them and says give me your money, they are helpless. IBM can do it because with these 9000 patents, they are pointing everywhere, no matter where you are, there is probably an IBM patent pointing at you. So IBM can almost always make you cross license. Small companies can only occasionally make someone cross-license. They will say they want patents for defensive purposes but they won't get enough to be able to defend themselves.

34:45

There are cases where even IBM cannot make someone cross-license. That is when there is a company whose sole business is taking a patent and squeezing money out of people. The company that had the natural order recalculation patent was exactly such a company. Their sole business was to threaten to sue people and collect money from people who were really developing something.

There are no patents on legal procedures. I guess the lawyers understand what a pain it would be to have to deal with the patent system themselves. The result is that there is no way to get a patent to make that company cross license with you. So they go around squeezing everyone. But I guess companies like IBM figure that is part of the price of doing business so they can live with it.

So that is the possibility of licensing a patent which may or may not be possible and you may or may not be able to afford it.

0 komentar:

Powered by WebRing.