Oracle America, Inc. v. Google Inc.
Filing
1116
TRIAL BRIEF May 10, 2012 Copyright Liability Trial Brief by Google Inc.. (Van Nest, Robert) (Filed on 5/10/2012)
1
2
3
4
5
6
7
8
9
10
11
12
KEKER & VAN NEST LLP
ROBERT A. VAN NEST - # 84065
rvannest@kvn.com
CHRISTA M. ANDERSON - # 184325
canderson@kvn.com
MICHAEL S. KWUN - # 198945
mkwun@kvn.com
633 Battery Street
San Francisco, CA 94111-1809
Tel: 415.391.5400
Fax: 415.397.7188
KING & SPALDING LLP
DONALD F. ZIMMER, JR. - #112279
fzimmer@kslaw.com
CHERYL A. SABNIS - #224323
csabnis@kslaw.com
101 Second Street, Suite 2300
San Francisco, CA 94105
Tel: 415.318.1200
Fax: 415.318.1300
KING & SPALDING LLP
SCOTT T. WEINGAERTNER
(Pro Hac Vice)
sweingaertner@kslaw.com
ROBERT F. PERRY
rperry@kslaw.com
BRUCE W. BABER (Pro Hac Vice)
1185 Avenue of the Americas
New York, NY 10036
Tel: 212.556.2100
Fax: 212.556.2222
IAN C. BALLON - #141819
ballon@gtlaw.com
HEATHER MEEKER - #172148
meekerh@gtlaw.com
GREENBERG TRAURIG, LLP
1900 University Avenue
East Palo Alto, CA 94303
Tel: 650.328.8500
Fax: 650.328.8508
13
14
Attorneys for Defendant
GOOGLE INC.
15
UNITED STATES DISTRICT COURT
16
NORTHERN DISTRICT OF CALIFORNIA
17
SAN FRANCISCO DIVISION
18
ORACLE AMERICA, INC.,
19
20
21
22
Plaintiff,
Case No. 3:10-cv-03561 WHA
GOOGLE’S MAY 10, 2012 COPYRIGHT
LIABILITY TRIAL BRIEF
v.
Dept.:
Judge:
GOOGLE INC.,
Courtroom 8, 19th Floor
Hon. William Alsup
Defendant.
23
24
25
26
27
28
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
TABLE OF CONTENTS
2
3
Page
I.
Google requests that the Court hold that the structure, sequence and organization
(“SSO”) of the 37 API packages is not copyrightable. ........................................................1
II.
Google’s responses to the Court’s questions .......................................................................1
4
5
A.
6
Question 1: The vocabulary and grammar of a computer language—as
distinct from programs written in the language—are not copyrightable
because the Copyright Act protects expression, not vocabulary. ............................1
7
1.
Copyright does not protect vocabulary, and that lack of protection
extends to the SSO of vocabulary. ...............................................................1
2.
The ECJ’s decision in SAS Inst. Inc. v. World Programming Ltd
supports the conclusion that the vocabulary of a programming
language cannot be copyrighted...................................................................4
8
9
10
11
B.
Question 2: If each API method is treated as a program, then Google did
not copy anything more than the name and declaration of that program,
which is not copyrightable. ......................................................................................5
C.
Question 3: The form of the fully qualified names of the methods in the 37
API packages is “package.class.method,” where the package names start
with “java.” or “javax.” and this form is required by the syntax of the Java
language. ..................................................................................................................6
D.
Question 4: Google could have come up with at least some different names
and SSO yet still provided similar functionality in Android, but this would
not have been consistent with industry custom and developer demand. .................6
12
13
14
15
16
17
1.
Many of the elements of the 37 API packages are required by the
Java language. ..............................................................................................7
2.
Industry custom and developer demand require implementation of
the 37 API packages.....................................................................................8
3.
When developing new APIs in the Java language, it is standard
practice to build upon the standard J2SE APIs. ...........................................9
4.
The Court should disregard Mr. Ellison’s testimony about Spring. ............9
18
19
20
21
22
23
E.
Question 5: The input-output scheme of a method is not copyrightable. .............10
24
F.
Question 6: The “core” packages in 1996 included at least java.lang,
java.io and java.util, and today include at least 34 of the accused packages. ........10
G.
Question 7: The Java language requires more than just the java.lang,
java.io and java.util packages. ...............................................................................11
H.
Question 8: All 37 accused API packages should be deemed
“core”packages. .....................................................................................................12
25
26
27
28
i
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
I.
Question 9: There are cross-method, cross-class interdependencies at the
implementation level in J2SE, and those implementation level
interdependencies are not always duplicated in the Android
implementations. ....................................................................................................12
J.
Question 10: At the name/declaration level, the only interdependencies in
the Java language come from (1) the package/class/member organizational
scheme; (2) inheritance via subclassing and subinterfacing; and
(3) interface implementation. .................................................................................13
K.
Question 11: The Seventh Circuit’s decision in American Dental Ass’n v.
Delta Dental Plans Ass’n, was either wrongly decided, or unclear about the
scope of its holding. ...............................................................................................13
L.
Question 12: CDN, Inc. v. Kapes was not about a method of operation or
system. ...................................................................................................................15
M.
Question 13: Android is compatible with the 37 API packages at issue
because code written to use those APIs will compile and work properly on
an Android device. .................................................................................................16
N.
Questions 14-15: In the Java language, “inheritance” is a concept
applicable to classes, not packages; by virtue of the Java language
specification, a subclass inherits fields, methods, and other members from
its superclass. .........................................................................................................17
O.
Question 16: Copyright protection does not extend to names, including
fully qualified names, nor does it extend to input-output (argument-return)
designations, exception types, subclass inheritances, or interface
relationships. ..........................................................................................................18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
III.
The Court should hold that the SSO of the 37 API packages is not copyrightable. ..........18
17
18
19
20
21
22
23
24
25
26
27
28
ii
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
TABLE OF AUTHORITIES
2
Page(s)
3
Federal Cases
4
Allen v. Academic Games League of Am., Inc.
89 F.3d 614 (9th Cir. 1996) ................................................................................................. 6, 10
5
6
ATC Distrib. Grp., Inc. v. Whatever It Takes Trans. & Parts, Inc.
402 F.3d 700 (6th Cir. 2005) ............................................................................................... 5, 14
7
Baker v. Selden
101 U.S. 99 (1879) ................................................................................................................. 1, 6
8
9
Computer Assocs. Int’l, Inc. v. Altai, Inc.
982 F.2d 693 (2d Cir. 1992)....................................................................................................... 8
10
Engineering Dynamics, Inc. v. Structural Software, Inc.
46 F.3d 408 (5th Cir. 1995) ..................................................................................................... 10
11
12
Feist Pubs., Inc. v. Rural Tele. Serv. Co.
499 U.S. 340 (1991) ......................................................................................................... 3, 4, 15
13
Gates Rubber Co. v. Bando Chem. Indus., Ltd
9 F.3d 823 (10th Cir. 1993) ....................................................................................................... 8
14
15
16
17
18
Herbert Rosenthal Jewelry Corp. v. Kalpakian
446 F.2d 738 (9th Cir. 1971) ..................................................................................................... 6
Lotus Dev. Corp. v. Borland Int’l, Inc.
49 F.3d 807 (1st Cir. 1995),
aff’d by an equally divided court, 516 U.S. 233 (1996) ............................................................ 6
Sega Enters. Ltd v. Accolade, Inc.
977 F.2d 1510 (9th Cir. 1992) ............................................................................... 1, 6, 8, 10, 16
19
20
Seng-Tiong Ho v. Taflove
648 F.3d 489 (7th Cir. 2011) ................................................................................................... 13
21
Southco, Inc. v. Kanebridge Corp.
258 F.3d 148 (3d Cir. 2001)..................................................................................................... 13
22
23
Swirsky v. Carey
376 F.3d 841 (9th Cir. 2004) ..................................................................................................... 8
24
Other Cases
25
SAS Inst. Inc. v. World Programming Ltd
Case C-406/10 (ECJ May 2, 2012) ........................................................................................ 4, 5
26
Federal Statutes
27
17 U.S.C. § 102 ................................................................................................................................ 1
28
iii
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
17 U.S.C. § 102(b) .................................................................................................................. passim
2
Federal Rules
3
Fed. R. Evid. 201(b)(2) .................................................................................................................... 9
4
Federal Regulations
5
37 C.F.R § 202.1(a)...................................................................................................................... 2, 5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
iv
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
I.
2
3
4
As directed by the Court, Google provides responses to the sixteen questions the Court has
posed. See Dkts. 1057, 1062, 1088. Google also offers further argument in support of the
conclusion that the SSO of the 37 API packages is not copyrightable.
5
6
7
8
9
10
11
12
Google requests that the Court hold that the structure, sequence and organization
(“SSO”) of the 37 API packages is not copyrightable.
For the reasons expressed below and in Google’s prior filings, and based on the trial
record, the SSO of the 37 API packages is not copyrightable. This conclusion of law is
independently supported by (1) Oracle’s concession that the Java language is free and open for
anyone to use; (2) the “system” and “method of operation” exclusions in section 102(b) of the
Copyright Act; (3) the “functional requirements for compatibility” interpretation of section 102(b)
adopted by the Ninth Circuit in Sega Enters. Ltd v. Accolade, Inc., 977 F.2d 1510, 1522 (9th Cir.
1992); (4) constraints on the SSO imposed by the requirements of the Java language and the
merger doctrine; and (5) expectations of developers and industry and the scenes a faire doctrine.
13
II.
Google’s responses to the Court’s questions:
14
A.
15
Question 1: The vocabulary and grammar of a computer language—as
distinct from programs written in the language—are not copyrightable
because the Copyright Act protects expression, not vocabulary.
16
1.
17
18
Copyright does not protect vocabulary, and that lack of protection
extends to the SSO of vocabulary.
Well over a century ago, in a decision that is now codified at 17 U.S.C. § 102(b), the
19
Supreme Court announced a fundamental principle dividing copyright and patent protection: “To
20
give the author of the book an exclusive property in the art described therein, when no
21
examination of its novelty has ever been officially made, would be a surprise and a fraud upon the
22
public. That is the province of letters-patent, not copyright.” Baker v. Selden, 101 U.S. 99, 102
23
(1879). Throughout the first phase of this trial, Oracle has repeatedly attempted to circumvent
24
Baker’s holding by claiming copyright protection in elements of its overall platform, through
25
claims to the Java vocabulary and vague claims to that vocabulary’s “structure, sequence and
26
organization.”
27
The Copyright Act protects expression, not systems for expression. See 17 U.S.C. § 102;
28
Baker, 101 U.S. at 102. Copyright does not protect vocabulary—for example, it does not protect
1
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
names, words or short phrases. 37 C.F.R § 202.1(a); Copyright MSJ Order [Dkt. 433] at 7:25-
2
8:4. Nor does it help Oracle’s position to argue that the particular structure, sequence and
3
organization of its vocabulary should somehow be protected, even if the individual elements of
4
that vocabulary are not protected.
5
First, the “structure” or “organization” of words in relation to other words is not
6
protectable. In any language, words are related to other words, and concepts are related to other
7
concepts. Without such interrelations, a vocabulary has no value. Some words are, by definition,
8
more specific versions of others (e.g., a “plane” is a particular type of “vehicle”), just as a
9
subclass in the Java language is a more specific version of its superclass. Indeed, this is precisely
10
the analogy Dr. Reinhold used in explaining the concept of subclass inheritance. RT 587:10-
11
588:11 (explaining how a “Vehicle” class could be the superclass for the “Car,” “Train” and
12
“Plane” classes). Dr. Reinhold similarly explained interfaces, fields and methods by reference to
13
properties of real-world items that people describe with words every day. For example, cars have
14
engines that can be started, horns that the driver can “blow,” and lights that can be turned on. RT
15
588:12-20 (explaining methods that the Car class could have). He explained interfaces by
16
analogy to real-world items, noting that there are things other than vehicles that have horns, and
17
thus it is possible to have an interface that reflects this fact. RT 590:5-17 (discussing
18
“ThingWithHorn” interface). The “interdependencies” that Oracle has relied upon so frequently
19
are, in the end, nothing special, and nothing protectable under copyright law. In any useful
20
vocabulary, there are similar relationships that can be drawn, as Dr. Reinhold’s analogies
21
demonstrate. Thus, the placement of API elements in packages or classes, and the hierarchical
22
arrangement of those elements via subclassing and interface implementation, all in accordance
23
with the requirements of the Java language, does nothing to make them more copyrightable than
24
any words or short phrases in the English language.
25
Second, the “sequence” of the elements in the API does not amount to creative expression.
26
Nothing in the record suggests that Google copied the sequence in which the APIs are
27
implemented within the source code. For example, the methods in java.lang.Math are
28
implemented in entirely different orders in Android and J2SE. Compare TX 47.101 (Android
2
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
Gingerbread version of “Math.java”) with TX 623.101 (J2SE 5.0 version of “Math.java”). The
2
first ten public methods declared in the Android version are:
3
4
5
6
7
8
double abs(double d)
float abs(float f)
int abs(int i)
long abs(long l)
double acos(double d)
double asin(double d)
double atan(double d)
double atan2(double y, double x)
double cbrt(double d)
double ceil(double d)
See TX 47.101 at lines 61, 83, 100, 113, 133, 151, 171, 211, 230, 250. The first ten public
9
methods declared in the J2SE version are very different:
10
11
12
13
14
15
double sin(double a)
double cos(double a)
double tan(double a)
double asin(double a)
double acos(double a)
double atan(double a)
double toRadians(double angdeg)
double toDegrees(double angrad)
double exp(double a)
double log(double a)
16
See TX 623.101 at lines 103, 118, 135, 153, 169, 186, 200, 216, 236, 257. The methods are
17
ordered alphabetically in the documentation for both Android and J2SE, but that “choice” is so
18
unoriginal that it is not protectable. See Feist Pubs., Inc. v. Rural Tele. Serv. Co., 499 U.S. 340,
19
362 (1991) (alphabetical list of subscribers is “devoid of even the slightest trace of creativity”).
20
Third, even if the SSO of a vocabulary could theoretically be protected—and on this
21
record, there is no evidence suggesting that Oracle’s SSO should be protected—the SSO would
22
only be protected as a whole. “No matter how original the format, however, the facts themselves
23
do not become original through association.” Feist, 499 U.S. at 349. Oracle has not argued,
24
however, that Google copied its SSO as a whole. Instead, it argues that Google adopted part of
25
that SSO, and integrated it with further API packages of Google’s own design. Indeed, that
26
fact—the alleged “fragmentation” caused by Android—is the crux of Oracle’s claim of harm.
27
That is, Oracle complains that Google did not adopt the SSO of Oracle’s 166 API packages, but
28
instead forged forward with a different SSO of Google’s own design. Google was free to do so:
3
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
“Notwithstanding a valid copyright, a subsequent compiler remains free to use the facts contained
2
in another’s publication to aid in preparing a competing work, so long as the competing work
3
does not feature the same selection and arrangement.” Feist, 499 U.S. at 349 (emphasis added).
4
2.
5
6
The ECJ’s decision in SAS Inst. Inc. v. World Programming Ltd
supports the conclusion that the vocabulary of a programming
language cannot be copyrighted.
Interpreting the same broad legal principles that are at issue in the present case, the
7
European Court of Justice recently held that computer programming languages are not
8
copyrightable. SAS Inst. Inc. v. World Programming Ltd, Case C-406/10 (ECJ May 2, 2012)
9
[Dkt. 1047-1]. One of the questions before the ECJ was whether a “Second Program” that
1
10
“replicates the functions of [a] First Program” infringes the copyright in the First Program. Id.
11
¶ 28(1). More specifically, the ECJ was asked to consider the situation where the First Program
12
“interprets and executes programs written by users of the First Program in a programming
13
language devised by the author of the First Program and a syntax devised by the author of the
14
First Program” and where the Second Program is “written so as to interpret and execute such
15
application programs using the same keywords and the same syntax.” Id. ¶ 28(3). This is, in
16
essence, the question in the present case. Developers use the methods, fields, constructors and
17
initializers of the 37 API packages to write programs in the Java language, and Android has been
18
written such that it can interpret and execute those programs to the extent they use methods,
19
fields, constructors and initializers found in the 37 packages. RT 2171:24-2172:11 (Astrachan);
20
RT 2292:25-2293:14 (Mitchell).
21
The ECJ concluded that “the programming language and the format of data files” are
22
“elements of [the First Program] by means of which users exploit functions of that [First
23
P]rogram.” Dkt. 1047-1 ¶ 42. The programming language is not “a form of expression of that
24
program” for purposes of copyright law. Id. ¶ 39. Any other conclusion “would amount to
25
making it possible to monopolise ideas, to the detriment of technological progress and industrial
26
1
27
28
The European Committee for Interoperable Systems—of which Oracle is a member, see
http://www.ecis.eu/about-ecis/—lauded the decision. See, e.g., Reuters, EU court limits
copyright protection for software (May 2, 2012) (including quote from Thomas Vinje, a
spokesperson for the ECIS, supporting the ECJ’s decision).
4
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
development.” Id. ¶ 40.
2
2
While the ECJ was applying European law, the same principles apply here. Moreover, the
3
ECJ’s conclusion was that the programming language cannot be protected by copyright law,
4
because it is on the unprotectable idea side of the idea/expression dichotomy. It necessarily
5
follows that no copyright protection prevents others from adopting parts of a programming
6
language. Similarly, copyright law cannot prevent Google from adopting parts of the 166 J2SE
7
API packages.
8
B.
9
Question 2: If each API method is treated as a program, then Google did not
copy anything more than the name and declaration of that program, which is
not copyrightable.
10
Google used nothing more than the name and declaration of each API element. For
11
example, Google used the same method declarations —which necessarily means Google used the
12
same names. A method declaration includes the method’s name, the parameters it accepts as
13
input, and the type of thing that it returns. RT 785:25-787:8 (Bloch); see generally TX 984 (The
14
Java Language Specification, Third Edition) at 209-37. A method declaration can also include
15
modifiers such as “public” or “final.” See TX 984 at 214-20. In addition, a method declaration
16
can use the term “throws” to indicate “exceptions” (errors) that the method can communicate.
17
See TX 984 at 221-23. The method body—sometimes referred to at trial as the implementation of
18
the method, see, e.g., RT 790:20-23 (Bloch); RT 1566:23-1567:10 (Schmidt); RT 2186:3-12
19
(Astrachan)—is “a block of code that implements the method . . . .” TX 984 at 223. Aside from
20
the nine-line rangeCheck method, there is no dispute that Google’s implementing code is
21
different from Oracle’s. RT 1309:8-1313:11 (Mitchell); RT 2182:13-2183:1 (Astrachan). The
22
declarations are, in essence, the titles of the things they declare. Titles are not copyrightable. 37
23
2
24
25
26
27
28
3
That said, if the defendant copied implementing code from the First Program, that could
constitute infringement. Id. ¶ 43 (“it should be made clear that, if a third party were to procure
the part of the source code or the object code relating to the programming language or to the
format of data files used in a computer program, and if that party were to create, with the aid of
that code, similar elements in its own computer program, that conduct would constitute partial
reproduction”) (emphasis added).
3
As the Court has noted, the formal definition of a “method declaration” includes the “method
body”—the implementation. TX 984 at 209-10. At trial, however, witnesses excluded the
method body from their definition of “method declaration” and distinguished between the
“declaration” and the “implementing code.”
5
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
C.F.R. § 202.1(a).
2
Moreover, the declarations simply state the functional characteristics of the API
3
elements—the names by which they can be invoked, the parameters they must be given as input,
4
and so on. RT 1773:25-1774:25 (Bornstein); RT 2106:13-2109:2 (Astrachan). In order to create
5
API implementations that are compatible with the J2SE APIs—that is, implementations that will
6
function in the same way when called by code written by developers—these functional elements
7
are precisely the ones that Google needed to use. RT 2159:23-2160:2 (Astrachan). Because the
8
declaration can only be written one way in the Java programming language—because the idea
9
underlying the declaration changes if the declaration is changed— any arguable expression in the
10
declaration merges with the underlying idea, and cannot be protected by copyright. Herbert
11
Rosenthal Jewelry Corp. v. Kalpakian, 446 F.2d 738, 742 (9th Cir. 1971); Baker, 101 U.S. at 104;
12
Allen v. Academic Games League of Am., Inc., 89 F.3d 614, 617-18 (9th Cir. 1996). The
13
elements of the declarations are also functional requirements for compatibility with the J2SE API
14
packages, and thus cannot be protected by copyright for this separate reason. Sega, 977 F.2d at
15
1522 (citing 17 U.S.C. § 102(b)); see also Lotus Dev. Corp. v. Borland Int’l, Inc., 49 F.3d 807,
16
815 (1st Cir. 1995), aff’d by an equally divided court, 516 U.S. 233 (1996).
17
C.
18
19
Question 3: The form of the fully qualified names of the methods in the 37
API packages is “package.class.method,” where the package names start with
“java.” or “javax.” and this form is required by the syntax of the Java
language.
The fully-qualified name of a method has three parts: its package name, its class name
20
and its method name. RT 770:1-4 (Bloch). For example, the “cos” method (for calculating the
21
cosine of an angle) in the “Math” class in the “java.lang” package would be named
22
“java.lang.Math.cos”. RT 770:5-9 (Bloch). This format is required by the Java language. RT
23
770:10-12 (Bloch); TX 984 at 126-38.
24
25
26
D.
Question 4: Google could have come up with at least some different names
and SSO yet still provided similar functionality in Android, but this would
not have been consistent with industry custom and developer demand.
It would have been possible in many instances for Google to have created APIs with
27
different names and/or SSO that would have provided similar functionality. That, however,
28
6
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
would have effectively undermined the ability to utilize the Java language, which language
2
provides a familiar environment for developers. By analogy, it is technically possible to create an
3
alternative version of the English language that follows the same rules of grammar, but in which
4
all the words are different. While such a scenario is possible, it would make little sense, and
5
would be contrary to the expectations of any reasonable person conversant in English. Moreover,
6
even if Google had done so, it still would have had to implement at least the parts of the 37
7
packages that are undisputedly required in order to implement the Java language, as explained
8
below.
9
10
1.
Many of the elements of the 37 API packages are required by the Java
language.
In order to implement the Java language, Google was required to include many elements
11
of the 37 API packages. Dr. Reinhold admitted that at least 61 classes from the 37 API packages
12
are required by the Java language specification. RT 684:14-685:2; TX 1062 (Reinhold
13
summary); see also RT 1286:14-22 (Mitchell) (agreeing with Dr. Reinhold’s analysis). These 61
14
classes are not merely mentioned by the language specification—“they are part of the
15
specification rather than being part of an example.” RT 677:15-16 (Reinhold); see also RT
16
679:18-21. In addition, Oracle’s Java language compiler depends on the presence of over 30
17
classes, including several that are not included in Dr. Reinhold’s list of the 61 required classes in
18
TX 1062. See RT 679:22-681:21 (Reinhold); TX 1063 (Reinhold summary).
19
Although the Java language specification requires the presence of these classes, it does
20
not specify their details. RT 679:20-21 (Reinhold). Instead, those classes are specified in the API
21
specifications, which specify that those classes require over 750 methods and fields. RT 776:2122
777:9 (Bloch). Moreover, due to dependencies, implementing those 750 classes, method and
23
fields, requires implementation of 177 classes, with over 2,000 public methods and fields, spread
24
across ten of the accused API packages. RT 779:13-780:15 (Bloch).
25
Thus, at least portions of 10 of the 37 accused API packages must be implemented simply
26
to implement the Java language as required by the language specification, including both classes
27
required by the language specification, and those that the required classes depend upon.
28
7
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
2.
2
3
4
Without the APIs, the Java language is a “primitive thing.” RT 686:15 (Reinhold).
Without APIs, the Java language can be used to “waste time,” but “that’s pretty much it.” RT
782:9-11 (Bloch); see also RT 782:12-783:18 (Bloch); RT 683:14-684:4 (Reinhold).
5
6
7
8
9
10
11
12
Developers expect the presence of the 37 API packages when they write programs in the
Java language. RT 2202:6-11 (Astrachan); RT 1782:6-1783:10 (Bornstein). Those packages are
needed in order to meet industry expectations. RT 2203:11-15 (Astrachan); RT 2291:1-8
(Mitchell); RT 519:21-23 (Screven). Indeed, programmers often memorize the names and
organization of members of these packages in order to help them write programs more efficiently.
RT 767:1-17 (Bloch); RT 2169:25-2170:13 (Astrachan); RT 2289:24-2290:3 (Mitchell). The 37
API packages are also necessary to make practical use of the language. RT 2196:7-2201:17
(Astrachan).
13
14
15
16
17
18
19
20
Sun recognized these facts, and indeed promoted widespread use of the Java language and
APIs. See RT 1957:24-1958:4, 1961:13-19, 1962:2-9 (Schwartz); RT 1474:24-1475:10, 1477:21478:9 (Schmidt). Sun worked hard to dispel any suggestion that the SSO of the 37 API
packages was proprietary or protected. RT 1966:1-12 (Schwartz). Sun’s goal was to ensure that
the Java language was widely adopted by encouraging its teaching in colleges and universities.
RT 1476:9-14 (Schmidt); RT 1958:5-20 (Schwartz). Java language developers have always
understood that the Java API packages, along with the Java language, are free to use. RT 962:414 (Swetland); RT 861:9-23 (Lindholm); RT 1769:18-1770:1 (Bornstein).
21
22
23
24
25
26
Industry custom and developer demand require implementation of the
37 API packages.
In view of this undisputed testimony, the APIs in the 37 packages are the Java language
equivalents of scenes a faire—and therefore uncopyrightable. See Computer Assocs. Int’l, Inc. v.
Altai, Inc., 982 F.2d 693, 706-10 (2d Cir. 1992); Swirsky v. Carey, 376 F.3d 841, 850 (9th Cir.
2004); Sega, 977 F.2d at 1524 (constraints on the defendant are relevant to whether copyright
protection allowed); Gates Rubber Co. v. Bando Chem. Indus., Ltd, 9 F.3d 823, 838 (10th Cir.
1993).
27
28
8
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
3.
2
3
4
5
6
When developing new APIs in the Java language, it is standard
practice to build upon the standard J2SE APIs.
Dr. Reinhold testified that even when people design their own APIs, “[t]hey are building
typically on top of all of the standard Java APIs and creating their own APIs for whatever
problem they are trying to solve.” RT 685:12-14 (emphasis added). Thus, for example, when
Wall Street firms create their own APIs for financial trading, “those are strictly built on top of all
of this Java platform stuff we have been speaking about.” RT 685:18-20 (emphasis added).
7
4.
8
9
10
11
12
13
When Larry Ellison was asked whether the Java APIs are needed to use the Java language,
Google objected on the ground that the question called for expert testimony. RT 290:15-19. The
Court overruled the objection, but only after Mr. Ellison assured the Court that he was testifying
based on personal knowledge. RT 290:20-24. Mr. Ellison then testified that a UK company
named Spring had built its “own Java environment” called Spring, which used the Java language,
but not the Java APIs. RT 290:25-291:6.
14
15
16
17
18
19
20
21
Mr. Ellison’s testimony was incorrect. The Spring framework is open source software,
4
and the documentation for the Spring framework is readily available on the Internet. This
documentation demonstrates that Mr. Ellison’s testimony was incorrect, and that the Spring
framework uses the J2SE APIs. For example, the Spring package “org.springframework.ui” has a
5
class named “ModelMap,” which is a subclass of “java.util.HashMap” —a class that is in the
accused java.util package. This Spring class implements the interfaces Serializable (part of the
accused java.io package), Cloneable (part of the accused java.lang package) and Map (part of the
accused java.util package).
22
23
24
25
The Court should disregard Mr. Ellison’s testimony about Spring.
6
This evidence, which flatly contradicts Mr. Ellison’s testimony, is not in the trial record.
The accuracy of the cited documentation, however, cannot reasonably be questioned under the
circumstances, and thus the Court may take judicial notice of these facts. Fed. R. Evid. 201(b)(2).
Moreover, if the Court requests, Google will submit a declaration from Professor Astrachan
26
4
27
5
28
See http://static.springsource.org/spring/docs/2.0.x/api/index.html.
See http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/ui/ModelMap.html.
6
See id.
9
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
explaining that the source code for the Spring framework depends on no less than 20 of the 37
2
accused J2SE API packages. In light of these facts, Google requests that the Court not rely on
3
any of Mr. Ellison’s unsupported testimony about Spring. See RT 290:25-291:6, 304:13-22.
4
E.
5
The input-output scheme of a method cannot be copyrighted because it represents an idea,
Question 5: The input-output scheme of a method is not copyrightable.
6
not creative expression. 17 U.S.C. § 102(b). Moreover, the input-output scheme is required for
7
compatibility with code that “calls” or “invokes” the method, which is another reason it cannot be
8
protected by copyright. See supra, Part II.B; Sega, 977 F.2d at 1522.
9
In addition, there are only a limited number of ways in which to devise an input-output
10
scheme for any given method. Independent of Sega, the merger doctrine bars copyright
11
protection for input-output schemes. See Allen, 89 F.3d at 617-18; Engineering Dynamics, Inc. v.
12
Structural Software, Inc., 46 F.3d 408, 409-10 (5th Cir. 1995), clarifying 26 F.3d 1335 (5th Cir.
13
1994); see also Google 4/3/12 Br. [Dkt. 852] at 8:19-9:20.
14
15
F.
Question 6: The “core” packages in 1996 included at least java.lang, java.io
and java.util, and today include at least 34 of the accused packages.
Google agrees that at least java.lang, java.io and java.util were “core” packages in 1996.
16
Sun’s documentation from that time stated that java.lang, java.io and java.util “must be included
17
in all general purpose Java systems.” TX 2564 (The Java Language Specification, First Edition)
18
at 31. This same book referred to those three packages as “core packages.” TX 2564 at 23.
19
Another Sun book published in 1996, The Java Application Programming Interface, Volume 1,
20
described those packages as “the foundation of the Java language” and as “general purpose
21
libraries fundamental to every Java program.” TX 980 at 528. This book defined the “core
22
packages” to be those three packages, plus java.net. TX 980 at xix, back cover. As the Court has
23
recognized, the case against copyright protection and for fair use for the “core” packages is even
24
stronger than it is for the rest of the accused packages. RT 3388:12-3389:6, 3389:21-3390:11.
25
Later versions of J2SE, however, recognize many more packages as “core” packages. For
26
example, the documentation for J2SE 1.4 defines the “core” packages to include all but four of
27
the accused packages—every accused package except java.lang.annotation, java.security.acl,
28
10
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
java.sql and javax.sql. See TX 622 (source code for J2SE 1.4, which also includes
2
documentation).
3
7
The first of the four remaining API packages, java.lang.annotation, was not introduced
4
until J2SE 5.0. It is one of the few packages that is directly required by the third edition of The
5
Java Language Specification, which includes an entire section about “Annotations.” TX 984 at
6
270-86. This section states that “[t]he direct superinterface of any annotation type is always
7
[java.lang.] annotation.Annotation”—i.e., the Annotation interface in the java.lang.annotation
8
package. Id. at 272. The section also discusses four predefined annotation types—Target,
9
Retention, Inherited and Override—that are part of the java.lang.annotation package. Id. at 277-
10
8
79. For J2SE 5.0, java.lang.annotation is unquestionably a core package.
11
This leaves three accused packages, java.security.acl, java.sql and javax.sql. The first of
12
these, java.security.acl, appears to have been left out of the list of “core” packages in J2SE 1.4
13
only by accident. Each of the other subpackages of java.security (java.security.cert,
14
java.security.interfaces and java.security.spec) is listed. See TX 622.
15
9
The final two packages, java.sql and javax.sql, are not identified as “core” packages in the
16
J2SE 1.4 documentation. However, these two packages cover such basic concepts for data
17
storage and retrieval that they should be considered, as a practical matter, to be required elements
18
of the Java language. RT 2198:25-2199:16 (Astrachan).
19
G.
20
Question 7: The Java language requires more than just the java.lang, java.io
and java.util packages.
The Java language requires methods, classes and packages beyond java.lang, java.io and
21
java.util. This is because the 61 classes that are directly required in order to implement the Java
22
language themselves are dependent on other classes. The full chain of interdependencies requires
23
24
25
26
27
28
7
The relevant documentation can also be accessed on the web at
http://docs.oracle.com/javase/1.4.2/docs/guide/core/index.html. Following the links on that page
leads to webpages that include lists of API packages. There does not appear to be an analogous
list present in the J2SE 5.0 documentation.
8
In The Java Language Specification, where no package is expressly identified, “the intended
reference is to the class or interface . . . in the package java.lang.” TX 984 at 6.
9
For the Court’s convenience, the specific page is also available on the web at
http://docs.oracle.com/javase/1.4.2/docs/guide/security/index.html.
11
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
over 177 classes, with over 2,000 public methods and fields, drawn from ten of the accused API
2
packages. See supra, Part II.D.1.
3
H.
4
Based on the documentation for J2SE 1.4, and the third edition of The Java Language
Question 8: All 37 accused API packages should be deemed “core”packages.
5
Specification, 34 of the accused API packages are concededly core packages. One of the
6
remaining three, java.security.acl, appears to have been left off of the list of core packages in
7
J2SE 1.4 only by mistake. The final two packages, java.sql and javax.sql, cover such
8
fundamental concepts for modern software applications that they, too, should be deemed core
9
packages. See supra, Part II.F.
10
11
12
I.
Question 9: There are cross-method, cross-class interdependencies at the
implementation level in J2SE, and those implementation level
interdependencies are not always duplicated in the Android implementations.
The Court asked the parties to address, in their April 22, 2012 briefs, whether “any of the
13
Sun compiled lines in the 37 APIs call upon part or all of another API as a step” and, if so,
14
whether Android’s implementing code “likewise call upon the same other API.” See Order re
15
Brief Due Sunday [Dkt. 951] at 1. Google’s brief responded that, yes, the J2SE implementations
16
do reference other methods and classes, but, no, the Android implementations do not necessarily
17
follow the same pattern. See Dkt. 955 at 13:8-14:6. Oracle’s brief addressed references in class,
18
method, and field declarations (which are necessarily similar for compatibility reasons), rather
19
than references in the implementations (which can be different while remaining compatible). See
20
Dkt. 956 at 13:15-14:10.
21
At trial, there was no testimony on these points. The source code that is in evidence in
22
native format, however, confirms that the positions Google advanced in its April 22. 2012 brief—
23
positions Oracle has not denied—are correct. See TX 623 (J2SE 5.0 source code), TX 46
24
(Android, “Froyo” release, source code). If the Court requests, Google will submit a declaration
25
attaching printed excerpts from those trial exhibits demonstrating that, for example, Android’s
26
implementation of the URL class in the java.net package makes use of the ObjectOutputStream
27
class from the java.io package, while the J2SE implementation makes use of the OutputStream
28
class from the java.io package.
12
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
J.
2
3
4
5
6
7
8
9
Question 10: At the name/declaration level, the only interdependencies in the
Java language come from (1) the package/class/member organizational
scheme; (2) inheritance via subclassing and subinterfacing; and (3) interface
implementation.
There are three types of interdependencies at the name/declaration level. First, there is the
organizational scheme that groups class members (such as methods) into classes, and classes into
packages. Second, classes and interfaces can inherit characteristics from their superclasses and
superinterfaces. Third, classes can implement interfaces. RT 2187:18-2188:24 (Astrachan); RT
584:8-603:6 (Reinhold); TX 1028 (key, showing only class/package, interface, and
subclass/superclass relationships). These are the only name/declaration level interdependencies
that were identified at trial.
10
K.
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Question 11: The Seventh Circuit’s decision in American Dental Ass’n v.
Delta Dental Plans Ass’n, was either wrongly decided, or unclear about the
scope of its holding.
The Seventh Circuit’s American Dental Ass’n decision purported to address whether the
ADA’s “taxonomy” for dental procedures could be copyrighted. 126 F.3d 977, 977 (7th Cir.
1997). But in concluding that the “taxonomy” was expressive, the Seventh Circuit relied on the
text descriptions the ADA employed. See id. at 979. That suggests that the court’s decision was
about the copyrightability of the ADA’s book describing the taxonomy, not the taxonomy
separate and apart from those descriptions. If so, the decision is not relevant to the
copyrightability determination that the Court must make in this case. If, however, the Seventh
Circuit did intend to hold that the taxonomy itself was copyrightable, its reliance on text
descriptions of the taxonomy to conclude that the taxonomy itself was copyrightable was
nonsensical, and renders the decision of suspect persuasive value.
No Ninth Circuit case has ever cited American Dental Ass’n. Indeed, the Seventh
Circuit’s decision has only been cited three times by any court. The Seventh Circuit itself has
cited the American Dental Ass’n decision only once, and only for propositions unrelated to the
“taxonomy” holding. Seng-Tiong Ho v. Taflove, 648 F.3d 489, 497-500 (7th Cir. 2011). The
Third Circuit has cited the decision once, but found the facts of the case before it factually
distinguishable. See Southco, Inc. v. Kanebridge Corp., 258 F.3d 148, 155 (3d Cir. 2001).
28
13
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
Finally, the Sixth Circuit criticized the decision, calling the Seventh Circuit’s reasoning “opaque.”
2
ATC Distrib. Grp., Inc. v. Whatever It Takes Trans. & Parts, Inc., 402 F.3d 700, 708 (6th Cir.
3
2005).
4
Even if the Court were to assume that a taxonomy can be copyrighted—and to do so
5
would be legal error, because the ADA taxonomy is an unprotectable system, see 17 U.S.C.
6
§ 102(b)—that does not mean that the SSO of the 37 API packages should be protected by
7
copyright. The Seventh Circuit rejected the argument that the “taxonomy” was an unprotectable
8
system, noting that “[t]his taxonomy does not come with instructions for use, as if the Code were
9
a recipe for a new dish.” 126 F.3d at 980. The 37 API packages, however, do come with
10
instructions for use—that is precisely what the API specifications are. The APIs in the 37
11
accused packages are a system by which Java language developers express themselves, and as
12
such are an uncopyrightable system. 17 U.S.C. § 102(b).
13
Finally, although the Seventh Circuit purported to hold that a “taxonomy” can be
14
copyrighted, nothing in the decision supports the conclusion that a numbering system can be
15
copyrightable separate and apart from descriptions of the parts of the system. In American Dental
16
Ass’n, the Seventh Circuit ultimately held only that the defendant could not copy “the Code
17
itself” or distribute derivative works based on “the Code.” 126 F.3d at 981. But the opinion
18
earlier defined “the Code” to be a book. See id. at 977 (“The American Dental Association has
19
created the Code on Dental Procedures and Nomenclature. The first edition was published in
20
1969; the Code has been revised frequently since, in response to changes in dental knowledge and
21
technology.”). The court also referred to “the numbering system and short descriptions from the
22
ADA’s Code.” Id. If the phrase “the Code” referred to the numbering system itself, separate
23
from the descriptions, then the reference to “the numbering system . . . from the ADA’s Code”
24
would mean “the numbering system . . . from the ADA’s numbering system,” which is
25
recursively meaningless, referring to “the numbering system” as something that can be extracted
26
from “the numbering system.”
27
Thus, the better reading of the decision is that “the Code” refers to the ADA’s book
28
describing the numbering system, complete with “the short descriptions” of each procedure. See
14
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
id. So understood, the Seventh Circuit’s holding that “the Code” is copyrightable, see id. at 979,
2
means only that the ADA’s book describing its numbering system is copyrightable. If that is the
3
extent of the Seventh Circuit’s holding, then the decision is irrelevant to the present case. If the
4
Seventh Circuit instead intended to hold that the numbering system, separate from its descriptions,
5
was protected by copyright, the decision is unclear, poorly reasoned, and should not be followed
6
absent Ninth Circuit precedent for doing so—and there is none.
7
L.
8
Question 12: CDN, Inc. v. Kapes was not about a method of operation or
system.
In CDN, Inc. v. Kapes, the Ninth Circuit did not address whether the SSO of CDN’s price
9
list was protectable, because there was no allegation that the SSO had been copied. 197 F.3d
10
1256, 1259 (9th Cir. 1999) (“CDN does not allege that Kapes copied the entire lists, as the
11
alleged infringer had in Feist. . . . Thus Kapes’ argument that the selection is obvious or dictated
12
by industry standards is irrelevant.”). The case therefore sheds no light on whether the SSO of
13
the 37 API packages is copyrightable.
14
Instead of SSO, the issue in CDN was whether CDN’s estimates of coin prices were
15
“sufficiently original as compilations to sustain a copyright.” Id. (emphasis added). The Ninth
16
Circuit held that CDN relied on pricing information provided by others (i.e., that the coin prices
17
in its guide were not of its own creation). Id. at 1260. CDN then chose which coin prices to keep,
18
“retain[ing] only that information it considers to be the most accurate and important.” Id. “The
19
prices CDN creates are compilations of data that represent its best estimate of the value of the
20
coins.” Id.
21
This theory of copyrightability is not available to Oracle. In its April 3, 2012 brief, Oracle
22
denied that its APIs were a compilation. See Oracle 4/3/12 Br. [Dkt. 853] at 1:7-8 (“The 37 APIs
23
should not be viewed as a compilation under section 101 of the Copyright Act.”). After briefly
24
attempting to switch course, Oracle again conceded that it was not arguing for protection under a
25
collective work theory. See RT 2134:11-17. At no time since has Oracle argued that the
26
elements of the 37 API packages should be protected under a compilation theory.
27
Moreover, CDN did not address section 102(b)’s system and method of operation
28
15
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
exclusions, which are central to the Court’s copyrightability determination in this case. The
2
Ninth Circuit opened its decision by stating, “We must decide whether prices listed in a wholesale
3
coin price guide contain sufficient originality to merit the protection of the copyright laws.” 197
4
F.3d at 1257 (emphasis added). However, Kapes also argued that CDN’s prices were
5
unprotectable ideas. See id. at 1261. The Ninth Circuit disagreed, holding that CDN’s “prices
6
fall on the expression side” of the idea/expression dichotomy. Id. at 1262.
7
CDN, however, did not seek copyright protection for a system of coin pricing, or a method
8
of operation for coin pricing. Had it done so, its argument would have failed, because CDN
9
could not “claim protection for its idea of creating a wholesale price guide . . . .” Id.; see also 17
10
U.S.C. § 102(b). Moreover, Kapes did not argue that functional requirements for compatibility
11
compelled him to use the same coin prices that CDN did. See Sega, 977 F.2d at 1522.
12
13
14
M.
Question 13: Android is compatible with the 37 API packages at issue
because code written to use those APIs will compile and work properly on an
Android device.
The Court has asked the parties to address what they mean when they refer to
15
“compatibility.” Android is compatible with the APIs from the 37 API packages and, as a
16
necessary part of that compatibility, it has substantially the same SSO as the 37 API packages.
17
Compatibility is not an all or nothing proposition. Two things can be compatible in some
18
respects, but not others. The key issue in the present case is not whether Android is fully
19
compatible with J2SE in all respects, but whether it is compatible with the APIs in the 37 API
20
packages in the computer science sense—not “compatible” in Sun’s or Oracle’s business plan
21
sense. The parties’ experts agreed that the platforms are compatible from the perspective of
22
computer science, because code written using the APIs in those packages will work on both
23
platforms. RT 2171:24-2172:11 (Astrachan); RT 2292:25-2293:14 (Mitchell). For example,
24
Professor Astrachan wrote the following program during trial:
25
26
27
28
package simple;
/** @author ola */
public class WebReader {
public static void main (String[] args) {
java.net.URL site=new java.net.URL(“http://cnn.com”);
java.io.InputStream source=site.openStream();
16
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
System.out.print(source.read());
}
2
}
3
TX 3536 (demonstrative); RT 2162:12-2167:25 (Astrachan). This code defines a package named
4
“simple,” which includes a class named “WebReader.” RT 2163:5-22. Within that class is a
5
short method that (1) creates a “URL object” associated with the URL http://cnn.com; (2) creates
6
an “InputStream” object by opening a stream to the CNN website; and (3) displays the first
7
character from that website. RT 2165:17-2167:25, 2170:22-2171:3. This program depends upon
8
elements and invokes methods from three of the accused API packages, java.net, java.io and
9
java.lang. RT 2169:20-24. Because the methods that the program invokes and the API elements
10
it relies on are implemented both in J2SE and Android, this program is compatible with both of
11
those platforms. RT 2171:19-23; see also RT 2292:25-2293:8 (Mitchell) (the three lines of code
12
Professor Astrachan wrote that use the J2SE APIs would work on both the J2SE and Android
13
platforms). This understanding of “compatibility” is not a position adopted just for this litigation.
14
Indeed, Oracle’s expert called this definition of compatibility “a great definition of
15
‘compatible’ . . . .” RT 2293:9-14 (Mitchell).
16
17
18
N.
Questions 14-15: In the Java language, “inheritance” is a concept applicable
to classes, not packages; by virtue of the Java language specification, a
subclass inherits fields, methods, and other members from its superclass.
In the Java language, if “you define one class to be a subclass of another, then the subclass
19
inherits all the methods of the superclass . . . .” RT 1225:13-15 (Mitchell); see also RT 2188:10-
20
11 (Astrachan). The inheritance relationship exists at the class level. RT 2243:6-7 (Astrachan)
21
(“the class declaration, which shows the inheritance relationships and the interface
22
relationships”). There is no such thing as “inheritance” of a package. See TX 984 at 617 (index;
23
no discussion of “package” under “inheritance”); see also id. at 154 (recognizing that hierarchical
24
naming structure for packages “has no significance in itself” and that similarly-named packages
25
have no “special access relationship “to each other”).
26
Inheritance is a characteristic of a class or interface that results from the
27
superclass/subclass and superinterface/subinterface relationships that are part of the Java
28
language. See TX 984 at 188, 190. A class or interface inherits “public” members (fields,
17
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
methods, etc.) of its superclass or superinterface, as well as any members declared in the class or
2
interface itself. See id.
3
O.
4
5
Question 16: Copyright protection does not extend to names, including fully
qualified names, nor does it extend to input-output (argument-return)
designations, exception types, subclass inheritances, or interface relationships.
The Court has asked what Google allegedly copied aside from names (including fully-
6
qualified names) and input-output (argument-return) designations. In addition to those items, the
7
SSO of the Android APIs for the 37 packages at issue adopts substantially the same “exceptions”
8
for methods (i.e., the methods “throw” or generate the same error messages), subclass and
9
subinterface structures for classes and interfaces (i.e., inheritance) and interface implementations
10
for classes. However, the exception, inheritance and interface relationships are all part of the
11
“ideas” underlying the defined methods, classes and interfaces. These relationships are therefore
12
uncopyrightable by virtue of the merger, scenes a faire and/or functional requirements for
13
compatibility doctrines, and/or the system and method of operation exclusions of section 102(b)
14
of the Copyright Act.
15
III.
16
The Court should hold that the SSO of the 37 API packages is not copyrightable.
The parties have submitted voluminous briefing on this legal issue, and much of the
17
evidence during Phase One of the trial related to the issue of copyrightability. There are many
18
reasons why the Court should conclude that the SSO of the 37 API packages is not copyrightable,
19
but the Court has no doubt read the prior briefs carefully, and Google will not repeat each of its
20
arguments here once more.
21
The simple point, however, is that Oracle seeks to misuse copyright to control a
22
language—to restrict dramatically the right to use the established vocabulary of a freely-available
23
language and to require that others who want to use the language create an entirely new
24
vocabulary. Whether the APIs at issue are part of the “Java language” is important to deciding
25
the effect of Oracle’s concession that it does not assert copyright protection in this case over the
26
Java language itself. Regardless of how the Court resolves that point, however, the APIs are part
27
of a language. There is no dispute that when Java developers use the APIs, they do so to express
28
themselves. Indeed, without APIs, the Java language is, in all practical effect, useless. RT
18
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
683:14-684:4, 707:18-21 (Reinhold); RT 782:9-14 (Bloch); RT 1477:2-13 (Schmidt); RT 1960:4-
2
8 (Schwartz).
3
Oracle argues that developers can create new APIs, and then use those new APIs instead
4
of the J2SE APIs, and thus can still express themselves in the Java language without using the
5
J2SE APIs. That is, at least to some extent, wrong, because the Java language cannot be
6
implemented without at least some of the APIs at issue. RT 1274:16-24 (Mitchell); RT 684:16-
7
685:2, 679:12-21 (Reinhold); RT 776:12-777:9, 777:19-778:9, 779:13-780:18 (Bloch). But it is
8
also irrelevant. The language that developers use when they write programs in the Java language
9
with the J2SE APIs—whether that language is called the “Java language” or “the Java language
10
with the J2SE APIs”—is a functional system that can be used for expression and is known to
11
millions of developers. That system cannot be protected by copyright. 17 U.S.C. § 102(b).
12
Allowing Oracle to use copyright law to control the J2SE APIs would in effect grant
13
Oracle a monopoly, allowing it to prevent millions of Java developers from using their skills to
14
write applications for platforms that Oracle has not approved. This goes beyond protecting
15
Oracle’s expression, and would grant Oracle control over how developers are allowed to express
16
themselves.
17
It is no answer to say that there are other systems that developers can use to express
18
themselves. Of course that is true—we know it is true, because there are many different
19
programming languages that are the result of many different design choices made by language
20
designers. But section 102(b) does not exclude systems from copyright protection only when
21
there are no alternatives. It states that “[i]n no case” shall copyright protection extend to a
22
system. 17 U.S.C. § 102(b).
23
And there is a strong policy reason for that stark prohibition: choosing one system over
24
another is not a matter of expression, it is a matter of choosing one idea over another. The J2SE
25
APIs include a “collections framework” that was designed by Josh Bloch at least in part when he
26
was a Sun employee. RT 750:5-7, 750:16-751:4 (Bloch). The approach Dr. Bloch adopted for
27
the collections framework was, in at least one person’s estimation, life changing. RT 750:8-12
28
(Bloch). The notion of “collections” was not new—other, older languages implemented
19
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
1
collections frameworks of their own, which conceptualized collections in different ways. RT
2
1242:16-1243:3 (Mitchell). The reason Dr. Bloch’s collections framework was life-changing was
3
that, at least for that one developer, Dr. Bloch’s idea was better than those that had come before.
4
His collections framework was a better mousetrap—a better idea.
5
Because copyright does not grant a monopoly over ideas, when someone comes up with a
6
good idea, others are free to adopt it absent some other legal principle—such as patent law—
7
protecting the idea. Good ideas rarely come easily. Indeed, they may take years of effort and
8
experimentation. They are still, however, ideas, and still unprotected by copyright law.
9
The record shows that the SSO of the 37 packages—to the extent it includes anything
10
other than the “structure” imposed by the Java language hierarchical naming rules—is a method
11
of operation, a system of communicating with software, and functionally required for
12
compatibility. The record also shows that the form of expression in the source code that reflects
13
the SSO is constrained by the requirements of the language and therefore unprotectable under the
14
merger doctrine. Finally, the record shows that any arguable expression in the SSO has come to
15
be expected by programmers and industry, is required for compatibility purposes and reflects
16
widely-accepted programming practices—and cannot therefore form the basis for an infringement
17
action. For all the reasons given in its prior briefs, as well as the reasons given above, Google
18
respectfully requests that the Court hold that the SSO of the 37 API packages at issue is not
19
copyrightable.
20
Dated: May 10, 2012
KEKER & VAN NEST LLP
21
22
By:
23
/s/ Robert A. Van Nest
ROBERT A. VAN NEST
Attorneys for Defendant
GOOGLE INC.
24
25
26
27
28
20
GOOGLE’S MAY 10, 2012 COPYRIGHT LIABILITY TRIAL BRIEF
Case No. 3:10-CV-03561 WHA
662422.02
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?