But no, the U.S. Patent Office didn't know anything about "prior art" in model railroad software. That is, to deny the patent claim, it needed to know that what Katzer was patenting had in fact existed for a year or more as a set of commonly discussed ideas. If it had looked, it would have found that for the 11 months preceding his application, an open source code project lead by Berkeley physics professor Robert Jacobsen was busy implementing those ideas.
How might the Patent Office have discovered that? By consulting the National Model Railroad Association Digital Command Control Working Group, a standards setting body. Both Katzer, who sells model railroad software through his KAM Industries, and Jacobsen are members. Its membership could have explained what ideas were "obvious" and subject to repeated, shared discussion for developing command station controls; how Jacobsen and others were writing model railroad control code; and how Jacobsen's Java Model Railroad Interface open-source project telegraphed its intentions by posting its architecture on a SourceForge Web site. The Patent Office could then have discovered that what others considered community property, Katzer was seeking to patent as private property.
But that's not how the undermanned U.S. Patent Office operates. When called upon to do so, it issues a patent for a claimed unique piece of software, unless it or someone opposed to the application finds documentation showing that the ideas behind the software were the common knowledge of those well-versed in the field. In order to reject, the patent examiner has to find documentation of the obvious. That can be hard to do. Software developers, by their peculiar nature, are interested in documenting what's not obvious.
Too late to worry about that now. Katzer, through his attorneys, sent Jacobsen a bill last year for $29 for each download of the open-source Java Model Railroad Interface code, a bill that came to $203,000. The bill hasn't been paid, but the JMRI project experienced "a chilling effect. Several developers have cut back their involvement, and some of the remainder are spending most of their time developing the defense against Mr. Katzer's assertions," said Victoria Hall, Jacobsen's attorney.
This is the first case I know of where a patent has stifled an open source code project. And in this case, the stakes were small. What's going to happen as millions or billions are at stake through skillful exploitation of software patents?
We as a society need to decide on the purpose of software patents. Are they meant to guarantee each claim of software ownership, regardless of whether it represents a true breakthrough? That's close to the practice today. Or should they be granted sparingly, with the obligation of proof on the applicant, not the patent examiner? That would take a new set of court decisions, perhaps even a Supreme Court decision.
Without such a determination, it's not going to be safe to invest volunteer effort in open source code projects. What gets produced may be functional, accomplished code that's widely used in the marketplace, but after years of work there's little defense for the developers against an obscure patent holder popping up to claim ownership.