decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
| 223 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Corrections here
Authored by: feldegast on Friday, March 30 2012 @ 09:32 AM EDT
So they can be fixed

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

News picks
Authored by: feldegast on Friday, March 30 2012 @ 09:33 AM EDT
Please make links clickable

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

Off topic
Authored by: feldegast on Friday, March 30 2012 @ 09:34 AM EDT
Please make links clickable

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License
Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

Comes transcribing
Authored by: feldegast on Friday, March 30 2012 @ 09:36 AM EDT
Thank you for your support, Post text here, documents can be found on the booking page at groklawstatic.ibiblio.org/ staticpages/index.php%3f page=ComesBooking

---
IANAL
My posts are ©2004-2012 and released under the Creative Commons License Attribution-Noncommercial 2.0
P.J. has permission for commercial use.

[ Reply to This | # ]

Questions, questions, questions
Authored by: maroberts on Friday, March 30 2012 @ 09:37 AM EDT
One thing I do think in his favour is that he is willing to admit what he
doesn't know or is in doubt about, and then gives invitations to both sides to
clarify the matter for him. I also guess he wants to streamline the case by
clearing things in his own mind before the jury trial. I wonder how crucial
these Q&A sessions will be in the coming weeks??

[ Reply to This | # ]

Programming Languages
Authored by: Anonymous on Friday, March 30 2012 @ 09:59 AM EDT

Languages are not protectable by copyrighted. A programming language is an abstract framework. The language allows any program that meets the requirements of the framework to be compiled by the compiler (or interpreted by the interpreter.)

The language specification itself (ie: the yacc and lex compilation rules) can be copyrighted. However, these can easily be recreated by another compiler author to do something similar.

It is very difficult to protect a computer language via copyright. This matches the human experience. No one is allowed to copyright spoken languages either. A company cannot copyright English, French, or Italian either.

[ Reply to This | # ]

Oracle v. Google - More Questions From the Court on Copyright
Authored by: Anonymous on Friday, March 30 2012 @ 10:03 AM EDT
If I am not mistaken (I am a Java programmer) the only thing
you can do without using the APIs is converting electricity
into heat.

If you want to display / output anything (or get input), you
must use the Java APIs.

[ Reply to This | # ]

Copyrighted programming language?
Authored by: hardmath on Friday, March 30 2012 @ 10:09 AM EDT

Of course the specification of a programming language can and ordinarily would be copyrighted, assuming the goal of a standard definition is in view.

But presumably the Judge has something more restrictive in mind, a copyright that allows the programming language "owner" to license the use of the language for programming (and by extension to treat those programs as derivative works).

The first thing to be said is that this simply isn't done. It would be like selling write-only memory as a product. Who would use it?

The closest I can think of to this arrangement is where a vendor treats data formats as proprietary, and thus seeks to proscribe its customers from editing or analyzing the data independently, or at least from doing so without incurring additional license fees. For example I dealt with a vendor of telephone call logging equipment at an international agency, who argued that the phone call data was in a proprietary format and the international agency could not lawfully ask me to write new reporting software that would present the necessary information according to customer requirements.

Such a scheme depends on and reinforces vendor lock-in. It has rarely gotten much of a foothold in the programming world because general purpose programming languages can do everything a specialized but proprietary language might do.

At its inception Verilog HDL, a hardware description language rather than a software programming language, was proprietary and copyrighted. Due to competition in the marketplace, Verilog was submitted for open standardization after a decade of life in the proprietary lane.

---
Do the arithmetic or be doomed to talk nonsense. -- John McCarthy (1927-2011)

[ Reply to This | # ]

Language Copyrightability
Authored by: Anonymous on Friday, March 30 2012 @ 10:12 AM EDT
What would it mean for a language to be protected by
copyright? What specific thing can you not copy?

There is the language specification - that is clearly
protected by copyright. But once you have a copy of the
specification (you bought it, or someone gave it you,
whatever) then you're probably not very interested in
creating more copies.

There is code written in the language - clearly not a case
of the language falling under copyright, though the code
itself will be copyrightable by whoever wrote it. But when
I write code in C, Dennis Ritchie does not own the copyright
in it.

There is the compiler or interpreter used to transform the
language into machine code instructions. While one specific
compiler falls under copyright, pretty clearly independently
implemented compilers don't infringe. GCC and MSVC both
compile C
code without there being problems of copyright between them.

So what is left to copyright? A language has two parts,
syntax and semantics - roughly answering the two questions,
"Does this piece of text mean anything at all?" and "What
does this piece of text mean?" There is nothing that has to
be literally copied to make use of either of these. It's
often tempting to see the 'standard' API that goes with a
language as part of the language itself, but almost always
the association between a language and its standard library
is by convention, not necessity.

This is why, IIRC, Sun never attempted to 'copyright' Java,
but rather protected the Java trademark and asserted
copyright over the Java compatibility test kit.

OTOH there are lots of possible things about languages that
might deserve patent protection IMO (not that current patent
law necessarily provides it). Generics, garbage collection,
closures, first-class function objects, exception handling,
threading, lambda expressions and many more are all non-
obvious language features that are significant advances of
the art of computer science that have gradually been adopted
by one language after another as they gain popularity. They
are not the sort of obvious incremental advance that anyone
writing a particular type of software will naturally come up
with but are innovations that fundamentally change the way a
language works. To a large degree we are simply fortunate
that the people who developed these ideas didn't see a need
to patent them.

[ Reply to This | # ]

ManOMan, I really want to buy this guy a beer
Authored by: Anonymous on Friday, March 30 2012 @ 10:43 AM EDT

You can blind/confuse people only for so long with the kind of skullduggery that
has got us here in the first place.

Let's just hope that Judge A doesn't go down the route of the PTO and decide to
try and somehow reconcile the division of the indivisible.


my view (IANAL)

1) No, your *selection* can be unique enough to obtain
copyright protection in and of itself as a 'unique' part of the whole, that does
not change the copyright protection in the underlying facts of your selection

2) No, it is the selection and arrangement that's gets copyright protection, not
the elements contained within the selection and arrangement

3) The mistake is conflating Selection and arrangement and structure, with the
API versus the API Specification. SAS applies to your work as a whole, not the
pile of facts which you are describing in your SAS.

4) I don't understand (IANAL)

5) NO (I can write Java programs without any of those APIS)

6) According to the EU, not at all.
http://www.physorg.com/news/2011-11-language-copyrighted-eu-court.html
Of course you could decide otherwise, then maybe American would be a massive
language copyright infringement. and all your $ are belong to us (except those
which you owe to the Chinese ;o)

7) It seems you can claim anything under patent. It's actual
validity as a patent remains open to question, despite it's issuance, but
that's a different argument.
e
8) They *did* infringe the implementation, look we've got 8/12/11 files and
they admitted it, and here's a copy of our registration certificate to prove
it..



IANAL (not IAN AL)



[ Reply to This | # ]

Which are the 37 APIs?
Authored by: hardmath on Friday, March 30 2012 @ 11:02 AM EDT

Who are the 39 Steps?

Apparently there was some horsing around at the outset with the number of APIs Oracle claimed as to copyright infringement. According to this Groklaw article, a figure of 37 APIs was arrived at by Oracle in its supplemental interrogatory responses of July 29, 2011, narrowing the scope from previous claims about 48 or 51 Java APIs, thus occasioning revisions to Google's expert Owen Astrachan's report ( PDF), which had been submitted on that same date.

Oracle had removed claims about 11 packages (11 = 48-37), namely java.math and ten more that began java.xml.

A list of 37 accused Java APIs (packages beginning with either java or javax) are found in this Oracle Exhibit C submitted on Aug. 1, 2011.

1. java.awt.font

2. java.beans

3. java.io

4. java.lang

5. java.lang.annotation

6. java.lang.ref

7. java.lang.reflect

8. java.net

9. java.nio

10. java.nio.channels

11. java.nio.channels.spi

12. java.nio.charset

13. java.nio.charset.spi

14. java.security

15. java.security.acl

16. java.security.cert

17. java.security.interfaces

18. java.security.spec

19. java.sql

20. java.text

21. java.util

22. java.util.jar

23. java.util.logging

24. java.util.prefs

25. java.util.regex

26. java.util.zip

27. javax.crypto

28. javax.crypto.interfaces

29. javax.crypto.spec

30. javax.net

31. javax.net.ssl

32. javax.security.auth

33. javax.security.auth.callback

34. javax.security.auth.login

35. javax.security.auth.x500

36. javax.security.cert

37. javax.sql

---
Do the arithmetic or be doomed to talk nonsense. -- John McCarthy (1927-2011)

[ Reply to This | # ]

#5 "integral" - strange choice of words
Authored by: Anonymous on Friday, March 30 2012 @ 11:08 AM EDT
"Integral" means either "inseparable" or "included within the whole"; I think the judge means the former. I suspect that what's in the back of his mind is that Oracle may be making a lot of noise over some de minimus alleged infringments. That shouldn't matter much on the legal merits, but this judge has already spent a lot of time on questions of damages, and he may be wondering whether Oracle's numbers are just a wee bit on the high side.

The odd bit is that "Java" means whatever Oracle wants it to mean - it's their trademark. So it's hard for anybody else to answer the question of which APIs are currently "integral". You can certainly look at what Oracle has said in the past about which APIs are "part of Java" - all of the ones at issue in this case, I'll bet - but that doesn't tell you which ones are "integral".

I haven't been following closely enough to know which APIs Oracle is asserting here - there's a big number of APIs (37?). Some may be applicable only in specialized domains and would be relatively easy to replace with a different library. Any program written to use the alternative library would still be written in the Java language - all the syntax would be identical, only the names of a few domain-specific functions would change. For example, you can easily imagine Java without J2EE (just go back in time...). Whether J2EE is crucial to you depends on whether you work in the enterprise domain and how well you know the various alternatives.

From a programmer's perspective, syntax is integral to a language, most APIs are not. A few are: it's hard to imagine C without printf() and malloc(), or Perl without split(). I tend to think of those things as a single API - "the standard library." In the case of Java, the trademark requires a whole bunch of libraries, some of which I'd argue aren't crucial. I can't remember my Java package names at the moment, but generally I'd say that the system stuff is crucial (file handling, command-line IO, IPC) as are basic programming utilities (regular expressions, sorting, data collections like vectors), and in Java's case I'd include graphics. Those are implemented in maybe a dozen packages. (Again, I'm not sure how Oracle is defining "API"). I don't think I can get to 37. But the point is, those are the ones that *I* consider crucial. You'll get lots of consensus on some of these functions being crucial, but rarely will two programmers come up with the same list of what's "crucial".

[ Reply to This | # ]

Groklaw 2.0 and question 5
Authored by: stegu on Friday, March 30 2012 @ 11:08 AM EDT
Mark, thanks for taking a stab at answering some
of the questions yourself. I like the fact that
Groklaw now has a lawyer on board. And with PJ
still lurking around, I don't have to decide which
one I like better. Groklaw 2.0 is simply upgraded.

The question whether the 37 APIs are essential to
Java is put in a strange way by the judge.
Yes, programmers writing applications write
their own programs using the APIs, that is the
whole point of an API ("application programming
interface"). However, that does not imply that
the APIs are essential to Java. In this case,
some of them are, and Sun said so in their Java
specification.

The answer is still not simple, because "Java"
is taken to mean many different things depending
on what Oracle decide it to mean, much like the
Cheshire Cat's nonsensical statements that tie
language in a knot and defy logic.

All the Java APIs are an integral part of Java
as a *platform*, the package Sun put its brand
name on. This one common meaning of "Java".

However, contrary to most other programming
languages, some APIs are in part essential also
to Java as a *language*. Some parts of java.lang
are very tightly intertwined with fundamental
constructs in Java programs, and no useful
program in the Java language could be written
without at least some other API to communicate
with the outside world, like java.io or java.net.
Sun explicitly said that the Java APIs are
essential and integral to the programming
language in their specification of the language,
and this is one of the things that set Java
apart from other programming languages.
It would be very difficult for Oracle to take
that back now, but I'd like to see them try.

[ Reply to This | # ]

Java without APIs ...
Authored by: nsomos on Friday, March 30 2012 @ 11:12 AM EDT
Java without APIs is like a car without its wheels and tires.
Sure, there might be some things you can still do with it,
but it is totally unsuitable for its intended purpose
WITHOUT the wheels and tires attached.

[ Reply to This | # ]

The Honorable Judge Alsup takes a knife to Oracle's Patent Case
Authored by: Anonymous on Friday, March 30 2012 @ 11:28 AM EDT
The question put about copyright of the 37 APIs is like giving
a curving knife ,a pot and stuffing to a Turkey and asking the
turkey to prepare itself for thanksgiving dinner.

The last sentence is the giving of thanks before the meal.

Complete candor is requested, for the Court needs the
genuine assistance of the excellent counsel(BSF) in this case.

[ Reply to This | # ]

I'm not sure I understand the question.
Authored by: Ian Al on Friday, March 30 2012 @ 12:10 PM EDT
Is it true that the APIs are an integral part of Java? That is, programmers write their own programs using the APIs? If the answer depends on the particular API, please specific which of the 37 asserted are integral.
My first response was 'don't be silly, the only reason for providing the 160+ core API packages was to allow programmers to write their own programs.

I think the correct answer is that the entire 160+ are used by programmers to write their own programs which run on the Java Runtime Environment. Not all 160+ are required for every programmers program.

The 37 asserted APIs are integral to programmers writing programs in the Java language to run on the Android/Dalvik Runtime Environment. However, additional packages unique to Android are also necessary. Again, not every API is used with every program.

In both cases, without both the API specification and the API implementation code, programmers can write programs in Java, but there is no way of executing the program on the relevant run-time environment.

I am assuming that Google only 'copied' the elements from the 37 packages to allow programmers to program in Java for Dalvik. There seems to be no other reason for choosing elements from the 37.

Do you think I have understood what the judge was driving at, or has he another angle on the APIs?

---
Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid!

[ Reply to This | # ]

Oracle v. Google - More Questions From the Court on Copyright
Authored by: Kevin on Friday, March 30 2012 @ 12:48 PM EDT
Which API's are integral to the language? An interesting question. If we take
the narrowest interpretation, "which API's are such that, if they were
removed, fundamental statements in the language cannot be expressed?" we
find a few API's that truly are integral.

First, essentially all of 'java.lang' is explicitly called out in the language
specification. It represents the interfaces of classes, objects, enumerations,
boxed types, and so on: these simply must be provided for programs written in
the language to function - even if the programmer has not called for them
explicitly. When a programmer writes:

enum Color {RED, GREEN, BLUE}
for (Color c: Color.values()) { ... }

the machinery of java.lang.Iterable comes into play, as does java.util.EnumSet.

And java.util.EnumSet is itself quite a complex interface; it inherits from
AbstractSet (and thence AbstractCollection and Object). It must implement
Serializable, Cloneable, Iterable, Collection and Set. Already, we have a huge
piece of java.util - absolutely required for that simple 'for' statement.

Moreover, Serializable starts dragging in things like java.io.ObjectOutputStream
and java.io.ObjectInputStream - which have an equally complex web of
dependencies, covering a huge swath of java.io.

Other language features also touch many of the API's that Oracle asserts are
proprietary. Essentially, if Oracle's assertion that copyright extends to
implementations of these API's is allowed to stand, the API copyright becomes a
95-year patent on the language itself -- because the language cannot be
implemented without the core API's.

---
73 de ke9tv/2, Kevin (P.S. My surname is not McBride!)

[ Reply to This | # ]

Copyright on Computer Languages
Authored by: ausage on Friday, March 30 2012 @ 01:46 PM EDT
Question 6 strikes me as fairly straightforward. In their entirety certainly a computer language is capable of copyright protection. As for patent protection, not likely.

I believe that while the documents that detail the specification for a computer language are protected by copyright, the language itself, like natural languages, is not a suitable for copyright protection. If I remember correctly, this was established in the Lotus 123 vs Aston-Tate Visicalc litigation, where Lotus claimed that its user interface was effectively a "language" and was protected by its copyright. I seem to remember that the court ruled that while to total arrangement and structure of the interface (i.e. the expression) was protected, the individual parts (the "vocabulary") were not and could be used and rearranged by others.

In light of the most recently Supreme Court rulings, Bilski and Mayo, I would presume that any hopes for patent protection are remote at best. On the other hand, Adobe made a great deal of money with Postscript where the original patent protection of the language prevented others from creating alternative implementations for many years.

[ Reply to This | # ]

Oracle v. Google - More Questions From the Court on Copyright
Authored by: Anonymous on Friday, March 30 2012 @ 01:48 PM EDT
"(5) Is it true that the APIs are an integral part of Java?
That is, programmers write their own programs using the
APIs? If the answer depends on the particular API, please
specific which of the 37 asserted are integral."

It is true that the Java APIs are an integral part of Java
in that as it is currently designed, it cannot function
without it. However, this does not mean that an alternate
API would not function equivalently, or possibly better
(more efficiently, for example).

Programs written in Java do not (directly) use the Java
APIs, however, programs that communicate with the Java
program, do, and similarly, a Java clone can and often does
use the same APIs for compatibility.

If alternate APIs are used, an external program cannot be
guaranteed the ability to communicate with a Java program.

Think of a Java program as a normal program on your
computer, and the Java Virtual Machine as your OS. If a
program outside of your computer needs to communicate with
your program, it can do so by the ethernet "API" or the USB
"API". If a different computer/program wishes to communicate
with your program, it cannot use the USB "API" protocol over
ethernet, otherwise it will never get any usable response.
It cannot use it's own made up API, for similar reasons.
Communicating on the USB port, when the Java program isn't
watching for this nonstandard behavior will not result in
any useful communication.

Additionally, you have mentioned one lawyer who is very good
at explaining technical terms can illustrate an API. He used
the idea of a driver/car interface consisting of the
steering wheel, gas pedal, brake, and for some versions, a
clutch. You can move these around, and the car will
function, but people will push the clutch or gas rather than
the brake, or will miss the brake due to the changed
position(s). This illustration fails because the driver
uses the API, while the Java program does not. We could be
more accurate with the turn signal, brake lights, running
lights as they interface other drivers. If the turn signal
light is lit red where the brake lights are, then when the
person goes to change lanes, the driver behind them will
think they are braking (and a light is burned out), and
change lanes, possible leading to an accident.

[ Reply to This | # ]

For purposes of merger and scenes a faire it is most instructive
Authored by: Anonymous on Friday, March 30 2012 @ 01:50 PM EDT
For purposes of merger and scenes a faire it is most instructive to look at the
Java language as it is being taught in university courses and textbooks. Looking
at these it is easy to see that the APIs in question are now considered as
inseparable. There are many courses that claim they "teach the Java
programming language" but you won't find one that doesn't include parts of
these APIs. Oracles interpretation of "Java language" vs the APIs is
inconsistent with that of everybody else.

The APIs in question, if they were ever copyrightable, have merged with the idea
"Java". They are expected in a Java implementation. They are like the
many stock elements in action movies. At some point these APIs may have existed
as something separate and novel. But today they don't.

[ Reply to This | # ]

Appeal this at your peril
Authored by: mexaly on Friday, March 30 2012 @ 02:12 PM EDT
"I don't want you coming back with any of that balderdash you used to use
to hoodwink the circuit in some previous escapades."

---
IANAL, but I watch actors play lawyers on high-definition television.
Thanks to our hosts and the legal experts that make Groklaw great.

[ Reply to This | # ]

when is the time for good manners over?
Authored by: Anonymous on Friday, March 30 2012 @ 02:44 PM EDT
"Please do not hedge." "Please..." "Please..."

The Court's time and taxpayers' money have been wasted in a bad way here.
Everybody can see that Oracle is cutting off its nose to spite its own face,
sticking with the case to the bitter end, no matter the cost.

I agree with Churchill that "when you're getting ready to kill a man, it
costs you nothing to be courteous." However, that quote is about formal
declarations of war. In this case, it was Oracle that declared war, and is now
dealing with the skepticism of a judge who won't just roll over at their
command. "But... but... we're Oracle! We're the most popular database on
the planet! How dare you question our assertions!" The arrogance should be
shocking... but it isn't.

The entire Oracle chain of command, from the lawyers clear up to Larry Ellison,
should be subpoenaed by the court to appear in person and explain this frivolous
suit. And no "please" about it.

[ Reply to This | # ]

In Europe Computer Languages cannot be copyrighted
Authored by: Anonymous on Friday, March 30 2012 @ 02:53 PM EDT
see the details on this from the link here, where the Advocate General is saying Computer Languages cannot be copyrighted. While the full court has not ruled on this, and may go against the initial ruling, this will not be ruled until sometime in 2012. Will this have some impact on a US case?

[ Reply to This | # ]

I think the Court is catching on that he is being asked to make new law.
Authored by: rsteinmetz70112 on Friday, March 30 2012 @ 03:36 PM EDT
I believe that the Judges has caught on that he is being asked to make new law
here and that no one has ventured as far into this area as Oracle wants to.

The Oracle likes to make analogies to literature and the arrangement of chapters
in a complex book.

Google likes to make analogies to the arrangement of a dictionary.

Neither is really entirely on point.

The structure of a computer language is functional but the designer of a
language has a lot more creative leeway in the arrangement than the author of
dictionary.

---
Rsteinmetz - IANAL therefore my opinions are illegal.

"I could be wrong now, but I don't think so."
Randy Newman - The Title Theme from Monk

[ Reply to This | # ]

Oracle v. Google - More Questions From the Court on Copyright
Authored by: Anonymous on Friday, March 30 2012 @ 04:27 PM EDT
Thinking about it more, I think that the judge sees a duck.
Oracle came to court claiming that they had a turkey that
laid golden eggs and Google is trying to steal it. Google
said its a duck. The judge is now seeing that it walks
like a duck, quacks like a duck, and even swims like a
duck. But, for some reason, it does not look quite like
a duck. Google keeps saying its a duck. Oracle says its
a turkey. The more the judge keeps looking at it he begins
to see coverings on the feet and glued on feathers and head
dress, and indeed it just may be a duck. I think the judge
wants to see if it will fly because he knows turkeys don't
fly like a duck.

[ Reply to This | # ]

A language (computer or otherwise) is NOT copyrightable
Authored by: Anonymous on Friday, March 30 2012 @ 05:11 PM EDT
Formally, a language specification is a finite set of symbols and a grammar: a
set of rules for telling you how stringing the symbols together is legal or not
legal.

Formally, different sets of rules are equivalent if exactly the same series of
symbols are classified as legal or illegal.

Formally, a language specification is equivalent to a set of symbols and a
second set (possibly infinite) of all possible legal sequences of symbols. As
this is potentially infinite, it belongs solely to the realm of ideas and
mathematical entities and never to the realm of the copyrightable fixed
expressions of creativity.

Therefore, a language specification has a large idea content and large amounts
of a language specification are not copyrightable. For example, in enumerating
the symbols there will be limited grounds to introduce creativity as to how one
orders a list of symbols which could be listed in any order and still represent
the same set.

Naturally, any useful human guide to how to use and apply the language is going
to have lots of creating expression, but that's confusing a English textbook for
the English language itself.

-Richard Penner

[ Reply to This | # ]

language is a set of facts
Authored by: kawabago on Friday, March 30 2012 @ 06:31 PM EDT
Language is a set of facts. Each word in a language has a
specific meaning that everyone must know. Syntax are rules
you must follow. You cannot copyright individual words so
you cannot copyright the words of a language. You can create
a language by describing it's words and syntax but you can't
stop people from then using your language. Only the
expression describing the words is protectable, not the
words or ideas themselves. For example the new word muggle
created by JK Rowling means non-magic folk and now anyone
can use that word, it is a fair use. JK Rowling did win a
case where someone created a lexicon of all the terms she
used in her books. It was held that use of all the created
words in her works would violate her copyright. I think
single words would be considered fair use.

[ Reply to This | # ]

This programmer's take on question 5
Authored by: bugstomper on Friday, March 30 2012 @ 08:01 PM EDT
"Is it true that the APIs are an integral part of Java? That is,
programmers write their own programs using the APIs? If the answer depends on
the particular API, please specific which of the 37 asserted are
integral."

Notice that Judge Alsup explains what he means by "integral" a bit
differently than what some people here seem to assume by the word. His
"that is" rephrasing is not asking whether the APIs are
"integral" in the sense of being an essential, and inseparable part of
the Java language. He asks whether programmers use the APIs the same way that
they use the Java language, that is, they write their own programs and express
those programs in the Java language and the APIs.

That is a really astute question. Let's take the case of a hypothetical third
party Java class library written for astrophysicists to facilitate the writing
of simulations related to black holes. The authors of this class library have
put a lot of work into coming up with useful abstractions that provide a general
framework that supports several types of programs that a computational
astrophysicist may want to write. The selection of classes, their methods, the
inheritance hierarchy that relates them, and so on, is the concrete expression
of creative ideas. Not being a lawyer I could not say whether that “selection,
arrangement, and structure” is copyrightable, but I could see the argument for
it. If it is copyrightable, then the authors of this class library for
astrophysicists would have protection against someone else producing a clean
room implementation of a class library with identical packages, classes and
methods.

If that hypothetical library's API is not copyrightable because of “selection,
arrangement, and structure” then other questions about the 37 Java APIs that
Google copied are moot. But let's assume that the package and class structure
and selection of which methods to include can be protected as a whole.

That assumption sets a context for Judge Alsup's fifth question. Oracle concedes
that they are not asserting rights over the Java language. If ordinary Java
programmers writing ordinary Java programs use the APIs like they use the
language, as their medium of expression when they write their programs, then
there is an argument to be made that Oracle implicitly waived the rights that
might protect our hypothetical third party class library API.

From my perspective as an experienced professional Java programmer the answer to
question five, especially the rephrasing "That is, programmers write their
own programs using the APIs?" is very clear.

For all classes in the java.lang.* hierarchy there is no way to avoid their use.
The Java language spec says that every program has an implicit import
java.lang.*. Various syntactic constructs are defined as making use of classes
in java.lang. For example whenever you use a string contant in an expression
like "foo" it is defined as producing a constant of type
java.lang.String.

There are probably some other packages which come into play implicitly. Google
has provided a way for Java programmers to write Java programs that they compile
using Oracle's freely available Java compiler. That compiler is run against a
compatible JDK to transform a Java source program into class files. Google
provides a way to transform those class files into something that can run on the
Dalvik VM. Even though it is not part of the Java Language Specification, the
Java compiler is free to assume that all of the classes that are in the JDK will
be available at runtime in the JRE. For example, when there is a statement like
'for (int x : foo) ... ' I would expect the compiler to produce output that
references the java.util.Iterator interface. That means that a programmer who
uses the Java language to write a program and compile it using Oracle's Java
compiler, may very well be using classes and interfaces in the java.util.*
packages even if they are not aware of it.

For the other packages in the java.* and javax.* hierarchy there is a slightly
different answer. As a programmer if I were so inclined I could avoid the use of
the other packages. I could invent my own collection classes, for example, put
them in bugstomper.local.* packages, invent my own selection, arrangement, and
structure for them, and write an implementation. I could write my program to
call those methods instead of the Java Collection classes. When I ship my
program it would have my jar files for my collection classes along with the jar
files for my application program.

That would work. In fact that is exactly the choice that Google made for the
approximately 124 Java API packages that they did not copy. Any functionality
that is provided by those classes must either be not available in the Android
API, or else it is provided by the other packages that Google devised
themselves.

But I would be crazy to implement a bugstomper.local.* set of collection classes
unless I could hugely improve on what has been provided by Sun/Oracle as part of
the Java Standard Class Library. Even though it is not part of the Java Language
Specification, any competent Java programmer, when faced with a task that is
best done using the abstractions of one of the Collection classes, will use
that. They can avoid designing and writing their own classes. As part of the
java.* or javax.* package hierarchy they are guaranteed that any user of their
application who has the proper version of the JRE will have those classes
available in their runtime environment without the programmer having to ship the
library jar files with their application. The programmer can search the Internet
for examples of use, hints about pitfalls, answers to problems that they run
into using those standard classes. They can be sure that there are many other
programmers with the experience to maintain or enhance the code if necessary.

When I want to write a Java program I do not think in terms of constructing the
program out of the constructs of the Java language. I work with the standard
APIs, perhaps enhanced by my own libraries or other third party libraries. But
the Java Standard Classes are the language that I work in.

Google apparently did not need the functionality of the other 124 Java API
packages (or some of them like java.math they did use but aren't being claimed
by Oracle for other reasons). These 37 (plus the ones like java.math) presumably
are the ones that do provide functionalities that are integral to the writing of
Java programs that will be usefully run on Android. More importantly, they would
have been included by Google because Java programmers when they are writing Java
programs are used to writing their programs in terms of the methods of these
classes as if the classes were an integral part of the language.

[ Reply to This | # ]

Oracle's dilemma
Authored by: Kevin on Friday, March 30 2012 @ 08:49 PM EDT
Consider the 'java.lang' and 'java.util' APIs. As I mentioned earlier, both of
these are explicitly called out in the Java Language Specification, and the
behavior of certain constructs in the Java language itself is defined in terms
of them.

Are these integral to the language? If Oracle says that they are, Oracle is
asserting that its compilation copyright over the APIs gives it control over the
language as well. Not only does this set dangerous precedent (it essentially
makes the copyright into a perpetual patent over the Java technology), it also
explicitly contradicts Oracle's earlier statement that it is not asserting
control over the language itself.

On the other hand, presume that Oracle claims that 'java.lang' is not integral
to the Java language. In that case, Google impeaches the claim in
cross-examination by challenging Oracle's witness to produce a complete and
correct Java program - even one that does no input or output - without using the
'java.lang' API's. It cannot be done: the 'main' method accepts java.lang.String
as a parameter.

Oracle would no doubt try to escape by asserting that 'main' is not fundamental
to the language: that an alternative implementation could implement some other
method - 'start' perhaps - that accepts a different parameter signature. But
that doesn't get much farther. There are several language features (autoboxing,
annotations, enhanced 'for', and so on) that require 'java.lang' and 'java.util'
APIs as part of their description in the Java Language Specification. Oracle is
forced to argue that the language described in the Java Language Specification
is something larger than Java, over which Oracle asserts control even though the
Java language is not claimed.

Either alternative pretty much forces Oracle to concede that it is indeed trying
to assert control over the language, even though it has denied having that
ambition. That won't be a pretty sight.

Is there anything left of the copyright argument once Oracle is solidly impaled
on Morton's Fork?

---
73 de ke9tv/2, Kevin (P.S. My surname is not McBride!)

[ Reply to This | # ]

Oracle v. Google - More Questions From the Court on Copyright
Authored by: Anonymous on Friday, March 30 2012 @ 09:54 PM EDT
Could the judge (in theory) abort the copyright jury trial?

Like: I now have understood what APIs really are, and don't
need to bother any jury with this.
Oracle loses, Google wins.

It is so ordered.

[ Reply to This | # ]

These are some really great questions
Authored by: jbb on Friday, March 30 2012 @ 10:56 PM EDT
Two of my favorites are:
(5) Is it true that the APIs are an integral part of Java? That is, programmers write their own programs using the APIs? If the answer depends on the particular API, please specific which of the 37 asserted are integral.

(6) To what extent are computer languages (not programs, but languages) copyrightable? Patentable?

Both of these questions remind of me an article from the Harvard Journal of Law & Technology (from pdf page 31):
B. Computer Languages Should Not Be Copyrightable

The Copyright Act of 1976 does not directly address the copyrightability of computer languages. Computer languages should not be copyrightable subject matter for two reasons. First, language copyright is doctrinally suspect because that would provide copyright protection for expressions not yet fixed. If the author of a computer language sought to claim copyright protection of a computer language, either of two files would have to be covered: a list of all possible sentences in that language or an expression of its specification (i.e., a copy of the quadruple V, E, R, S) that fully describes the language [...] Although more practical, the second choice is problematic: the specification only tells us how to decide whether a given sentence is within the language and is not a fixation of the sentence itself.

[...] Second, even if language copyright were consistent with copyright principles, it would violate First Amendment principles. By authorizing protection for languages, the Act would be authorizing prior restraint of any expression in that language. If a programmer cannot lawfully include a copy of the grammar in a parser program, the parser cannot lawfully create expression in that language.

As I've said before, I believe that APIs should not be copyrightable for exactly the same reasons given above for why computer languages should not be copyrightable. I feel much less alarmed about a dire ruling coming from this court now that the judge is looking at the API issues from this perspective.

IMO this line of reasoning will end up at exactly the same place Google's arguments take us (that APIs should not be copyrightable by rule of law) but they do so in a way that people who are not intimately familiar with programming and APIs can understand and be comfortable with. In a nutshell: if Oracle is granted copyright protection for the Java APIs then they will have defacto control over almost all possible (practical) programs written in Java.

---
Shirky Principle: Institutions will try to preserve the problem to which they are the solution.

[ Reply to This | # ]

Copyright vs. Trademark
Authored by: Anonymous on Saturday, March 31 2012 @ 02:56 PM EDT
I'm curious where the line is generally drawn between
copyright issues and trademark issues with respect to novel
language.

Hypothetical. Let's say I invent a new programming
language. Let's say I invent some incredibly useful verbs
in that language called "Twiddle" and "Transmogrify" that
had never really been used in programming languages before.
The ability to Twiddle and Transmogrify is one of the most
useful features of the new language, and most developers
cite their incredible usefulness as the reason to use my
language.

I created this programming language, and I see premium
development tools, compliers, and a licensed integrated
"tech stack" to run programs in my new language.

Now let's say someone else wants to create an open source
version of my new language, using new code (that I don't
own) that implements Twiddle and Transmogrify. Am I allowed
to stop them from using the same new terms I invented? i.e.
tell them they can implement something that does what
Transmogrify does, but only if they call it something else?

And if so, is the reason due to copyright law (I invented
the terms in my original work), or trademark law (I created
these terms and I'm using them in commerce, and they're the
new buzzwords for my commercial product--you using them
would create confusion in the marketplace), or both?

Probably moot in this case--as Google pointed out in the
field-of-use issue, Oracle hasn't made a trademark
complaint. I'm more curious if they (in the abstract) would
have had that option.

[ Reply to This | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )