Google vs Oracle – full text of judgment – part 3

The following is the third of the three parts of Judge William Alsup’s ruling in Oracle vs Google copyright case.

“In order for at least some of this code to run on Android, Google was required to provide the same java.package.Class.method() command system using the same names with the same “taxonomy” and with the same functional specifications. Google replicated what was necessary to achieve a degree of interoperability — but no more, taking care, as said before, to provide its own implementations.

That interoperability is at the heart of the command structure is illustrated by Oracle’s preoccupation with what it calls “fragmentation,” meaning the problem of having imperfect interoperability among platforms. When this occurs, Java-based applications may not run on the incompatible platforms.

For example, Java-based code using the replicated parts of the 37 API packages will run on Android but will not if a 38th package is needed. Such imperfect interoperability leads to a “fragmentation” — a Balkanization — of platforms, a circumstance which Sun and Oracle have tried to curb via their licensing programs. In this litigation, Oracle has made much of this problem, at times almost leaving the impression that if only Google had replicated all 166 Java API packages, Oracle would not have sued.

While fragmentation is a legitimate business consideration, it begs the question whether or not a license was required in the first place to replicate some or all of the command structure. (This is especially so inasmuch as Android has not carried the Java trademark, and Google has not held out Android as fully compatible.)

The immediate point is this: fragmentation, imperfect interoperability, and Oracle’s angst over it illustrate the character of the command structure as a functional system or method of operation. In this regard, the Ninth Circuit decisions in Sega and Sony, although not on all fours, are close analogies.

Under these two decisions, interface procedures required for interoperability were deemed “functional requirements for compatibility” and were not copyrightable under Section 102(b). Both decisions held that interface procedures that were necessary to duplicate in order to achieve interoperability were functional aspects not copyrightable under Section 102(b). Here, the command structure for the 37 packages (including inheritances and exception throws), when replicated, at least allows interoperability of code using the replicated commands.

To the extent of the 37 packages — which, after all, is the extent of Oracle’s copyright claim — Sega and Sony are analogous. Put differently, if someone could duplicate the interfaces of the Sony BIOS in order to run the Playstation games on desktops (taking care to write its own implementations), then Google was free to duplicate the command structure for the 37 packages in Android in order to accommodate third-party source code relying on the 37 packages (taking care to write its own implementations).

Contrary to Oracle, “full compatibility” is not relevant to the Section 102(b) analysis. In Sony, the accused product implemented only 137 of the Playstation BIOS’s 242 functions because those were the only functions invoked by the games tested. Connectix’s Opening Appellate Brief at 18.

Our court of appeals held that the accused product “itself infringe[d] no copyright.” Sony, 203 F.3d at 608 n.11. This parallels Google’s decision to implement some but not all of the Java API packages in Android. This explains why American Dental Association v. Delta Dental Plans Association, is not controlling.

Assuming arguendo that a taxonomy is protectable by copyright in our circuit, see Practice Mgmt. Info. Corp. v. Am. Med. Ass’n, the taxonomy in ADA had nothing to do with computer programs.

It was not a system of commands, much less a system of commands for a computer language. The taxonomy there subdivided the universe of all dental procedures into an outline of numbered categories with English-language descriptions created by the ADA. This was then to be used by insurance companies and dentists to facilitate billings.

By contrast, here the taxonomy iscomposed entirely of a system of commands to carry out specified computer functions. For a similar reason, Oracle’s analogy to stealing the plot and character from a movie is inapt, for movies involve no “system” or “method of operation” — scripts are entirely creative. In ADA, Judge Frank Easterbrook (writing for the panel) suggested that a “system” under Section 102(b) had to come with “instructions for use.” 126 F.3d at 980.

Because the taxonomy there at issue had no instructions for use, among other reasons, it was held not to be a system. By contrast, the API at issue here does come with instructions for use, namely, the documentation and embedded comments that were much litigated at trial.

They describe every package, class and method, what inputs they need, and what outputs they return — the classic form of instructions for use. In our circuit, the structure, sequence and organization of a computer program may (or may not) qualify as a protectable element depending on the “particular facts of each case” and always subject to exclusion of unprotectable elements. Johnson Controls v. Phoenix Control Sys.

Contrary to Oracle, Johnson Controls did not hold that all structure, sequence and organization in all computer programs are within the protection of a copyright. On a motion for preliminary injunction, the district court found that the structure, sequence and organization of the copyrighted program, on the facts there found, deserved copyright protection. (The structure, sequence and organization features found protectable were not described in the appellate decision.)

On an appeal from the preliminary injunction, our court of appeals merely said no clear error had occurred. Again, the appellate opinion stated that the extent to which the structure, sequence and organization was protectable depended on the facts and circumstances of each case. The circumstances there are not the circumstances here. In closing, it is important to step back and take in the breadth of Oracle’s claim.

Of the 166 Java packages, 129 were not violated in any way. Of the 37 accused, 97 percent of the Android lines were new from Google and the remaining three percent were freely replicable under the merger and names doctrines.

Oracle must resort, therefore, to claiming that it owns, by copyright, the exclusive right to any and all possible implementations of the taxonomy-like command structure for the 166 packages and/or any subpart thereof — even though it copyrighted only one implementation.

To accept Oracle’s claim would be to allow anyone to copyright one version of code to carry out a system of commands and thereby bar all others from writing their own different versions to carry out all or part of the same commands. No holding has ever endorsed such a sweeping proposition.

CONCLUSION

This order does not hold that Java API packages are free for all to use without license. It does not hold that the structure, sequence and organization of all computer programs may be stolen. Rather, it holds on the specific facts of this case, the particular elements replicated by Google were free for all to use under the Copyright Act. Therefore, Oracle’s claim based on Google’s copying of the 37 API packages, including their structure, sequence and organization is DISMISSED. To the extent stated herein, Google’s Rule 50 motions regarding copyrightability are GRANTED. Google’s motion for a new trial on copyright infringement is DENIED AS MOOT.”