The structure, sequence, and organization of the 37 Java APIs at question in the Oracle v. Google case are not copyrightable, Judge William Alsup of the U.S. District Court of Northern California said in a ruling today.

However, it's a narrow ruling that only covers the APIs at question in the copyright phase of this case.

Oracle had sued Google over copyright infringement related to the use of 37 Java APIs used on the Android mobile operating system. Google argued they were free to use because the Java programming language is free to use, and the APIs are required to use the language. Oracle tried to make the case that Google had knowingly used the APIs without a license from Sun Microsystems, which was bought by Oracle in 2010.

That's after the jury came back with a partial verdict in the copyrights phase of the trial a few weeks ago in which the then-12 jurors said that Google had infringed upon Oracle's copyrights -- but they could not come up with a unanimous answer on the question of fair use.

However, now Alsup has handed another win to Google by ruling that the 37 APIs weren't copyrightable in the first place. Here is the heart of the ruling:

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. When there is only one way to express an idea or function, then everyone is free to do so and no one can monopolize that expression. And, while the Android method and class names could have been different from the names of their counterparts in Java and still have worked, copyright protection never extends to names or short phrases as a matter of law.

The key point to understand here is that Alsup's ruling only refers to the APIs in this lawsuit, and he is not handing down a broad ruling that would extend to all APIs in general, something that could have turned the ruling into an important legal precedent.

"This order does not hold that Java API packages are free for all to use without license," Alsup wrote. "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."

Thus, that calls for two major decisions wrapped up: Oracle's copyright infringement claim against Google is dismissed, turning Google's motion for a retrial into a moot point.

Now the big question will be where Oracle heads from here: accept the U.S. District Court's decision or try to go for an appeal. The latter seems like an incredible long shot given that it barely won on any counts from the jury on copyrights and absolutely nothing on patents.

The jury only gave Oracle the win on the nine lines of code involved in the rangeCheck method, and Alsup had previously said before Oracle could only hope for statutory damages -- a maximum of $150,000 -- at best on those. The court later tacked on the test files, but Oracle's efforts in this case will not result in the payday for which it originally hoped.

In a statement, Oracle said it would appeal the decision, maintaining that a "license has always been required for an implementation of the Java Specification":

Oracle is committed to the protection of Java as both a valuable development platform and a valuable intellectual property asset. It will vigorously pursue an appeal of this decision in order to maintain that protection and to continue to support the broader Java community of over 9 million developers and countless law abiding enterprises. Google's implementation of the accused APIs is not a free pass, since a license has always been required for an implementation of the Java Specification. And the court's reliance on "interoperability" ignores the undisputed fact that Google deliberately eliminated interoperability between Android and all other Java platforms. Google's implementation intentionally fragmented Java and broke the "write once, run anywhere" promise. This ruling, if permitted to stand, would undermine the protection for innovation and invention in the United States and make it far more difficult to defend intellectual property rights against companies anywhere in the world that simply takes them as their own.

Google issued the following statement:

The court's decision upholds the principle that open and interoperable computer languages form an essential basis for software development. It's a good day for collaboration and innovation.

Here's a full copy of the ruling: