Programming Freedom At Risk
Trends In Software Patents And Copyrights Threaten Programmers' Tools, Ideas
September 17, 1990
Recent trends in copyright and patent law as they apply to computer software have struck a dissonant chord with many in the industry. A key example is the recent grant of a patent to Unisys for a "High Speed Data Compression and Decompression" algorithm. This algorithm, as it is appears in software, is familiar to nearly every Unix programmer as a program called compress.
Compress is used to compress files so that they take up less disk space or can be transferred over networks faster. The source code for compress is freely available from a number of sources and has been included for many years as a standard part of Unix operating systems such as SunOS. The algorithm for compress was developed by Terry Welch when he was employed by Unisys, and published in the June 1984 issue of IEEE Computer magazine. Unisys set into motion a patent application soon after.
Because a patent owner can prevent others from making, using and selling its "invention," Unisys is in a good position to expect licensing fees from everyone who markets a product that uses the compress algorithm, and to sue those who refuse. The result is that many vendors will eliminate compress, not because Unisys sues them, but because Unisys could sue them. It is likely that the Free Software Foundation, which was planning to bundle compress with its software, and the IEEE POSIX User Portability Extension Group, which was going to make compress a requirement for POSIX compliance, will no longer consider compress. Such is the nature of a young and ill-defined concept known as the "software" patent.
Determining what things can and cannot be patented is a tricky matter. Patent guidelines are largely defined by two methods: laws passed by Congress and court rulings that interpret those laws.
The Patent Act, which Congress enacted in 1952, is still the basic source for patent guidelines, though it has been amended several times. Section 101 of the Patent Act says that patents may be granted for "any new and useful process, machine, manufacture, or any new and useful improvement thereof." Section 102 goes one step further by saying that applicants must prove that their invention was not part of "prior art," meaning it was not known, used or written about by others before they invented it. Finally, Section 103 says that the invention must not be "obvious" in light of similar existing inventions.
These guidelines do not exclude an invention from using old ideas, but the new portion of the invention must be non-obvious and distinct when compared to previous inventions. A good example that every Unix user is familiar with is Dennis Ritchie's patent on the Unix setuid mechanism. Ritchie states that "Access permission bits are used in the prior art," which means that permission bits were already invented beforehand, but that "an additional access control bit is added to each executable file" called the "set user identification bit."
Up until 1981, the Patent Office declined to consider software patents. The two major court decisions influencing the Patent Office were Gottschalk vs. Benson and Parker vs. Flook. In Benson, a patent application was filed that described a method for converting binary-coded decimal numbers to binary numbers, and it was specifically indicated that the patent covered the use of the method in any digital computer.
The Supreme Court rejected the patent application on the grounds that the patent "would wholly preempt the mathematical formula and in practical effect would be a patent on the algorithm itself." This decision was based on the court's definition of an "algorithm" as a "procedure for solving a given type of mathematical problem" and something that could only be patentable as applied to a specific "process"; otherwise the "algorithm" is considered an "abstract intellectual" concept that the court considers "basic tools of scientific and technological work," and therefore unpatentable.
In Parker vs. Flook, a method for updating alarm limits during a catalytic conversion process was submitted for patent and rejected on the grounds that the only new feature of the method was the mathematical formula for computing the new alarm limits. Referring to Benson, the Supreme Court ruled that "an improved method for calculation, even when tied to a specific end use, is unpatentable subject matter under Section 101."
If these two decisions seem confusing, it is because they are. They do not rule out the possibility of software patents, but neither do they provide any guidelines.
In 1981, the Supreme Court ruled, in Diamond vs. Diehr, that a rubber molding process that included the use of a digital computer was patentable. The digital computer, in this case, ran software that automatically calculated the curing time needed by the rubber and opened the press at the appropriate times. This ruling has been broadly interpreted since as including software under the coverage of a patent and is the basis for our dilemma today.
Since the Diehr ruling, hundreds of software patents have been applied for. The compress patent is but one of many that will affect the industry. AT&T has been granted a patent that includes the technique called "backing store," which is used by X-Window servers to save screen update information from overlapping windows so that displays can be refreshed quickly when the windows are moved. Another patent includes "natural order recalc," a common spreadsheet calculation technique that propagates changes to other spreadsheet entries when changes are made to a spreadsheet.
A patent held by Quickview Systems covers a certain arrangement of nested scrollable objects that could easily be programmed using any modern windowing system. The individual objects are not patentable as prior art, but the combination of objects is. Apple has been sued for infringing on this patent in its Hypercard software. Clearly, there are a seemingly endless number of possible software patents based on the previous examples, and each software patent has the potential for further limiting the techniques and tools of the programmer's trade. Since patents are frequently based on prior art, as in the setuid patent, it may soon become nearly impossible to write a non-trivial program without using some patented techniques. Since patents take years to obtain and are expensive, the industry has barely started to feel the effects.
Guidelines issued by the Copyright Office say that copyright protection covers "the literary or textual expression contained in computer programs," and not "ideas, program logic, algorithms, systems, methods, concepts, or layouts." Presumably, the latter are the subject of patents. The difference between patents and copyrights is frequently summarized by saying that patents apply to ideas, while copyrights apply to the expression of ideas.
Congress passed the Copyright Act of 1976, which, for the first time, mentioned that computer programs are protected by copyright. The Copyright Act of 1980 refined protection further by including the definition of a computer program as "a set of statements or instructions to be used directly or indirectly in a computer in order to bring about a certain result."
In order to be eligible for copyright, a computer program must satisfy some seemingly obvious requirements of "fixation" and "originality," meaning it must exist in some tangible form, not just in one's head, and it must be an original expression.
Copyright eligibility for computer source code has never been questioned, so some early legal battles such as Williams Electronics vs. Artic International and Apple vs. Franklin revolved around whether object code (the compiled form of the computer program) and ROMs (computer programs stored on chips) are copyrightable.
A key argument in favor of copyright protection is the ability to "disassemble" the object code back into the original source code. The decisions, favoring protection of object code and ROMs as legitimate "copies" of computer programs, coupled with industry fears that the Japanese would steal chip designs, prompted Congress to pass the Semiconductor Chip Act of 1984, which extends copyright protection to chip designs or "masks."
Until 1986, software copyright protected only source code and object code. But since then, in a number of controversial court decisions, copyrights have been extended to include the "look-and-feel" of user interfaces produced by the programs.
The cases of Broderbund Software vs. Unison World and Digital Communications vs. Softklone both involved existing software: Broderbund's Print Shop and Digital Communications Crosstalk XVI. In each case, a clone product was created that mimicked the user interfaces of the programs. Unison World's Printmaster and Softklone's Mirror had the same "look-and-feel" of Print Shop and Crosstalk XVI, respectively, because the screens and keystrokes used were very similar.
The courts decided, in a rather confusing way, that the screen output constituted a protected "expression" of the program and was therefore included under copyright. In Broderbund, the court said that a "rival software publisher is completely free to market a program with the same underlying idea, but must express it through a substantially different structure." With Softklone, the courts went a step further by allowing the user interface screen to have its own copyright. Making a distinction between patent and copyright, the court said, "Idea is the process or manner by which the status screen . . . operates and the `expression' is the method by which the idea is communicated to the user."
These decisions, shrouded in semantic vagueness, nearly guarantee that lawsuits will be threatened whenever similarities occur in user interfaces that could apply to a wide range of "expression" features like screen ordering, color usage, keystrokes and menus.
Recent action in the computer industry has Lotus suing and winning decisions over 1-2-3 clone makers such as Paperback Software; Ashton-Tate suing Fox Software over Foxbase, a dBASE look-alike; and Apple suing Microsoft and HP over user interface similarities between Windows and MacOS.
THE LEAGUE FOR PROGRAMMING FREEDOM
Much of the confusion surrounding software patents and copyright litigation stems from lack of written precedent. The Copyright and Patent offices never established reasonable guidelines for the computer industry, leaving the matter for the courts to decide. The courts, with as little computer expertise as the offices, have handed down two questionable decisions, Diamond vs. Diehr and Broderbund vs. Unison World, that have largely defined those guidelines. These rulings allow a broad range of protection for user interfaces and software patents, but no protection for the innovation and creativity of programmers, whose methods and tools are in serious jeopardy.
Rising from this legal abyss of copyright and software rulings is the new champion of First Amendment rights, the League for Programming Freedom. The LPF is a political action committee formed in October 1989 to oppose "look-and-feel" software copyrights, software patents and any "new forms of monopolistic" practice. The LPF currently has several hundred members, including pioneers in the software industry such as Marvin Minsky, founder of MIT's AI Laboratories, and John McCarthy, creator of the LISP programming language. The president of the LPF, Richard Stallman, is widely known as the progenitor of the Free Software Foundation, which manages the GNU project, an ongoing, highly successful project to create a freely available Unix-compatible operating system. He was recently awarded $240,000 by the MacArthur Foundation, which recognizes outstanding talent in the arts and sciences.
The LPF has helped bring media attention to the issues that threaten programming freedom by sponsoring rallies, such as demonstrations in front of Lotus in protest of their "look-and-feel" lawsuits. They also participate in court battles by filing "friend of the court" briefs.
Another worthwhile group that is fighting for users' rights rather than programmers' rights is the Electronic Frontier Foundation (EFF), started by Lotus founder Mitch Kapor. The foundation is interested in legal issues concerning telecommunications and the use of networks as a means of communication.
Copyright and patent law as it is currently practiced is rapidly becoming the programmer's apartheid. In the fertile land of expanding software technology, corporations that hold key software patents and "look-and-feel" copyrights are gaining unprecedented economic and intellectual control of the key resources.
Corporations that bring lawsuits in defense of software patents and "look-and-feel" copyrights, are, in effect, a powerful, growing army that seeks to create a monopoly over programmers' tools and ideas.
Because the battles occur in the detached reality of courtrooms, there has been little direct impact on the common people of the industry, the programmers.
The LPF is the only organization dedicated to championing the rights of computer programmers. It's worth your support.
League for Programming Freedom
1 Kendall Square, No. 143
P.O. Box 9171
Cambridge, MA 02139
(Copyright 1990 CMP Publications, Inc. All rights reserved.)