Copyrightability of Application Programming Interfaces: The Oracle-Google case

Copyrightability of Application Programming Interfaces: The Oracle-Google case

Bar & Bench

Sairam Sanath Kumar

The question whether Application Programming Interfaces (APIs) should enjoy protection under copyright laws has been controversy’s child for decades. The long-drawn litigation between Google and Oracle, now pending with the United States Court of Appeals for the Federal Circuit, has managed to polarize technology and intellectual property lawyers globally.

The case boils down to one legal question built on a technical premise: did Google infringe Oracle’s copyright by verbatim replicating 37 packages in the Java API (Oracle owns the programming language Java) in Google’s development of the Android software platform for mobile devices? Both Google and Oracle have had favourable turns of events in courts at some point of time in the lawsuit’s seven-year trajectory, but all legal options for both parties are not yet exhausted.

The community of software developers has generally concurred with Google’s view that it should have unrestricted access to APIs to develop services for third-parties. The lawyers, however, seem split on the applicability of a host of copyright doctrines, tests and interpretation of the US Copyright Act, 1976.  The only certainty at the moment is a cliché: the software industry, waiting with bated breath, knows that the end result of this litigation will have a far-reaching impact globally. Copyrightability of APIs can potentially illegalize millions of applications developed by individuals and businesses, using unlicensed API packages for compatibility with desktops, laptops, smartphones and tablets.

API is a set of programming instructions deployed to intermediate between software programs, between software and its external device, or more broadly among applications, data and devices. For example, a hotel booking website aggregates information about room availability, rates etc. from the official websites of multiple hotels and helps customers make their bookings. The connectivity between the aggregating site and the official site is achieved by the official websites’ APIs that take the requests. Another example: APIs are what helps you upload a photo on Facebook and Twitter simultaneously by getting both the apps, the iOS and your iPhone to interact with each other.

Clash of the Tech Titans

In 2010, Oracle sued Google in the Northern District of California for damages to the tune of USD 9 billion, alleging that the latter, in its Android platform, replicated the structure, sequence and organization (SSO) of the overall code for the 37 packages in the Java API. This was shortly after Oracle had acquired Sun Microsystems (which developed and released Java in the mid-nineties).

Google had earlier been in talks with Sun Microsystems to obtain a license to use the Java platform for mobile phones, but the deal did not work out. Google’s developers then designed their own version of Java, and while doing so, replicated 37 out of 166 packages of Java APIs so that the codes already written by application programmers in Java language could run on Android. What was not in dispute was that Google did not literally replicate the underlying code to implement these packages, but only their exact names, organization and functions.

Google won the first round in 2012 when Judge William H Alsup of the district court, acknowledging that no law directly addressed the issue, held that,

“So long as the specific code used to implement a method is different, anyone is free under the Copyright Act to write his or her own code to carry out exactly the same function or specification of any methods used in the Java API. It does not matter that the declaration or method header lines are identical. Under the rules of Java, they must be identical to declare a method specifying the same functionality— even when the implementation is different.”

The court applied the merger doctrine that disallows anyone from claiming copyright ownership if there is only one or few ways to express something. Additionally, under Section 102(b) of the Copyright Act, 1976, copyright protection does not extend to “any idea, procedure, process, system, method of operation, concept” etc. The command structure of the 37 API packages, whose duplication is necessary for interoperability, was held to be a system or method of operation under this section, and hence not copyrightable.

Oracle appealed to the Court of Appeals for the Federal Circuit which, to the shock of the developer community in particular, overturned the district court’s ruling, and held that the SSO of the 37 APIs are protected by copyright. The court said,

“we agree with Oracle that, under Ninth Circuit law, an original work—even one that serves a function—is entitled to copyright protection as long as the author had multiple ways to express the underlying idea. Section 102(b) does not, as Google seems to suggest, automatically deny copyright protection to elements of a computer program that are functional.”

The ruling invalidated the applicability of the merger doctrine on two counts: one, that it is a defense only to infringement and not to assess whether the expression is original (which the declaring code and SSO of the API packages are, as conceded by Google) and copyrightable in the first place; two, that it should be invoked in reference to the time of creation and not time of infringement. Even if time of creation was considered, Sun/Oracle could have written the lines of the declaring code in any number of ways.

Besides, Google was free to write its own non-infringing declaring code to achieve the same result. The interoperability exception to copyrightability was rejected on the ground that both literal and non-literal elements of a software program are protected by copyright. The court remanded the fair use question for a new trial.

Google petitioned for a writ of certiorari to the United States Supreme Court, which, in June 2015, was declined. The case went back to the district court where a jury, in June 2016, unanimously found that Google’s use of the 37 API packages and the declaring code constituted fair use. Oracle appealed again to the Court of Appeals, where the case is pending.

Whose API is It Anyway?

The uproar against the Court of Appeals verdict stemmed from the fact that developers and businesses have been designing APIs for compatibility with third-party programs for decades, without worrying about copyright infringement, particularly after the landmark rulings in Computer Associates International, Inc. vs. Altai, Inc. and Sega Enterprises vs. Accolade, Inc.

Until then, US courts veered towards copyright protection for SSOs of program interfaces, but Altai held that that interfaces with substantially similar structures cannot be a foundation for copyright infringement claims. In Altai, Computer Associates (CA) alleged that Altai’s job scheduling program called Zeke had a sub-program that copied 30 percent of the source code from CA’s scheduling program which had its own compatibility sub-program.

The district court awarded damages to CA, but rejected CA’s second claim of copyright infringement against the subsequently rewritten (purged) version of Altai’s sub-program. In affirming the district court’s judgement, the Court of Appeals said that the expression adopted by the programmer is copyrightable in a computer program, but not the actual processes or methods embodied in the program.

In Sega, the Ninth Circuit Court of Appeals held that Accolade’s reverse-engineering of Sega’s programs to unravel the SSO of the Sega interface and make Accolade’s videogames compatible with Sega’s platform is fair use, if that’s the only way to gain access to the unprotected aspects of the program. The court said,

“…the fact that computer programs are distributed for public use in object code form often precludes public access to the ideas and functional concepts contained in those programs, and thus confers on the copyright owner a de facto monopoly over those ideas and functional concepts. That result defeats the fundamental purpose of the Copyright Act — to encourage the production of original works by protecting the expressive elements of those works while leaving the ideas, facts, and functional concepts in the public domain for others to build on…”

Judge Alsup, in the Oracle-Google case, appositely drew an analogy with Sega, saying that “interface procedures required for interoperability were deemed ‘functional requirements for compatibility’ and were not copyrightable under Section 102(b)”. The command structure for the 37 packages, when replicated, provides for interoperability of code. Hence, Google was free to replicate them. The Court of Appeals, however, erroneously brushed aside Sega as a fair use case.

Abstraction-Filtration-Comparison Test

Oracle submitted evidence at trial to prove that the SSO of the Java API packages was creative and original. The district court accepted and agreed entirely, and Google had no choice but to concede to this at the Court of Appeals. In a manner of speaking, this may have contributed to Google’s undoing in the Court of Appeals in 2014.

In Altai, the Court of Appeals for the Second Circuit formulated the three-pronged test of abstraction-filtration-comparison to assess whether non-literal components of a computer program (SSO and user interface) constitute expression protected by copyright.

Abstraction involves breaking down the “allegedly infringed program into its constituent structural parts”. Filtration entails examining the structural parts “for separating protectable expression from non-protectable materials”. There are three criteria in this second step – whether the structural part was “dictated by considerations of efficiency”, “required by factors external to the program itself”; or “taken from the public domain”, all of which would make the expression non-protectable. In the final step of comparison, once the non-protectable expressions are weeded out, there would then “remain a core of protectable expression”.

While examining the applicability of the filtration stage, the Court of Appeals, in the Oracle-Google case, added a pre-condition that was never originally enunciated in Altai. It said,

“in the second step, the court is first to assess whether the expression is original to the programmer or author.”

This was ascribed to the decision in Atari Games Corp. vs. Nintendo of America., Inc., though the Court of Appeals did not elaborate on this point. In Atari, Nintendo designed the 10NES program to prevent its video game system from accepting unauthorized game cartridges. Atari obtained an unauthorized copy of the source code of this program, and used it to create a 10NES clone that could unlock Nintendo’s game console.

While affirming the district court’s decision that the 10NES contained protectable expression, the Court of Appeals for the Federal Circuit added an additional criterion to the filtration stage of the three-pronged test. Circuit Judge Rader said,

“court must filter out as unprotectable the ideas, expression necessarily incident to the idea, expression already in the public domain, expression dictated by external factors…and expression not original to the programmer or author (emphasis added)”.

Irrespective of what the judge may have meant in the context of Atari, the additional criterion was not intended as a pre-condition to the other preceding criteria in that sentence. It is unclear why the Court of Appeals in the Oracle-Google case seems to have made this a pre-condition.

The court goes on to say that the district court stopped short of actually applying this test, though that’s exactly what the Court of Appeals did too. It would have been interesting to see the outcome of applying this test on the declaring code and the 37 Java API packages.

Sairam Sanath Kumar is a technology lawyer and a Legal Counsel with Cognizant Technology Solutions, based in Chennai.

Lead image taken from here.

Bar and Bench - Indian Legal news