The extent to which software inventions should be eligible for patent protection is currently under debate. Since 2014, patent applications identified as directed to “software” have received a significantly lower allowance rate than other inventions because they are considered abstract ideas under 35 U.S.C. 101 (see Appendix F), and thus are ineligible for patent protection.
If a patent application is prepared and filed for software or a device that relies heavily on software as the point of novelty, the patent application should disclose the algorithm (i.e., the software’s structure) that describes how to perform a function claimed in the Claim Set. There is no required format, but the algorithm should be expressed in a way that communicates the software’s structure.49
In Augme Technologies v. Yahoo the patent claim referred to “code assembler instructions” with only a black box in a diagram of the patent and no instructions on how to assemble the code (see 238 in Figure 7, below).50 If the patent does not disclose the algorithm of the claimed step, the patent is deemed indefinite. In this case, the court invalidated the patent claims because no algorithm was disclosed. Figures 7 and 8 below show the diagrams and their descriptions included in the patent. They illustrate what is not sufficient for disclosing a software algorithm.
The court stated that the verbiage in the specification explains that the “code assembler instructions” do the assembling and discloses inputs to, and outputs from, the code assembler instruction. However, the specification was lacking any algorithm for how the second code module is actually assembled. Simply disclosing that the black box performs a recited function is not a sufficient explanation of the algorithm required to render the claim term definite. The court is looking for something more than just a generic description. It cannot merely be stated that the second code module is assembled by “accessing” something. Merely “accessing” does not instruct someone how to assemble the second code module. Rather, the court is looking for specific instructions on how the second code module is actually assembled. Inventors that decide to pursue a software patent need to include the specific process of the software, or the patent (which is hard to obtain in the first place) will likely not be granted.
49. The algorithm should be expressed in “any understandable terms including a mathematical formula, in prose or as a flowchart, or in any other manner that provide sufficient structure
50. Augme Technologies v. Yahoo (Fed. Cir. 2014). In this case, the court invalidated Claims 19 and 20 of United States Patent No. 6,594,691 for being indefinite. Claims 19 and 20 recited a means for assembling said second server, said second computer readable code module. The patent owner contended that the specification disclosed an algorithm for assembling the second computer readable code module in Figure 5 and column 11, line 60–column 12, line 1 and column 4, lines 51–60 of United States Patent No. 6,594,691. Shown below are the actual figures and verbiage recited by the patent owner in support of definiteness