In the US I believe there are hundreds of thousands of software patents; keeping track of them would be a tremendous job. So you’re going to have to search for relevant patents. And you’ll find a lot of relevant patents, but you won’t necessarily find them all.
For instance, in the 80s and 90s, there was a patent on “natural order recalculation” in spreadsheets. Somebody once asked me for a copy of it, so I looked in our computer file which lists the patent numbers. And then I pulled out the drawer to get the paper copy of this patent and xeroxed it and sent it to him. And when he got it, he said, “I think you sent me the wrong patent. This is something about compilers.” So I thought maybe our file has the wrong number in it. I looked in it again, and sure enough it said, “A method for compiling formulas into object code.” So I started to read it to see if it was indeed the wrong patent. I read the claims, and sure enough it was the natural order recalculation patent, but it didn’t use those terms. It didn’t use the term “spreadsheet.” In fact, what the patent prohibited was dozens of different ways of implementing topological sort—all the ways they could think of. But I don’t think it used the term “topological sort.”
So if you were writing a spreadsheet and you tried to find relevant patents by searching, you might have found a lot of patents. But you wouldn’t have found this one until you told somebody, “Oh, I’m working on a spreadsheet,” and he said, “Oh, did you know those other companies that are making spreadsheets are getting sued?” Then you would have found out.
Well, you can’t find all the patents by searching, but you can find a lot of them. And then you’ve got to figure out what they mean, which is hard, because patents are written in tortuous legal language which is very hard to understand the real meaning of. So you’re going to have to spend a lot of time talking with an expensive lawyer explaining what you want to do in order to find out from the lawyer whether you’re allowed to do it.
Even the patent holders often can’t recognize just what their patents mean. For instance, there’s somebody named Paul Heckel who released a program for displaying a lot of data on a small screen, and based on a couple of the ideas in that program he got a couple of patents.
I once tried to find a simple way to describe what claim 1 of one of those patents covered. I found that I couldn’t find any simpler way of saying it than what was in the patent itself; and that sentence, I couldn’t manage to keep it all in my mind at once, no matter how hard I tried.
And Heckel couldn’t follow it either, because when he saw HyperCard, all he noticed was it was nothing like his program. It didn’t occur to him that the way his patent was written it might prohibit HyperCard; but his lawyer had that idea, so he threatened Apple. And then he threatened Apple’s customers, and eventually Apple made a settlement with him which is secret, so we don’t know who really won. And this is just an illustration of how hard it is for anybody to understand what a patent does or doesn’t prohibit.
In fact, I once gave this speech and Heckel was in the audience. And at this point he jumped up and said, “That’s not true, I just didn’t know the scope of my protection.” And I said, “Yeah, that’s what I said,” at which point he sat down and that was the end of my experience being heckled by Heckel. If I had said no, he probably would have found a way to argue with me.
Anyway, after a long, expensive conversation with a lawyer, the lawyer will give you an answer like this:
If you do something in this area, you’re almost certain to lose a lawsuit; if you do something in this area, there’s a considerable chance of losing a lawsuit; and if you really want to be safe you’ve got to stay out of this area. But there’s a sizeable element of chance in the outcome of any lawsuit.
So now that you have clear, predictable rules for doing business, what are you actually going to do? Well, there are three things that you could do to deal with the issue of any particular patent. One is to avoid it, another is to get a license for it, and the third is to invalidate it. So I’ll talk about these one by one.
First, there’s the possibility of avoiding the patent, which means, don’t implement what it prohibits. Of course, if it’s hard to tell what it prohibits, it might be hard to tell what would suffice to avoid it.