Menu
1. Two types of source code: Declaring and implementing
|
The district court distinguished the two types of source code at issue: declaring (header) and implementing (instructions for processing declared function). The former are used to instruct the computer to execute the latter; in a way, declarations can be seen as the program's grammar rules, while instructions are the coding equivalent of syntax. The 37 Java APIs were declarations that Google copied verbatim in Android; Google claimed it did so as a convenience to developers who were already familiar with the APIs from their use of Java. The other 131 APIs in Android were developed by Google from scratch. The rangeCheck function and the eight decompiled security files were the only implementing code in Android that Google did not write itself and instead copied from Java. (Id. at 1349-52.)
Along with the 37 Java APIs, Google copied the "elaborately organized taxonomy of all the names of methods, classes, interfaces, and packages," including more than 600 classes and 6,000 methods. (Id. at 1351, citing Oracle America, Inc. v. Google Inc., supra, 872 F.Supp.2d, at 983.) The taxonomy was referred to as the "structure, sequence, and organization" or "SSO" of the 37 APIs. (Ibid.) Source code and object code are identified as copyrightable "literal elements" (id. at 1355), citing Johnson Controls, Inc. v. Phoenix Control Systems, Inc. (1989) 886 F.2d 1173, 1175. In Lexmark International, Inc. v. Static Control Components, Inc., source code was described as "the spelled-out program commands that humans can read." (Lexmark Int’l, Inc. v. Static Control Components, Inc. (2004) 387 F.3d 522, 533.) A program's "non-literal elements" include its SSO and user interface. (Johnson Controls, supra, 886 F.2d 1173, 1175.) Whether a non-literal element is copyrightable depends on whether it is "an expression of an idea, or an idea itself." (Ibid.) 2. Originality requirement |