Thursday, August 11, 2011

Yes, software patents are evil (and what to do about it)

There's been a flurry of discussion on HN recently about patents. In particular, Paul Graham's 2006 essay on the topic is making the rounds again. As always, I have a lot of respect for Paul, and he usually gets things right, but not this time. He writes:

One thing I do feel pretty certain of is that if you're against software patents, you're against patents in general. Gradually our machines consist more and more of software. Things that used to be done with levers and cams and gears are now done with loops and trees and closures. There's nothing special about physical embodiments of control systems that should make them patentable, and the software equivalent not.

No, that's not true. It's a specific example of a more general fallacy which is sort of the inverse of the slippery-slope fallacy. (This version of the fallacy probably has a name too, but I can't find it.) The slippery slope fallacy argues against a small policy change on the grounds that it might lead to a larger policy change whose consequences are clearly undesirable. (This is used, for example, to argue against gay marriage because it might lead some day to people marrying their pet hamsters.) The inverse fallacy is that because we can't draw sharp lines dividing a continuum into discrete chunks that we should just give up and treat the entire continuum as if there were not distinctions to be made at all. This is Graham's version of the fallacy. Because our machines gradually consist "more and more" of software there's no point in trying to draw a line between inventions that consist of software and those that don't.

There are two reasons this is wrong. First, there is a sharp line you can draw between an invention that consists partly or wholly of software but where the complexity of the problem that the invention solves is driven by features of the physical world. For example, consider an algorithm for generating and recognizing QR codes. The reason this is hard is because to be useful a QR code has to be rendered on a physical medium, and then that image has to be captured by a camera. In that process, the original data can be obscured and corrupted in a large number of different ways. The image can be noisy or partially obscured. The camera can be rotated or held an an oblique angle. All of these things make dealing with QR codes hard. The reason the QR code algorithms are useful is that they solve these problems. That is what makes them worthy of being patented.

Contrast that with this patent on multiply-linked lists. This is a patent that clearly should never have been issued. The prior art goes back at least as far as 1970, probably as far back as 1959, and possibly even earlier than that. But independent of the prior art, it is a pure software patent. The problem it addresses (insofar as it addresses a problem at all) does not arise from the physical world. It is a problem and corresponding solution that exists entirely in the realm of software and abstract mathematics.

Now, there are some ideas in this realm that are also worthy of patents, like elliptic curve cryptography. The problem is that the patent office has shown itself to be singularly inept at distinguishing worthy software patents from worthless ones, and the worthless ones are doing serious damage to our economy. So this is the second reason that opposing software patents is not opposing patents in general. It is arguable that empirically software patents are doing more harm than good, that this is not the case (for whatever reason) in non-software patents, and so one can reasonably oppose software patents without opposing patents in general on purely practical grounds.

But I think there is a happy middle ground that would make everyone happy. I've proposed this before, I'll propose it again: simply open the patent issuing process up to public comment. Before a patent is issued, publish the patent and invite public comment. All the PTO needs to deny a patent is plausible deniability that it should not be issued, and I'm sure there are plenty of volunteers in the software world who would be more than happy to spend some time policing the system. It's a win-win. Which means it almost certainly won't happen.


Don Geddis said...

Brilliant idea, but as you say, it won't happen. Because the Patent Office is actually a revenue source, in a government desperately short of cash. The Patent Office is supposed to optimize the good to society at large, by offering a monopoly in order to encourage innovation. But the Patent Office hasn't acted this way in recent memory (if it ever did). Instead, the Patent Office reports "success", as the total revenue from patent filing fees. The concept that granting a bad patent may cost society at large far more than the Office makes in revenue, appears nowhere in the Patent Office's internal calculations and reporting.

It's a horrible shame. It's not (just) that they're doing a bad job. They aren't even trying.

Anonymous said...

Already happened. It was a pilot project that ended recently because of lack of participation.

But wait, there are already mechanisms in place for 3rd parties to submit art within two months of publication of the patent application. The Pilot Project that failed just permitted more time.

So when you say there are plenty of volunteers in the software world who would be happy to spend some time policing the system, the evidence goes the other way. If you still think there are such volunteers, then ask them why they are still not submitting art within 2 months of publication of applications?

Ron said...

Well, I for one didn't participate simply because I was unaware that the program existed. I wonder if anyone at the FSF knew that it existed, and if so, why they didn't send out a call for people to participate.

I could be wrong that there are plenty of people willing to volunteer. That was just a guess based on the fact that there are manifestly plenty of people willing to volunteer to write software. Maybe all that's needed is a little PR. Or maybe the economic incentives to maintain the current broken process are too large to overcome.