Print PDF

Packages of Computer Source Code Entitled to Copyright Protection

May 09, 2014
Esquenet, Margaret A.

Decision icon Decision

Last Month at the Federal Circuit - June 2014

Judges: O'Malley (author), Plager, Taranto

[Appealed from: N.D. Cal., Judge Alsup]

In Oracle America, Inc. v. Google Inc., Nos. 13-1021, -1022 (Fed. Cir. May 9, 2014), the Federal Circuit affirmed-in-part and reversed-in-part the district court’s decision, holding that the declaring code and the structure, sequence, and organization of packages of computer source code known as “application programming interfaces,” or API packages, were entitled to copyright protection.

The case stemmed from API packages in the Java programming language consisting of words and symbols that carry out various commands, and which Oracle America, Inc. (“Oracle”) licenses to software developers to write applications, or “apps,” for computers, tablets, smartphones, and similar devices. The Java system was originally created by Oracle’s predecessor, Sun Microsystems, Inc. (“Sun”), in 1996. Sun wrote multiple “ready-to-use” Java API programs, which it organized into “packages.” These prewritten shortcuts allow programmers to include certain functionality into their own programs without having to create new code from scratch. Each package contains “classes” that consist of code for specific functions known as “methods.” For example, one package at issue was “java.lang,” which contains a class called “math,” whose method instructs a device to find the larger of two numbers. Adopting the district court’s analogy, the Federal Circuit explained, “Oracle’s collection of API packages is like a library, each package is like a bookshelf in the library, each class is like a book on the shelf, and each method is like a how-to chapter in a book.” Slip op. at 7. Each package also contains declaring code, or the expression that “identifies the prewritten function” and “command[s] the computer to execute the associated implementing code,” which gives step-by-step instructions to carry out the function. Id. at 8.

At issue on appeal were thirty-seven API packages whose declaring code Google Inc. (“Google”) admittedly copied verbatim into its then-new software platform, Android. In bringing its copyright infringement claims, Oracle argued that its 7,000 lines of declaring source code and nonliteral elements of the thirty-seven Java API packages were protectable by copyright law. In its opinion, the Court sifted through a number of issues at hand, particularly focusing on answering the ultimate question of “whether [the] elements of the Java platform are entitled to copyright protection.” Id. at 15.

In addressing copyrightability generally, the Court reiterated that protection can extend to literal and nonliteral elements of a computer program. For instance, protection can extend to source and object code, and also to a program’s sequence, structure, organization, and interface. Additionally, the Court noted that the district court failed to apply the “abstraction-filtration-comparison” test, which is to be used when assessing the protectability of nonliteral elements of a computer program. The three steps of the test require the court to (1) break down the allegedly infringed program into structural parts; (2) sift out ideas and all other nonprotectable material; and (3) compare any remaining creative expression with the allegedly infringing program. In applying the test, the Court agreed with Oracle’s argument that the Java API packages are expressive and could have been written and organized in varying ways to achieve the same functions; thus, they are—and were—entitled to protection. The Court also agreed and explained that the district court erred when it “(1) concluded that each line of declaring code is uncopyrightable because the idea and expression have merged; (2) found the declaring code uncopyrightable because it employs short phrases; (3) found all aspects of the structure, sequence, and organization devoid of protection as a ‘method of operation’ under 17 U.S.C. § 102(b); and (4) invoked Google’s ‘interoperability’ concerns in the copyrightability analysis.” Id. at 26.

The Court held that the merger doctrine was incorrectly applied by the district court, and that the district court did not focus on the options available to an original author. The Court explained that the merger doctrine is an exception to the “idea/expression dichotomy”—which does not extend copyright protection to any “idea, procedure, process, system, method of operation, concept, principle, or discovery.” Id. at 18 (quoting 17 U.S.C. § 102(b)). Instead, under the merger doctrine, if there are only a few ways to express an idea, the idea essentially “merges” with the expression and thus becomes unprotectable. In this case, the Court held that the merger doctrine was inapplicable because the Ninth Circuit had previously determined that the distinctive arrangement of a computer program does not merge with the process if alternate expressions are available. The Court recognized that the Android class names and methods could have been different from the names used by Java, and still could have worked. For example, “java.lang.Math.max” could have instead been named “Arith.larger.” If Java’s authors only had a limited number of ways to express the methods and classes, then the idea likely would have “merged” with the expression, making the packages unprotectable, but the Court held that they did not and, thus, the merger doctrine was inapplicable.

The Court also held that the district court erred in concluding that Oracle’s declaring codes were uncopyrightable because they were short phrases. Although, under 37 C.F.R. § 202.1(a), words and short phrases such as “names, titles and slogans” are unprotectable under copyright law, the relevant inquiry is whether the manner in which a short phrase is strung together and used is creative, the Court noted. The Court further noted that Oracle is not seeking protection for single phrases, but short phrases strung together. Because an original “combination” of words can be copyrightable, the Court held that the district court erred in finding that the programs were unprotectable short phrases.

In addition, the Court reviewed the scenes a faire doctrine. This doctrine states that if an expressive element is standard or common to a topic or setting, that element of a work of authorship is not by itself subject to copyright protection. In the district court, Google argued that this doctrine applied because the programs were customarily used in the industry. But the district court rejected this defense, holding that there was not sufficient evidence to assert that all of the classes and their contents were subject to the doctrine. The Federal Circuit affirmed, holding that (1) the doctrine is not part of a copyrightability analysis, but rather a defense to infringement; (2) Google did not object to the district court’s conclusion that the factual record was not sufficient on this issue; and (3) a scenes a faire analysis must focus not on the alleged copier, but on the external factors faced by the author when first creating the work at issue.

The Court also reversed the trial court’s determination that the sequence, structure, and organization of the Java API packages were a “method of operation,” or solely served functional purposes, and thus unprotectable. The Court noted that the district court wrongly applied Lotus Development Corp. v. Borland International, Inc., 49 F.3d 807 (1st Cir. 1995), aff’d without opinion by equally divided court, 516 U.S. 233 (1996), which did not involve the copying of source code, but rather the copying of a menu command hierarchy with terms such as “Copy,” “Print,” and “Quit.” Slip op. at 37-38 (quoting Lotus, 49 F.3d at 809). Unlike the court in Lotus, the Federal Circuit noted that Ninth Circuit law recognizes that the structure, sequence, and organization of a computer program is protectable when deemed an expression, and that computers by their definition by Congress are functional. Thus, denying protection to a computer program simply because it is functional would be against Congress’s intent to provide protection to computer programs, and, thus, if a set of commands instructing a computer to carry out an operation contains a creative “expression,” it may be entitled to protection.

The Court also agreed with Oracle that the district court improperly included interoperability in its copyright analysis. On appeal, Google had maintained that its use of the “Java class and method names and declarations was ‘the only and essential means’ of achieving a degree of interoperability with existing programs written in the [Java language].” Id. at 50 (alteration in original) (citation omitted). However, the Court noted that “[w]hether Google’s software is ‘interoperable’ in some sense with any aspect of the Java platform . . . has no bearing on the threshold question of whether Oracle’s software is copyrightable.” Id. The Court did find that Google’s competitive objective may be relevant to a fair use inquiry.

In addressing additional points, the Federal Circuit acknowledged the four statutory factors to be considered when determining if a particular use is fair. At the lower court, the jury was hung on Google’s fair use defense and a new trial was denied. The Federal Circuit ultimately decided that the record contained insufficient facts on which it could base a de novo assessment of Google’s assertion of fair use; thus, the issue was remanded. The Court also affirmed the district court’s decision to grant Oracle’s motion for JMOL in regards to “eight decompiled Java files that Google copied into Android” and which contain security functions, and affirmed the district court’s decision to deny Google’s motion for JMOL in regards to nine lines of “rangeCheck” code because copying was “more than de minimis.” Id. at 62-66.

Summary authored by Margaret Esquenet, Esq. and Danielle Wright, Law Clerk at Finnegan.