|
Week 2, Day 6 of Oracle v. Google ~pj - Updated 6Xs - Lee, Mitchell, Rubin |
 |
Monday, April 23 2012 @ 05:49 PM EDT
|
We have two reporters in the courtroom today, and our first report is in. Also mirror_slap's final reports from
Day 4 and
Day 5 are now complete, if you want to check for the details of the Josh Bloch, Mark Swetland, and Dan Morrill testimony. Today's witnesses are Bob Lee, Dr. John Mitchell, and Andy Rubin. I think today's news is provided in an explanation from Oracle to the judge, talking about a book about Gerald Ford. That's the problem in a nutshell. Oracle is talking about books and trying to apply copyright law to the law about books. But computer software isn't a book, a novel, or anything like it. You can restrict copying of a novel or a history without damaging the entire field of book writing. But if you restrict APIs, which are functional, you do destroy software development as we know it. Attorney Julie Samuels
explains why in Wired today. [Update: And now that the second report has arrived, see the update in the article, I see the major headline came at the end of the day, when the judge told Oracle he thinks their derivative work argument sounds like "classic overreaching" and that Sun's license terms might not be in harmony with copyright law.]
Jump To Comments
[Update 1,
Update 2,
Update 3,
Update 4, Update 5,
Update 6]
Here's the case about the Gerald Ford memoirs,
Harper & Row v. Nation Enterprises, 471 U.S. 539 (1985) and just reading the US Supreme Court decision, you'd think even lawyers could see the difference between this and APIs. But at least we know now why Oracle keeps talking about APIs like they are, as the judge put it today, the holy grail of holy grails, when the evidence doesn't support that. It's likely to be able to claim that the Ford case applies here. It was a case where a magazine, the Nation, quoted the single most newsworthy quotation from the book, thus blunting the value of the book and causing another magazine, Time, which was planning to pay to serialize a large excerpt from the book, to not publish, or pay, any further after the publication by The Nation. Who'd read it after reading the excerpt? So it damaged the author, because the book hadn't been released yet, so the court said that The Nation had abrogated to itself the right of first publication. So a fair use defense failed, even though the section quoted that was the most juicy was only 300-400 words long. But APIs? Are they kidding? After Sun told the world anyone could use the Java language, and the testimony today was that at least some of the APIs are core, meaning you can't use the language without them?
Here's a snip from Ms. Samuel's article, with more on the topic of how both patent and copyright law fail to acknowledge the unique needs of software:
Perhaps most troubling, the patent system fails to recognize how people create and use technology. Software is fundamentally situated as a building-block technology. You write some code, and then I improve upon it — something the open source community has figured out. Google’s use of Java in its Android OS also demonstrates how innovators create, by making its own product and and incorporating some elements of the Java language (which, incidentally, Java’s creators have a history of supporting). And when those two come together, it results in an incredibly popular product, here the Android OS.
In the fast-changing world of technology, where a kid coding in his basement can write a program that can change the world, it’s important that this ability to use and share is protected. It’s also worth noting that if Oracle wins on its copyright claims, whole programming languages could become off limits, a dangerous proposition indeed.
Oracle’s attempts to shut this down, whether by patents or copyrights, are just the last in a depressingly long line of rights holders attempting to cut off important and popular downstream uses of their products, even when those uses may be legal (such as a fair use) or beneficial to society at large.
This is not to say that intellectual property rights shouldn’t exist, or that owners of those rights should not be able to enforce them. However, it’s time to rethink our policies on software patents, and, depending on what happens in Oracle v. Google, the extent to which we allow copyright claims to cover the functional programming language that builds the backbone of much of the technology we use today.
Patent litigation has become little more than a tax on innovation that drives companies from the U.S. market and discourages investment in the next Facebook or tomorrow’s Twitter. In this case alone, Google and Oracle each will likely spend tens of millions of dollars (and that’s before any potential damages are levied) — money that could and should be used for further innovation and growth.
Congress recently passed patent reform legislation that wholly lacked provisions to curb the pernicious effect posed by exploding patent litigation, which harms innovation and our recovering economy. Oracle v. Google is unfortunately not the exception, but the norm. A total reset on software patents is long overdue.
Here's our first report from today from reporter #1:
7:31 am
Judge:
Thanks for [copyright] briefs. [He
read them both.]
There's still so much there that I'm not ready to say a master...
one heads up. I need to make sure you understand.
You did ask for various parts of the records.
Can't be stipulation in the past.
Has to be in the trial record.
There's an issue that you haven't helped me much on.
Judge versus jury on "work as a whole".
I am not convinced that this is for the judge to decide.
One way to go is to say Oracle copyrighted 5.0, and it wants to establish a smaller... it's a matter of proof for the jury.
Not saying that's the way I'm going to rule. I'm currently mulling it over in my mind, the "work as a whole" issue.
Here's a question about the 37 APIs.
You need to be answering in the spirit of "this is what the evidence of the trial will show."
To Google:
It seems to be that Google is admitting that it copied the 37 declarations into Android. Is that true?
Google: [The APIs are there, we used and included in Android the 37 packages in specificiations, so we would have them exactly right. Don't want to say "copy".]
Judge: Why 37? Why not 42? What's so special? Because you say in other places you don't use them all.
Google: As of right now is that they are the subset of the Java API in Android that Oracle is asserting rights to.
There are 51 packages in Android. They started asserting rights for all 51. But then it was discovered they didn't own those 14. So they dropped those 14. Those are the ones left where they think they can assert ownership rights.
These are the "core" ones.
Judge: What does "core" mean?
Google:
java.lang.util
java.lang.io
java.net
are the "core"
Four of the 37 are the "core".
The other 33 are a combo of things. Some are subpackages. java.lang.*
All of the things that programmers would expect.
Without IO, you couldn't print!
Judge: How many APIs are there, total?
Google:
Java 5.0 has 166. Between 5.0 and Android, there might have been more.
Judge: Someone at Google went through that list, and figured out what a programmer would expect.
Google: Yes, with the caveat that some of the APIs don't make sense for a smartphone. Android spent a lot of time developing a new user interface. That's something new. To access the UI, that's in the Android API, not the java API.
Judge:
Sometime around 2008 I'm assuming, Google identified 51.
(Yes)
And some of the 51 are in the public domain.
Google:
Testimony of Bob Lee. Wrote java.util.concurrent.* Those packets were dedicated to the public.
Judge: Of the 37, then, 4 are in the basic programming language?
Google: At least 4.
Bloch & Reinhold started with the basic specifiation, but the java book itself... you have to go through the book, find all the ones that are referenced in the books, and those have to be implemented as well. And that's dozens and dozens of classes spread across multiple packages.
The book (The Java Specification Book) tells you about classes. Then you go to see how that class is defined, what those specifications are. Then in order to implement that class, you typically need other classes and packages.
Then, you wind up with literally thousands of these things, in order to completely and fully implement the programming language.
Judge:
I say to you, some of the things you've said this morning, I've never heard before. You need to present this to the jury. Make sure you prove whatever you think is necessary.
Google: Want to clarify. About the "Dudley" packages. When I said "public domain", I'm talking about the code. It's our view that the API is in the public domain. It's only when you get to the code, that it can be copyrighted.
Judge: I will instruct the jury that the copyrights extend to the SSO. I see both sides arguments on this. If you win on fair use, then the judge doesn't have to decide those questions. [PJ: Implied, at least, is that if they don't win, then he'll decide then. I see others so tweeting.]
The way it's going to be presented to the jury, is that the SSO *is* covered by copyright - not its own copyright, I'm not prepared to say to the jury that it's a standalone entity with its own copyright, but the copyright issued that applies to everything also applies to the SSO.
Judge: Mr. Jacobs, please respond:
I get the impression that you went through and found the 37 that they did copy, and you're trying to convert that to some holy grail of holy grail of copyright. I don't see that yet. The proof doesn't show that. Why would you want to instruct the jury that the work as a whole is the 37?
Oracle: SSO is *not* a separate thing. That's absolutely correct.
The 37 packages. The way these cases line up...
Judge: "Nobody raised it in that case". What case law is relevant?
Oracle:
Texaco American - copying from a journal, for internal distribution.
Texaco was copying particular articles, even though the entire journal was what was copyrighted.
The defendent defines the work based on what they choose to copy.
Judge: But then the percentage that is copied is always 100%.
Oracle: Well, yeah, Gerald Ford's memoirs. It was ruled to be substantial.
Those 37 APIs are akin to 37 journal articles.
Judge: The statute calls out percentage, 107 says, one of the factors that must be considered, the amount and substantiality of the portion used and the relation to the work as a whole.
Oracle: In the case of dead literal copying, that provision does not get very much weight. Taking 5 notes out of a song...
Judge: That was 1927, this is a statute from 1986.
Oracle: But we have lots of recent case law. We'll do more briefing.
Judge : We ignore the addons that Google put in, but the part they copied is to the work as a whole, and I question if the work as a whole is just what is copied.
Oracle: We'll do our best.
Judge: You need to be give me a decision on point, is this for the judge, or is this for the jury?
Oracle: Move into evidence: TR-26, 104, 157, 233, 234, 251, 21, 172, 1029, 238.
TX 34, 165, 383, 384, 416, 897, 729, 896.1,.2,.3, .4, .5, .6, .7,, .8
Google: TX 612, 617, 2223.
Judge: Anything to discuss?
Oracle: Danger license. Trying to get it admitted. This is a license that Mr. Rubin entered into. Because Sun told him he must, even though Danger had never touched any source code at all. They customized it, and made it into a specification license.
When Google says they need a license, is it for source code, for specs?
Mr Rubin is quite aware that Sun said you needed a license specifically for specs.
Judge: Why are you splitting hairs?
Oracle: [just say yes!]
Google: The question is not whether certain questions can be asked of witnesses. The problem is whether that exhibit comes into evidence. This is a long complicated document, for a different company, for a different thing, including to use the Java trademark.
Danger of confusion.
The Danger platform is not at issue.
Judge: But the point that Mr. Norton made is a decent point. Mr. Rubin was on the list that Sun required a license to use the spec.
Google [Christa Anderson]: But actually it doesn't show that. It covers rights to use the trademark.
Judge: Does it use the word "specification"?
Google: No.
Judge: Show me the term "specification" in the license.
Oracle: It doesn't have that. But the attachment shows that Rubin wanted something added about no source code.
An independent implication by Danger that it required a license.
Judge: But it didn't say specification. And Mr. Boies is coming forward to rescue you.
Oracle: On page 10, it specifically calls out "specification".
Google: It was not in the document.
Judge: You were wrong - it *is* in the document.
Google: But it doesn't change the point. If this document is shown to the jury, they won't understand. It is not the same platform. It was done in 2003. There is nothing about this agreement that will change the fact, that Danger *did* receive rights to the trademark, plus rights to shared code.
What this is going to become is a rabbit hole of confusion.
Google (Van Nest): Mr. Rubin.
Judge: 1026 is allowed in evidence. Boies saved the day. Ms. Anderson, you shouldn't have done that. You said "specification" wasn't in there. And it was. You should know this document back and forth. [lectures her]
Google: We have an issue with the 1st witness, and an exhbit. A series of side by side comparisons.
Judge: Oracle - no! You can't use this. You have to use the whole thing, not a cut up thing.
Q from the jury:
What if one us jury people were to get hit by a truck? [laughter] Maybe what I'm really asking is this - why aren't there alternates for this trial? [PJ: The jury doesn't know it, but the judge already thought of that. He has more jurors than are required, just in case.]
8:10am
Jury comes in.
Judge:
This week we should finish the evidence for phase 1. Next week the case
will definitely go to you for a decision.
Now we had a witness last week who's name was Bob Lee.
Calling Bob Lee.
Bob Lee Takes the Stand Again
Judge: Who do you work for now?
Bob Lee: CTO for Square.
I worked for Google.
I started in 2004, I worked on the Adwords team for 2 years, and I worked on core java libraries. Then I was the core library lead for Android.
Mr. Jacobs for
Oracle: We were talking at the end of your testimony about the instruction you gave to your coders.
What are the 2 possible meanings of paraphrasing?
Bob Lee: Taking something and putting it into your own words.
Oracle: Look at your screen. 610.2. The Java documentation from the Java web site, and on the right, 767, which is the Android docs from Android.
Bob Lee: Java docs generated from the code. Not sure what it's called for Android.
Oracle: Does same mechanism apply to Android documents?
Bob Lee: Yes.
Oracle: javax.crypto. Docs under the cypher.
Reads part of it. "The cypher must be fully initialized before being used..."
Now go over to Android text. It sounds similar.
Does that meet your definition of?
Bob Lee: Yes, they look different.
Oracle: How are they different?
Bob Lee: They're not exactly the same.
Oracle: That's it?
Bob Lee: Well, they contain a lot of the same words.
Oracle: Now looking at some more text, in java docs.
Do you see them for both Java and Android?
Bob Lee: Yes, they're both concise descriptions of what the class does.
Oracle: Reads more of the docs.
And there are individula word differences, but they're quite similar, aren't they?
Bob Lee: I have to count the words. They both say "this class provides", which is a common thing to say. Yes, the 1st sentence is very similar.
Oracle: And the 2nd sentence?
Bob Lee: The 2nd sentence looks less similar to me, it has a different structure.
Oracle: java.nio.channels.pipe. There are thousands of pages of documentation for the 37 packages. Correct?
Bob Lee: Yes.
Oracle: And the structure / outline of docs is identical?
Bob Lee: Yes.
Oracle: That's because on the Android side, you're documenting the same API?
Bob Lee: Yes.
Oracle: java.nio.channels.pipe. "A pair of channels that contain a unidirectional pipe".
Highly similar? Not so similar?
Bob Lee: They contain the same words, but that's to be expected, given you're trying to describe a concept concisely. This is the common language or currency of the API. "pipe" actually predates java. It's a common technical term.
Oracle: So you would expect the same level of similarity?
Bob Lee: Generally, yes.
Cross examination of Bob Lee
Google: I want to go back to the testimony you gave Friday morning. In your testimony, you referred to the phrase "java namespace"? Please explain.
Bob Lee: Hmmm.... At a high level, the Java language, you have types, like a car, or you might have a window, and you also have methods. The types would be the nouns ,and the methods are the verbs. So for a window, you might have an open method. The way that this stuff works, if someone else wants to use your window, they use that name. When we talk about the namespace, we're talking, it's kind of a collection of items. In java, it's a package. For java, the core packages and the standard ones start with java and javax.
Google: java.lang or java.util package, somewhere in the computer, to find that function, the programmer has to find a file that has that name?
Bob Lee: Yes.
Google: TCKs? What is it?
Bob Lee: Test Compatibility Kit. Standards organization called Java Community Process. Dozens of companies, including Google, help make these specs. Part of that process, somebody wants to implement it and claim to be compatible, they have to pass the set of tests.
Google: Is it "test" or "technology" in TCK?
Bob Lee: Oh, not sure.
Google: Was there a TCK for java/android?
Bob Lee: No.
Google: Would it have been possible to run Android against a TCK in 2006 / 2007?
Bob Lee: (confidently) No. I'm a prolific contributor. I worked to build stuff that could support it later.
Google: Exhibit 405. What is this document?
Bob Lee: This is an email I sent to Eric Schmidt, some links, an award I won, and asking him about Java and TCK.
Google: 3rd paragraph. "I'm certain you're already aware of this, but Sun has been abusing their position and playing licensing games."
Bob Lee: That's still my view. Everyone, Oracle, shared that view about Sun.
Google: How did you know this?
Bob Lee: In the executive committee, Oracle submitted a statement asking Sun to stop doing this sort of thing, and everyone voted yes.
Google: Did you have a formal role for the executive committee?
Bob Lee: Yes, I was alternative representative. Joshua Bloch was primary representative.
Google: "Sun field of use restrictions ... " These prevent Harmony from implementing that TCK?
Bob Lee: Sun intendend TCK to be open standards. The JSPA prohibits them from preventing companies from doing stuff. This was going fine, up until Apache came along. At first, Sun didn't worry - they didn't think Apache could do it. But Harmony did make a full implementation of JavaSE. Then they submitted it. But at the last minute, Sun changed their mind, explaining it "they were worried about Harmony creating competition".
So they used this loophole ...
Judge Alsup: This answer is way too long.
Google: Java seal of approval?
Bob Lee: Java is a trademark.
Google: Harmony - who formed it?
Bob Lee: Don't know. IBM.
Google: Was the Apache Foundation a member of the executive committee of JCP?
Bob Lee: Yes.
Google: When did they join?
Bob Lee: Early. Already a member when I joined. But they quit a year ago. Over this issue.
Google: These "restrictions" that Sun was trying to impose. Was it ever put in place?
Bob Lee: Yes, I was told so.
Google: Did Harmony ever sign?
Bob Lee: Harmony never signed it.
Google: Sun did offer a license to Harmony, including the field of use restriction?
Bob Lee: Yes.
Google: Did Apache Foundation accept?
Bob Lee: No.
Google: Email from and to Hiroshi Lockheimer.
Bob Lee: He's the current director.
Dan Bornstein. Lead of Dalvik team, and my manager.
Google: 2009 - Hiroshi wrote 2nd sentence about Noser "those guys" (the management team) "are super shaky. I know the engineers are great?" Who is Noser?
Bob Lee: Noser is a company in Europe, that had a history of working on mobile VMs.
I interacted with Noser.
They played a supporting role with Android libraries. Took on less strategic acts.
I interacted with the engineers. I thought they were wonderful.
Google: What words do you use for "prose"?
Bob Lee: Documentation and specification. Somewhat interchangeable. Doc is more general. Also includes tutorial, examples, etc.
Google: cypher.inputstream. You told him that there are some words are common. Why would you expect some words to be common?
Bob Lee: Even outside in tech, there are very specific terms to mean specific things, and you have to speak specifically. For example, "cypher" is a very specific term.
Google: And when you're trying to write in English what a class does, do you think you could accurately describe it as a technical matter, without using those words?
[Oracle objection - sustained.]
Google: What similarity would you expect?
Bob Lee: These specifications are a contract. I wasn't a big fan of including them. I would have just pointed Sun. Why rewrite them? You can just mess it up. There are only so many ways you can say it. [PJ: "Contract to developers means something different than it does to lawyers. It means basically an interface, where each side knows what to expect from the other software because of the interface info. I think that's it. If not, do tell.]
Google: The JCP you described, is the way people contribute stuff. Looking at any two descriptions, can you tell if one was copied from another? Why not?
Bob Lee: I have no idea where they came from. You would need the commit history.
Google: When someone contributes something to the JCP, can that person contribute to Java and also make it free for everything to use?
Bob Lee: Absolutely.
[Oracle objection. Sustained. He's not a lawyer.]
Google: Are you familiar with their practices?
Bob Lee: Yes.
Google: What is the practice with things they have written?
Bob Lee: With the most recent spec I wrote, I also released the code under a very permissive Apache license.
Google: Any other members?
Bob Lee: I can think of several.
Google: People that donated and also made it available on a license?
Let me backup. Are you familiar with different licenses?
Bob Lee: Yes, lots of licenses.
Google: As a software engineer? What's your general understanding of a public license?
Bob Lee: For open source license, you can take the code and reuse it. Some require you to give attribution. The GPL says. [PJ: It says the code can be reused and modified, so long as the modifications are given back.]
Google: These licenses - as a software engineer - can they be applicable to API packages?
Oracle objection.
Judge Alsup: Is he an expert witness?
Google: No, he's not.
Judge Alsup: I think this is specialized knowledge.
Google: But this is facts.
Judge Alsup: No, it's not.
Google: Back to doc. In order to look for similiarities, you would look at...
Bob Lee: Source control.
Google: Would there be any sources outside of Google to look into history?
Bob Lee: It depends where the code came from, but yes, definitely. Bouncy Castle.
Google: huh?
Bob Lee: It's an implementation of cypher. The specs don't do anything. You need an implementation. That's what Bouncy Castle is.
Google: When you were provided those pieces of source code by Oracle, did you get enough info to make a decision?
Bob Lee: No.
Google: Javadocs APIs, he asked if you saw copyright notices. Did anyone from Sun etc. ever say that Apache Harmony infringed any copyrights?
Bob Lee: No.
Google: Did you obtain any info through JCP process about what Sun's view was with regard to copyrights?
Oracle
objection - hearsay.
Sustained.
Google: Mr. Lee, as part of JCP, did you ever hear statements from representatives of Sun if other parties could do implementations of the spec?
Bob Lee: Certainly that's the whole point of ...
Judge to Google: Uh uh uh - you can't say that! [Judge lecturing Mr. Lee.]
Judge: This witness is making a lot of speeches.
Bob Lee: I don't recall.
Google: When you were at Google, did you have conversations about making use of the javadocs?
Bob Lee: Yes, we definitely referred back to them to make sure we were maintaining interoperability.
Google: Did you talk to any engineers?
Bob Lee: I asked Steve Horowitz if we were allowed.
Google: What did he say?
Bob Lee: Yes, there's lots of precedent for this.
Google: Horowitz is an engineer?
Bob Lee: Yes. He was my manager.
Redirect of Bob Lee
Oracle: You feel strongly about the Harmony dispute.
Bob Lee: Yes.
Oracle: Repeats.
Bob Lee: Yes.
Oracle: It was a big fracas?
Bob Lee: Yes.
Oracle: No one ever filed a lawsuit that Sun is doing something wrong?
Bob Lee: They didn't have the resources, no.
Oracle: [10.47. Open letter to Sun from Apache, the FAQ. Page 6/10.] The question in the middle "Why doesn't Apache simply ignore this [all the disagreements] and ship Harmony without shipping the TCK?" And the answer is "we can ship Harmony without passing the TCK, it's our code... However we can't claim to be Java compatible. Also, users can't be assured they have all IP."
And this doc was created during the fracas?
Bob Lee: Yes.
Oracle: [10.45] You said Apache Harmony resigned. This is a posting about the resignation. 3rd to last paragraph. By the way, Apache was furious?
Bob Lee: I wouldn't attribute an emotion.
Oracle: A strong business disagreement?
Bob Lee: A strong disagreement.
Oracle: "Apache software foundation concludes that JCP is not open. It's proprietary to Java." Isn't that true?
Google objection - overruled.
Bob Lee: Yes, that is what the sentence says.
Oracle: Your discussions with Horowitz about permissability. Discuss with any Google counsel?
Bob Lee: Not that I recall.
Oracle: So Horowitz was giving you unguided legal advice?
Bob Lee: Yes.
Re-Cross of Bob Lee
Google: [10.45 Same paragraph.] The next phrase says "ASF concludes that the commercial concerns [Oracle] will continue to interfere with" the Java ecosystem.
Date is 12/9/2010?
Bob Lee: Yes.
Google: After Oracle filed this lawsuit?
Bob Lee: Yes.
Next witness
Oracle calls is expert John Mitchell.
Testimony of John Mitchell.
Oracle: Tell us where you work.
John Mitchell: I work at Stanford, I teach CS.
Oracle: Education?
John Mitchell: Undergrad at UWisc, degree in math at Stanford. PhD in CS at MIT.
Oracle: What else?
John Mitchell: Worked at Bell Labs for 4 years, then moved to beautiful California, and been here since.
Oracle: 687
John Mitchell: this is a CV of my professional career.
Oracle: What courses do you teach?
John Mitchell: Programming languages, computer security.
Oracle: Any classes cover Java?
John Mitchell: Yeah, regular fall course does.
Oracle: Have you done research related to Java?
John Mitchell: Yes. Exploring type systems, checking props of type systems that were then incorporated into Java.
One of the main revisions / extensions is "generics". That was accepted into Java.
Oracle: Offered as qualified computer expert.
Judge Alsup: OK.
Oracle: Points to whiteboard / poster. [3452]
Tx 1028, the java poster. What is it?
John Mitchell: This is a great poster. It shows a number of packages from Java.
Oracle: What's the basic concept demonstrated?
John Mitchell: The most basic concept is a class. Each class has methods. Each object has fields.
Oracle: Can objects be related to each other?
John Mitchell: Yes. For example subclass.
Oracle: Let's look at lower right hand corner.
John Mitchell: This is the graphable (?) notation. It illustrates class/subclass relationship that's critical.
Oracle: How are classes and interfaces grouped?
John Mitchell: Classes are hierarchical. Interfaces can be. They can be organized into packages. Packages can be hierarchical as well.
There are an average of 10 or 12 classes per package at issue here.
Oracle: java.net
John Mitchell: This is an example of what is shown on the poster. [He talks for awhile. Eyes glaze over.]
Judge: Where would methods go?
John Mitchell: Would be shown listed under classes.
Oracle: java.io. java.nio.
John Mitchell: Most of packages in dispute are shown in this poster. Some aren't.
Judge: How many are on this poster?
John Mitchell: 10 - 15 are not on this poster? I don't remember.
Judge: java.io, that's an API?
John Mitchell: Technically that's a package. As a grouping of classes, an API consists of information about packages classes and interfaces together with what they do. An overview of an API.
Oracle: java.nio
John Mitchell: Here's an expansion of the poster. Methods for ByteBuffer. Each line showing the method, it shows the method name and its signature.
(9:25 am. Ugh. Can't tell if the jury is bored too.)
John Mitchell: ByteBuffer is a subclass of Buffer. Inheritance.
Oracle: Relationship between API and class libraries.
John Mitchell: Left side has class Channels and methods. The API would contain that class, description of the methods. Then the class library itself would have that plus executable code that performs those operations. Red boxes represent some amount of executable code.
John Mitchell: [explaining declarations, parameters, etc.]
Oracle: How is this API represented in binary code?
John Mitchell: .class files.
John Mitchell: Source code illustrated on that easel is compiled using the java PL compiler, which produces executable byte code. That byte code is stored in the class library. (Executed by VM.)
[Jury break]
9:30
Google: Following Dr. Mitchell, they plan to call Mr. Rubin. But Mr. Schmidt isn't available today, but will be tomorrow.
Once they finish their examination of Mr. Rubin, I'd like to call him for my case.
[Boies agrees.]
[Discussion about wording of when to say "prosecution rests". They will rest after Rubin, subject to Schmidt.] [PJ: I wasn't there, but I think he meant when to say "plaintiff rests". It's possible someone said prosecution, misspeaking, and he wrote exactly what he heard. This is just to clarify that normally, prosecution rests only in a criminal case. This is civil. Well. As lawyers use the terms.]
9:50
[Jury back]
Dr. Mitchell Continues His Testimony
Loooong CS lecture.
Oracle: Difference between a package and an API?
John Mitchell: Package is a grouping. API is typically characteristics of groups of packages.
Oracle: Do you consider APIs to be rote?
John Mitchell: It's a creative process. Many decisions go to API design. Done by people called "computer architects".
[Talks about Java, smalltalk, C++]
John Mitchell: Each of these have analagous collections library.
Oracle: If you were line them up, would you see similarities?
John Mitchell: You'd see some differences. Different height, different width.
Oracle: java.util from 5.0.
Oracle: Copying. Did you investigate copying of Android?
John Mitchell: Yes, I investigated. I looked at 3 categories. Correspondence between the APIs, and how the Android API is copied from the Oracle API. 3rd, how other code sources were used.
Oracle: First category.
John Mitchell: To get a feel for this myself, I spent a lot of time looking and comparing how the APIs compare. It's fairly straightforward to compare them. They are really identical. You see the same classes in the same hierarchy, supporting the same interfaces. A few minor differences. Sometimes there are some Oracle methods that aren't copied into Android.
Oracle: Example. IntBuffer.
John Mitchell: Illustration of similarities between Android and Java.
Oracle: What can you deduce after comparing?
John Mitchell: You can see you have the same class in the same library. Everything's basically the same.
Oracle: Explanation of what they mean. Focus on that similarity.
John Mitchell: Explanation is important because it says what each method does, what it accomplishes. Explanation is also used by implementers.
John Mitchell: In 37 packages, there are around 400 classes.
Oracle: Below the class level?
John Mitchell: Methods and fields. Probably 5,000 methods.
Oracle: What percentage of copying did you observe?
John Mitchell: Quantitatively - 90%. Sometimes the parameter names are different. Though 2/3s are the same, even though they don't have to be.
Oracle: What is your overall opinion with regard to whether the API was copied by Google?
John Mitchell: I don't think there's anyway that a separate team could have come up with it.
Oracle: #2: Copying of documentation into source code.
John Mitchell: Yes.
An API contains declarations. IntBuffer. That declaration is copied directly into Google code.
Talking about timsort. Copying of code / rangecheck.
Oracle: Cleanroom?
John Mitchell: The person that wrote that had access to the Sun code.
Oracle: Another kind of copying?
John Mitchell: 2 other cases. 1 has to do with comments. The other has to do with decompiled code.
Oracle: Decompilation.
John Mitchell: [explanation]
Oracle: Why would someone that wanted to copy code go through this exercise?
John Mitchell: It's a quick and easy way to get source code.
Oracle: The starting point was what?
John Mitchell: Oracle source code has files for a number of classes.
Oracle: Slide 24 from 1031.
John Mitchell: This is the Android source code and it's not in the form that a person would write. You can see that this seems to have been automatically generated.
Oracle: What do you mean?
John Mitchell: The declaration has a number of parameters. Params usually have meaningful names. A decompiler working from a class file doesn't have any way to understand. It just has to automatically make up names.
Oracle: PolicyNodeImpl.java in Android. What did you deduce?
John Mitchell: This method has 2 params that are sets, and 2 that are booleans. The decompiler just makes up names for params based on type. It just calls the params set. Then it adds a number to the 2nd to make it different than the first.
Oracle: Did you do some further investigation to test whether this decompilation into Android source code was correct?
John Mitchell: The next file shows 2 source code files. Left is Android. Right is produced in a similar way to make sure the assessment is correct. The source on the left is taken by taking the Oracle class library and running it through the decompiler. There's a difference at the top that someone pasted in a comment at the top.
Below that, the code matches exactly. So I think this is strong evidence that it was produced from jad, or java decompiler.
Oracle: AclEntryImpl, AclImpl, GroupImpl, PermissionImpl, PrincipalImpl, AclNumberatorImpl.
John Mitchell: Basically the same story. The Android code is decompiled source code.
Oracle: What does this tell you about the Android code being develeoped in a clean room?
John Mitchell: This Android code is produced by running a decompiler on a class file from Oracle.
Oracle: And therefore the clean room?
John Mitchell: The develeopers had access and used the Oracle installation and used the decompiler.
Oracle: Slide 26: ownerimpl.java -- what does this show?
John Mitchell: Another example. Parameters names produced automatically.
Oracle: What does this tell us?
John Mitchell: I can't think of any other explanation other than someone took an Oracle class file and ran a decompiler to produce this source code.
Oracle: 3rd category.
John Mitchell: Some literal copying of comments. So it wasn't really a clean room implementation. Admittedly a small portion, but enough for us to see that Android developers had access to and used Oracle code.
(Apparently there were 2 files where copying comments was found.)
Oracle: Did you check if timsort was on a Samsung phone?
Objection - not in the report.
Overruled.
John Mitchell: This code appears in the source code archive of Samsung and therefore very likely on Samsung.
Oracle: Conclusions on copying?
John Mitchell: 3 kinds of copying. I think the most important is that this shows it wasn't a cleanroom implementation. I can't see any other explanation.
Oracle: In particular with regard to decompilation, could that happen by accident?
John Mitchell: No, someone has to essentially "cheat" in a particular way.
Cross examination of Dr. Mitchell
Google: Java language is one of the most popular languages ever, right?
John Mitchell: Yes.
Google: Released in 1996?
John Mitchell: Yes, became popular very quickly.
Google: Developer conference?
John Mitchell: Yes.
Google: Larger and larger events.
John Mitchell: Yes.
Google: Soon Java was taught in universities.
John Mitchell: Yes.
Google: A large group of people writing in Java, 100,000 around the world.
John Mitchell: Many developers familiar with the language.
Google: In the top 3?
John Mitchell: Probaby yes.
Google: In your report, even in 2001, Java was #1.
John Mitchell: Taobi survey.
Google: In preparing your report, you assumed that Oracle was making no claim for copyright. You relied on that in the report.
John Mitchell: I wasn't asked to look at issues of copyright.
Google: You started with the premise that there was no claim of copyright against Java.
John Mitchell: I don't think there was any such premise.
Google: [Paragraph 147 tx 686 of his report.]
"I understand that Oracle is not asserting copyright infringement of" just using Java.
John Mitchell: Yes, that's what I was told.
Google: Larry Ellison said Java could be used by anyone without any royalties.
John Mitchell: Yes, I heard that.
Google: [1st edition of Java programming language spec, tx 2564]
Was this part of an effort by Sun to make the language popular and available to people?
John Mitchell: Don't know their motives.
Google: Published by Sun?
John Mitchell: Yes.
Google: Did you investigate why would they be publishing it?
John Mitchell: Not really.
Google: This was said to be a complete spec of the syntax and semantics of the Java language and the core packages. It's in the preface, right?
John Mitchell: Yup.
Google: In the very first volume of the language spec, some of the APIs are included in the spec? Does the book contain 3, java.lang, java.io, java.util?
John Mitchell: Yes.
Google: These core packages get a several hundred page specification in the language book.
John Mitchell: Yes.
Google: Chapter 20. java.lang that's one of the APIs.
John Mitchell: Yes, it's one of the 37 APIs.
Google: But it's fundamental.
John Mitchell: There are various ways to evaluate if it's fundamental.
Google: Without any java.lang, the language doesn't work, because it has essential things?
John Mitchell: Yes, there are also some things that aren't so essential.
Google: Chapter 21 is java.util, also in the 37 accused APIs?
John Mitchell: Yes.
Google: Java wouldn't be of much use without java.util?
John Mitchell: I think you could write stuff without it.
Google: But there's a lot of things in there that's useful?
John Mitchell: Yes.
Google: java.io is chap 22.
John Mitchell: I guess so.
Google: These 3 chapters are described as the core of the Java API that must be included in all implementations of the Java API.
John Mitchell: Yes, in a Java installation, these APIs and associated packages and libraries are part of the standards or normal installation.
Google: The text says that these packages must be included in Java systems.
John Mitchell: Yes, that's literally what it says.
Google: The next paragraph - that describes java.lang. The types in java.lang are automatically included without implicit inclusion?
John Mitchell: Yes.
Google: hashtable, pseudo random number generator?
John Mitchell: That's what the sentence says.
Google: Without java.io, can someone print something?
John Mitchell: Well, I think that's in java.io, but they could do something else.
Google: Are you aware that java.net has been described as a core package?
John Mitchell: I believe so.
[Looking at a 1996 core Java book. Back cover.]
Google: Describes the foundations of the Java language.
[Lots of discussion trying to get him to say that packages are fundamental to the language, part of the foundation, etc.]
Judge: [Lecturing the witness. Don't just say "That's what written". Do you agree or disagree?]
Google: Without java.net, you couldn't get out to the network?
John Mitchell: I guess I agree.
Google: And that's the main point of Java, to get on the network?
John Mitchell: I don't know I agree with that.
Google: Java lang spec, 3rd edition, exhibit 984.
Certain classes have a special relationship to the language. Page 6.
Lists classes and interfaces in java.lang.reflect among others. That's another package, also accused in this case?
John Mitchell: Yes.
Google: Object, Class, String, Thread, all necessary?
John Mitchell: I believe Thread is only necessary for concurrent programming.
Google: But the others are?
John Mitchell: Yes.
Google: Dr. Reinhold identified 61 classes in the specification. Did you make any effort to determine how many were actually necessary for the language?
John Mitchell: I discussed it with Dr. Reinhold and I agree with his analysis.
Google: tx 1062. These 61 classes are all part of the java lang spec.
John Mitchell: I understand the basis under which he did this analysis. Yes, given that basis, I agree with that conclusion.
11:15 - jury break.
[More to follow.]
Update: Here's our reporter #1 on what happened next that was of interest, particularly after the jury left for the day:
While the jury is out
Judge: Do you have a truce to not talk about how much expert witnesses are paid?
Google: No truce. [PJ: The implication is rather clear that it was obvious that this witness was biasing his answers to favor Oracle, which is what paid witnesses do, oftimes. I note that Google, nevertheless, does not ask Dr. Mitchell how much he was paid. Maybe they felt his hostility to Google was so obvious, they didn't need to say a word.]
11:40 [jury returns]
Dr. Mitchell Back on the Stand, Google Cross Examining.
Google: You have described APIs as a set of names that can be used to access
features of the library?
Dr. Mitchell: Yes.
Google: The names have a functional purpose?
Dr. Mitchell: When those names are used in developer code, it invokes the code in the
library.
Google: You can't call max "maximum", right?
Dr. Mitchell: Yes.
Google: And the case must be lower case?
Dr. Mitchell: Yes, case must be match.
Google: And if I mess up the case, my code won't work?
Dr. Mitchell: Correct. Computers are very literal.
Google: If a platform provides a different set of APIs that are different, then
existing code that programmers write for the free Java API won't work?
Dr. Mitchell: (restates but essentially agrees)
Google: You described the elements of an API like parts of speech?
Dr. Mitchell: There's a way to understand it accurately, and there's a way to be
inaccurate.
Google: Play back deposition please.
[He says they're like parts of speech. Nouns, verbs, etc.
Repeats about how important it is to use the exact names.]
Google: [Puts up Java chart exhibit.] Classes are organized into packages.
Dr. Mitchell: Yes.
Google: Classes are listed alphabetically in a specification?
Dr. Mitchell: No, I don't think that's the case.
Google: Android was disclosed in 2007, including the organization and structure?
Dr. Mitchell: I believe that's possible.
Google: Anyone could determine the organization and structure of Android code
since it was released?
Dr. Mitchell: Yes.
Google: Copying was easy to see?
Dr. Mitchell: Yes.
Google: Dr. Viznik was another expert? You relied on his report?
Dr. Mitchell: I read his report.
Google: He did an exhaustive analysis of all Android source code. 100's of
thousands of lines of code?
Dr. Mitchell: Yes.
Google: 727. Report of Dr. Mark Viznik. Relied on it?
Dr. Mitchell: I used it.
Google: He did a comparative textual analysis comparing Android 2.2 to Java's
jdk?
Dr. Mitchell: That's what it says.
Google: Hundreds of thousands of lines? Maybe even millions?
Dr. Mitchell: Could be.
Google: [Talking about literal analysis, then partial analysis, then token
analysis.]
Dr. Mitchell: That's what the report says.
Google: Is this a thorough examination?
Dr. Mitchell: I expect he described what he did there.
Google: Thousands and thousands files?
Dr. Mitchell: Yes.
Google: And after all that analysis, he came up with 12 files?
Dr. Mitchell: Yes.
Google: And that's all he identified after his thorough analsysis?
Dr. Mitchell: I believe so.
Google: The *only* files?
Dr. Mitchell: I believe so.
Google: 12 files, right?
Dr. Mitchell: Yeah.
Google: 2 of them were called timsort?
Dr. Mitchell: 1 was timsort, and 1 was comparabletimsort.
Google: Now the timsort file, that represents 9 lines of code?
Dr. Mitchell: I think you're talking of the rangecheck that was found.
Google: Ah, good point. Timsort has how many lines? 1,000, 1500?
Dr. Mitchell: I don't remember, but bigger than 9.
Google: He didn't find any other copying, just those 9 lines?
Dr. Mitchell: Correct.
Google: That's a small amount of code?
Dr. Mitchell: 9 lines.
Google: Out of hundreds of thousands of lines?
Dr. Mitchell: Well, it's still 9 lines.
Google: Dr. Bloch testified that he wrote rangecheck.
So in effect he copied his own work?
Dr. Mitchell: While he was working for Google, he copied the work that he did at Sun.
Google: You know that rangecheck is now free and open?
Dr. Mitchell: No.
Google: You don't know whether it's open?
Dr. Mitchell: I don't understand.
Google: Did timsort have any independent economic value?
Dr. Mitchell: I think its main use is in the library. Not sure of its value outside
of the library.
Google: Could it have been written by a high school student?
Dr. Mitchell: Not really.
Google: Maybe a grad student?
Dr. Mitchell: If told what to do.
Google: Source code comments are never compiled, correct?
Dr. Mitchell: Approximately.
Google: If comments were removed, the compiled byte code would be the same.
Dr. Mitchell: Yes, source code would be different, but the compiled code would be the
same.
Google: Do you know if these files are part of a handset?
Dr. Mitchell: I don't recall that, no.
Google: The other files of the 12. These files all have the word "test" in them?
Dr. Mitchell: No.....
Google: para 22. Are the 8 impl files on the left...
The Android name has the name "test" in it.
Dr. Mitchell: The path has "test".
Google: All 8 have the word "test"?
Dr. Mitchell: Yes, I think that's true.
Google: You don't actually know if any of these files were compiled and placed
on a handset?
W: (a bit shaky) I don't have a reason to believe they were put on a
handset.
Google: So the only thing you're aware of that you're sure made it onto a phone
were these 9 lines of code in rangecheck?
Dr. Mitchell: [pauses] I believe that's correct.
Google: The only thing you've identified in this exhaustive analysis that I
identified out of these 12 files that made it onto the handset is timsort.
Dr. Mitchell: There were lots of things identified....
[eventually, after pause] that may be true.
Google: Viznik also ran his analysis against Apache Harmony.
Dr. Mitchell: If that's what the report says, then ...
Google: paragraph 10.
Objection - asking this witness about another witness.
Judge: But he said he relied on this report.
Oracle: But how much did he read?
Google: I think you testified that you relied on this report.
Dr. Mitchell: Not sure that I did.
Judge: Now wait a second. You said you used files from that report.
Dr. Mitchell: OK.
Judge: Now did you read the part about Apache Harmony?
Dr. Mitchell: I probably read it, but I didn't look into it.
Judge: Forget Harmony. Bring up your own witness later.
Google: There are thousands and thousands of those descriptions in the API?
Dr. Mitchell: Yes.
Google: Is it your testimony that all the descriptions in the API are identical?
Dr. Mitchell: No.
Google: The wording does differ?
Dr. Mitchell: Yes.
Google: You put exactly one example of this in your report?
Dr. Mitchell: I think there are a few examples of snippets.
Google: The one you chose to discuss was in 207.
Your report has several hundred paragraphs, almost 280. This is the
only one that is comparing the English text.
Dr. Mitchell: Yes, it refers to exhibits that show code.
Google: And the example you show is KeyPair.GetPrivate()
Dr. Mitchell: Yes.
Google: KeyPair wasn't invented by Sun.
Dr. Mitchell: Well, in public key cryptography.
Google: And that's not something Sun invented?
Dr. Mitchell: Invented in the 1990's.
Google: "Returns the private key" - is that it?
Dr. Mitchell: I believe so.
Google: Does that pass your test for being substantially similar?
Dr. Mitchell: [He equivocates.]
Google: Does not answer my question. [Repeats it.]
Dr. Mitchell: I think in the context of the rest of the file...
Google: [Asks again. And again.] Substantially similar?
Dr. Mitchell: Yes.
Redirect of Dr. Mitchell
Oracle: Independent economic analysis. What did you find?
Dr. Mitchell: I found a number of other files that called it. I counted the number of
times RangeCheck was called. 2600 times when powering up the phone. 2600
seems like a pretty big number.
Oracle: On the decompiled code, did you analyze the significance?
Dr. Mitchell: I looked into it. Access control lists.
Oracle: Mr. Van Nest [Google's lawyer on cross.] asked if they were test files?
Dr. Mitchell: Yes.
Oracle: On the Java side, are these test files?
Dr. Mitchell: I don't believe so.
Oracle: On the Android side?
Dr. Mitchell: I don't know, they're in a test directory.
Oracle: Is it important if it's test code?
Dr. Mitchell: Testing is very important. Can be twice as expensive as development.
Oracle: What advantage would they have obtained by decompiling?
Dr. Mitchell: This helped them test other code they were developing.
Oracle: Set aside the code-to-code copying. What about the decision to copy 37
packages into Android?
Dr. Mitchell: That's huge.
Oracle: In the way that Google took the 37 packages, did they make Java
"compatible"?
Dr. Mitchell: Not really. They subsetted and supersetted.
Oracle: Would a Java app run on an Android run?
Dr. Mitchell: It won't run if it relies on something that's not there.
Oracle: [Asking about what is fundamental to Java language]
Dr. Mitchell: Two methods that make sense: 1. treat the language definition of what's
in the language and isn't. Dr. Reinhold did that. Came up with 61 classes.
Another way is to look at the language compiler. If the compiler knows
about some source code, and can compile it directly, then I think it makes
sense to consider it part of the language.
Oracle: Based on those analyses, what is your conclusion for what is required?
Dr. Mitchell: I like Reinhold's analysis. They seem very sensible. Those 61 seems
like a very good answer.
Oracle: Now I need you to read the 37 packages that allegedly infringe.
Judge: Just give us the list.
[Exhibit 1072.]
Oracle: If all that Google wanted to do was implement the java programming
language, as you described it a few minutes ago, would they have needed to
copy the API packages wholesale?
Objection - speculation - overruled.
Dr. Mitchell: Java could be implemented using just those 60 classes, which wouldn't
require those infringing packages.
[Dr. Mitchell is excused.]
Oracle now calls Andy Rubin to the stand.
Boies is up now for Oracle.
Testimony of Andy Rubin
Judge: [to the jury - reads a stipulation] "For the 37 accused API packages,
Android and Java 2 SE version 5.0 have substantially the same selection,
arrangement and structure of API elements."
Oracle: You are and have been since 2005 in charge of Android?
Andy Rubin: Yes.
[His history, etc.]
Oracle: Java core API? What's your interpretation?
Andy Rubin: A term often used by Sun to describe part of their product.
Oracle: Which part?
Andy Rubin: Java lang files.
Oracle: How many?
Andy Rubin: I didn't count them.
Oracle: Do you use core API to mean the same the thing as core libraries?
Andy Rubin: I don't use those terms.
Oracle: Core packages?
Andy Rubin: Yes I've used them.
Oracle: Referring to what?
Andy Rubin: In various contexts. Not sure.
Typically I'm describing a set of methods and packages that an application
developer would develop for.
Oracle: Exhibits 14, 15, 18, 22, 29, 131, 140, 147, 151, 154, 158, 161, 165, 180,
183, 203, 207.
Judge: Enough already, we only have 15 minutes left.
(It's 12:45)
Oracle: Exh 3. Email from you to Lindholm. Wrote this 7/29/05. 3rd page, under
"requirements", "Google needs a TCK license". You see that? [PJ: You can find the exhibits, I believe, linked to in the prior Groklaw article.]
Andy Rubin: Yes.
Oracle: You're not talking about the Java programming language, right?
Andy Rubin: Correct.
Oracle: 7. Email to Larry Page 10/11/05. 2nd sentence, "my proposal that we
take a license that specifically grants us the right to open source our
product"?
Andy Rubin: Correct.
Oracle: "We'll pay Sun for the license and the TCK".
Andy Rubin: Correct.
Oracle: "Before we release our JVM, we'll make sure it passes TCK so it doesn't
cause any fragmentation"
Andy Rubin: Correct.
Oracle: "Before being brought to market, they will have to take a license from
Sun"?
Andy Rubin: Yes, I see that.
Oracle: 12, a couple of emails, one you wrote, and you say "my reasonsing is
that either a) we'll partner with Sun as contemplated in our recent
discussions, or b) we'll take a license". You see that?
Andy Rubin: Yes.
Oracle: Discussions with Sun about partnering?
Andy Rubin: Yes.
Oracle: If those discussions didn't work out, you'd take a license?
Andy Rubin: Those were some of the options.
Oracle: But you just said those were the two only choices.
"I think a clean room implementation is unlikely because of the team's
prior knowledge, and it would be uncharacteristically aggressive of us to
position us against the industry"?
Andy Rubin: I think that's reading a lot into that one sentence.
Oracle: But you were planning to implement it at this point?
Andy Rubin: Not necessarily.
Oracle: Back in July 2005 when you made the first GPS presentation, you were
talking about a clean room implementation?
Andy Rubin: We were talking about various strategies.
[Gives him the GPS presentation]
Oracle: Turn to page 9. Big heading of "Java". Do you see "current scenario:
developing a clean room implementation of a Java virtual machine"?
Andy Rubin: Yes.
Oracle: Now back to exhbit 12. 12/20/05. "I think a clean room implementation
is unlikely", that's a Java VM.
Andy Rubin: Yes.
Oracle: And then you give the reason.
Andy Rubin: I give a reason, yes.
Oracle: Exs. 17 and 18. First 17. 2/10/06. Email from Lindholm to Coughran and
you. What Lindholm says, "I have been helping Andy Rubin with some issues
associated with his Android platform. This has mainly taken the form of
negotiating with my old team for a critical license".
Andy Rubin: Yes.
Oracle: And that wasn't for the Java programming language, correct?
Andy Rubin: Yes.
Oracle: 18. Email you wrote on 3/24/06. That was in response to an email you
received that day from Greg Stein. In your email, you say "I don't see how
you can open Java without Sun, since they own the brand and the IP". Do
you see that?
Andy Rubin: Yes.
Oracle: You mean " ... without Sun's agreement or permission"?
Andy Rubin: [lots repeat requests] Yes.
Oracle: 2nd email from Stein. "Ha, wish them luck". "java.lang apis are
copyright". Do you see that?
Andy Rubin: Yes.
Oracle: Did you mean copyright by Sun?
W: Let me think back, yes, I think so.
Oracle: "And Sun gets to say who they license the TCK to".
Andy Rubin: I see that, yes.
Oracle: "This forces you to take the shared part that taints any clean room
implementation". Do you see that?
Andy Rubin: Yes.
1pm -
jury leaves.
Judge and Lawyers for the Parties: Judge: Let's get back to exhibits.
Google: They have tons of exhibits. We have stipulated to more than 145, which
is far more than a jury can comprehend. Now we're just shoveling a bunch
more. If you're going to use them with a witness, fine.
Boies: These are not "randomly" selected emails. These are all very
important.
Judge: Will you use all of these docs?
Boies: I don't think I'll have time.
Judge: Here's the answer. Evidentiary - you don't want to stipulate - you have
to stipulate. Point 2 - normally lawyers work this out.
Point 3 - I know this is really a time issue. They're up to 686 minutes.
They're running short of time. They might run out of time.
And you (Google) want them to run out of time.
Van Nest has a legitimate point. By letting them come in without a witness
explaining them, they can be used in summation.
There are 2 alternatives. When there is a long list like this, you pick
25% you won't stipulate. Then 75% come in by stipulation.
That's the practical way to handle this. But I can't force you to do this.
You can force Mr. Boies to use up his time.
But it works both ways.
Judge: 40 seems like a lot.
Boies: We'll go over it and see what we can work out.
Judge:
686 and 437, Oracle vs. Google, time accounting.
Is there going to be a defense of "advice of counsel"?
Google: No, Your Honor.
Judge: Jury is hearing all this about licenses, and this goes to
willfullness, this might be a logical time to figure that out.
Judge: A different question, to Oracle. Here's soemthing I have a hard
time swallowing. Your argument about "derivative work". Your
argument is if someone starts with the plain English descriptions, in
a clean room, and they put on their scientific thinking caps, and come
up with their own program code, no matter what they come up with is an
infringement. Doesn't that violate the principle that no one has a
monopoly on the idea expressed? If you were to say how do you do a
rangecheck, and if that is the idea, and you let a bunch of students
go wild on it and come up with different solutions, isn't that the
classic example, you don't have the right to the expression of that
idea?
Isn't that right? Am I misunderstanding? It seems invalid.
Boies:
I'm not sure this is going to be terribly helpful. It depends
on whether you view the "plain English version" or simply an idea, or
being creative expression. If the latter, and they are copying that,
and interpreting that, then it's a derivative work.
If it's just an idea, then the court is probably right.
The court will note that everyone before this litigation that everyone
thought that a clean room implementation didn't save you from getting a
license.
All the clean room permitted you to do was to stop you from licensing the
code. But the clean room didn't excuse you from getting a specification
license.
Judge: That's what the memo said, I grant you that, but I don't know
that's required under the law. They shouldn't be held to this just because
Mr. Rubin said this in an email.
Boies: It wasn't just an email. Danger took a license even though they
weren't going to use the code.
Judge: Didn't the Danger license cover the trademark too?
Boies: I suppose it did, but it clearly covered the specification license.
Judge: Well, I still question your premise. Now it may be that they agreed to
a license, in the same way both of these companies have agreed to a patent
from a troll, even though it's completely invalid, just because it's not
worth fighting.
Judge: If you have a doc in plain English that says that this particular method
will return the larger of 2 numbers, and you gave that, looked in
textbooks, you would find examples of that very exercise. Teaching young
people in college how to do perform that writing various forms of code.
And to decide you own every implementation of that code just because you
came up with the idea, that's classic over-reaching.
Boies: That's not what we're trying to say. And I'm probably not
explaining well.
Judge: My job is to come up with a list of questions that's as clear as
possible. I don't want to have to take time over soething that's invalid
as a matter of law.
Other Oracle lawyer: It's not the taking of any particular idea of any particular
method. We're not claiming taking the max is copyright infringement.
Similarly, saying to a movie maker "seek the holy grail", that would
not infringe any other version like Monty Python.
[Shows java chart]
Judge: But that's your SSO argument.
Oracle: [Movie script argument] If you make a movie out of this whole thing,
clearly that's a derivative work.
Judge: Let me try my question a different way. Let's say we ask the jury 2
questions. "With regard to these 37 packages, did Google copy the SSO?"
And same question, but documentation.
Let's assume we ask those questions to the jury.
So then, what good is it, if you've already gotten a yes or a no, what
does it add to then say "btw, is the implementation a derivative work
of the plain English of what the method will do"? To my mind, there's
no legal significance to that question. The first 2 questions are all that
matter.
Oracle: I think that's right. Let us think about it and get back to you.
Judge: Now similar part for the other side. "De minimis" How can you say that
copying SSO is "de minimis". I'm going to say to the jury that it's a
protectable element. But that doesn't mean that's my final decision. This
way the jury can rule on your fair use argument.
If SSO is protectable under copyright act, no reasonable jury could
find that that's de minimis - could they? I find that a hard sell.
Google lawyer, not Van Nest: : A jury *could* find that the SSO of the
37 packages is de minimis, and here's why. To the extent that there
is something that is the SSO, that is separate and independent of the
name, the language, and all of the code that implements it, if there
is something that can be identified of the SSO of just these 37
packages, some separately identifiable thing, called "just the SSO",
then we believe that that's an extraordinarily small element of the
Java package and Android. [Arguing that the work as a whole is huge.]
Judge: Let's say we let the jury decide fair use. Isn't the extent to which
something is used a factor?
Google: Absolutely.
Judge: So what does de minimis add?
Google: Those 12 files.
Judge: So you mainly want to use de minimis for the literal copying of the 12
files.
Google: Essentially, yes, but I have to check with the client.
Judge: You wanted to respond to my previous questoins to Oracle.
Google: What API specs do is the following. It's like a dictionary. If
you want code that does X, here's the name to call. Just like a
dictionary. So this is not like providing a script to a movie. This
is like giving someone a dictionary. Here are all these words. Now
go out, and write a program. Like, here's a dictionary. Mr. movie
maker, can you write a script using this dictionary?
I think there are 2 issues here - names. You already ruled on that.
That's out.
Judge: But what are the names?
Google: Here, the name is java.lang.math.max. Your order says it includes the
class names, and the package names, and the method names.
Oracle: A different analogy. Name of a keynote (?). West keynote system. Of
course that's protectable!
Judge: How can you say that? Does that circuit know that there's a copyright
on it?
Oracle: Clearly.
Judge: What say you, Google?
Google: But the West taxonomy has content. This is just words. Once I define
java.bruce.history, java.bruce.economics, etc. And anyone that wants a
java program to use them in the same way I've defined them, they have to
use it in precisely that way.
Judge: Mr. Jacobs' point is that they come with a system of organization, and
it's not just randomly selected words. They bear a relationship among each
other in a hierarchical way.
Google: Full stop - the hierarchical way that they're talking about, that's
what the language requires. It only looks like a hierarchy to us
humans. The organization is simply a human artifact. Like a Table of
Contents.
Judge: Let me ask a difficult question to Oracle.
Are you saying that each of these 37 APIs are like 37 advertisements in a
magazine? So are you saying that each is a stand-alone thing? Or the SSO
of the 37 is a protected item?
Oracle: I think we're saying both.
Google: I don't see how there can be a principled way that they could say
that it could be anything less than the SSO of *all* 167 packages.
Every package has to come back to java.lang. To the extent that there's
any chance, the SSO has to at least be talking about the entire API.
Judge: But they're alleging 37.
Google: They can't redefine their work to say that the work is just what's at
issue.
Judge: Hustler case.
Google: But that was a standalone article. Texaco case. Those are
completely different. Separate articles, with separate authors.
They've testified about how interrelated all of these packages. They
focused on the 37. They've heard evidence of the others. But you'll
see that they all relate to each other. They all have
inter-dependencies.
No one has ever testified before this trial that these 37 are any kind
of a unit.
Van Nest: In a journal, articles have a seperate existence. Before this
case, no one talked about the SSO of 37, or 51, or anything.
Judge: But Rubin talked about APIs.
Van Nest: Yeah, but no one ever said there's an SSO of 37, or 51, or 150. These
numbers you're hearing are a lawyer-made-up product of this lawsuit.
Judge: Here's the bugaboo for Google. You chose consciously, chose these APIs.
If they aren't so great, why did you pick that subset? Doesn't that prove
coherence?
Van Nest: Number one, there were 51.
Judge: But minus 14 is 37 - isn't that what the developer community expects?
Van Nest: Those APIs were integrated into a much bigger system. And we haven't
even started our case yet. Our core libraries and Android APIs all work
together. So it's not like there's a unit out there where 37 is important.
Google: Why do you have Java APIs in the first place? The answer is to use the
freely available programming language.
Judge: Well 4 are needed.
Google: 4 packages, hundreds of methods. Clearly there are fact issues about
what is fundamental. In order to let people write Java programs, you
needed to use the same API.
Judge: Is that a fair use argument?
Google: Absolutely. All we use are the unprotectable name, method signatures,
and ideas that are reflected in the API specs. We don't use their code, we
don't use their expression. To the extent that there is an SSO, we used
the minimum amount necessary to support the language.
Judge: Burden of fair use is on you.
Google: Yes, your honor.
Oracle: There were originally 51. But there are 37 that Oracle owns. So
this is akin to a magazine article.
2nd point. What these cases really tell us, case law is pretty protective
of the copyright holder. You can't bury it in a large body of work.
Focus on what was taken and its substantiality.
Judge: We'll leave it there.
Update 4: Bryan Bishop at the Verge has some astute
observations on Dr. Mitchell's testimony:
Oracle followed Lee with Stanford Professor of Computer Science Dr. John Mitchell. Mitchell had analyzed the 37 APIs at the center of the case from both Java 2 SE 5.0 and Android 2.2 and found extensive similarities. In an attempt to further attack Google's clean-room claims, Mitchell also noted evidence that would seem to indicate Android code had been copied from a decompiled source: variables that would normally be given actual names for ease of use instead consisted of generic, machine-generated template terms such as "set Set1" and "boolean flag." Mitchell stated that he was even able to replicate the variable names by decompiling Sun code himself.
The examples shown in the courtroom, however, all seemed to be copied from the Apache Harmony implementation of Java, rather than being the direct work of a compromised Google clean room. When pressed by Google counsel Robert Van Nest, Mitchell stated that he was actually not very familiar with Apache Harmony himself. Additionally, the report his own work was based upon — which included the comparison of thousands of files — yielded just twelve files containing similarities. Of all of the lines of comparable code, Mitchell was only able to positively confirm that nine lines made it onto shipping Android handsets — the nine lines that comprise rangeCheck.
Update 2: I never received a report from our law student, our second reporter this day. I've emailed her, and whenever I hear back, I'll add the report here. It turns out, she tells me, she is a student of Michael Jacobs, one of Oracle's attorney, who also teaches at Berkeley. So her viewpoint of the trial should be interesting. She seems to think the world of him, as do I, actually.
Update 3: Here's her report:
Oh, I thought you didn't need anything from me. I took almost no
notes, just discussed it a little with my professor. [PJ: She clarifies not Michael Jacobs, another professor.]
I guess from what I understood the issue was whether APIs are
protected under the Copyright Act and whether the copied amount is
substantial or not. APIs are protected as "literary work". [PJ: Or are they? that is what the case is about.] Later in the
trial the judge probably will start discussing what is the "work as a
whole". I guess Google argues that the 37 accused API packages in
Android and Java 2 SE are only a small portion of the Android and Java
platforms, respectively, as a whole.
Also you can find in transcripts or notes that Google's attorney
argued that API "package" is a made up term, that it doesn't exist in
the literature and is not used in the field.
Also there is a distinction between the Java language--freely
available for use--and the Java APIs, which are the detailed
specifications that describe valid uses of the Java language. To do
clean room implementation one can't use any APIs [PJ: According to Oracle]. At some point Google
had discussed to do clean room implementation for Android, but never
continued. The judge was concerned about it, as they didn't have a
satisfying argument why they couldn't do without the 37. [PJ: Well, if they are core to the language, and you can't use the language to do anything without at least some of the APIs, then that would be the argument. And it was, as you can see from the other report.]
At the end also there was a discussion about the load of e-mails and
other correspondence that Oracle was using to prove a point that
Google knowingly infringed it. Google's attorney raised a concern
about the time and that some of the e-mails are irrelevant and that
Oracle was wasting the court's time by going one by one asking
questions to the witness. The judge agreed but still left some room
for Oracle to discuss the important ones.
I found Andy Rubin's testimony very interesting. He was calm and
confident. The answers were somewhat vague. He would answer "I don't
recall" to some of the questions regarding his e-mails. I think it was
frustrating Oracle's attorney at some point. :)
Also, because it so hard to explain the entire technological concept
through analogies, he had a lot of room to keep it as vague as he
could.
I will try to follow this case as much as my schedule of finals allows
me. I am really interested in this topic as I plan to be an IP lawyer.
This decision will most likely have a couple policy aspects. I will be
in touch the days I am in court.
Best of luck and thanks for doing this. I learned a lot!
I know you guys join me in thanking both of our first-time reporters for being willing to be our eyes and ears.
Update 5: We have the trial exhibits entered on this day,
2012-04-23:
- [P956] 2012-04-22 Oracle Brief re Court's Copyright Questions.pdf [This is available here as docket #956.]
- [P961] 2012-04-22 Oracle Update on 702 Copyright Questions.pdf["Oracle America, Inc. submits this update on the PTO’s progress in
reexamining the
asserted claims of the ’702 patent. On April 19, 2012, the PTO mailed a Notice
of Intent to Issue
Ex Parte Reexamination Certificate confirming the patentability of all the
asserted claims of the
’702 patent. Attached hereto is a copy of the PTO’s notice."]
- 0140.pdf [Email from Bill Coughran to Tim Lindholm, cc to Andy Rubin, dated Feb. 10, 2006, Re: Travel for Android requested, oking his email request, same date, to do a "two-day deep dive into the architecture with TI's engineers" which is referring to a TI project, "a Java acceleration architecture (silicon and surrounding software) done by TI." TI was asking to partner with Google and Sun for Android handsets.]
- Mitchell_Demonstratives_Print10.pdf
Update 6: All the trial exhibits are now available as PDFs here. Some are also done as text. Look for the date nearest the day, as they are listed by the date they were entered, which could be a day or so after the date of their use in the courtroom.
|
|
Authored by: jesse on Monday, April 23 2012 @ 05:51 PM EDT |
Thank you. [ Reply to This | # ]
|
- Corrections here please - Authored by: Anonymous on Monday, April 23 2012 @ 06:04 PM EDT
- Witness name - Authored by: Anonymous on Monday, April 23 2012 @ 06:17 PM EDT
- Fixed - Authored by: Anonymous on Monday, April 23 2012 @ 06:18 PM EDT
- Fixed - Authored by: PJ on Tuesday, April 24 2012 @ 01:39 PM EDT
- Witness name - Authored by: Anonymous on Tuesday, April 24 2012 @ 04:50 AM EDT
- Interface as Contract - Authored by: Anonymous on Monday, April 23 2012 @ 06:34 PM EDT
- ....thusing blunting the value ..... - Authored by: jsoulejr on Monday, April 23 2012 @ 07:22 PM EDT
- Discussion about wording of when to say "prosecution rests". => "Plaintiff rests" - Authored by: red floyd on Monday, April 23 2012 @ 10:18 PM EDT
- Stanford Professors have helped Oracle before - Authored by: Anonymous on Monday, April 23 2012 @ 11:58 PM EDT
- GPL: It says the code can be reused and modified, so long as the modifications are given back - Authored by: Anonymous on Tuesday, April 24 2012 @ 03:38 AM EDT
- soething -> something - Authored by: erem on Tuesday, April 24 2012 @ 05:34 AM EDT
- "Dudley" -> Doug Lea - Authored by: Anonymous on Tuesday, April 24 2012 @ 08:27 AM EDT
- "Taobi" -> "TIOBE" - Authored by: Anonymous on Tuesday, April 24 2012 @ 01:31 PM EDT
- New paragraph missed - Authored by: Nemesis on Saturday, April 28 2012 @ 06:35 PM EDT
|
Authored by: jesse on Monday, April 23 2012 @ 05:52 PM EDT |
Thank you. [ Reply to This | # ]
|
|
Authored by: jesse on Monday, April 23 2012 @ 05:53 PM EDT |
Thank you. [ Reply to This | # ]
|
|
Authored by: jesse on Monday, April 23 2012 @ 05:54 PM EDT |
Thank you for the work. [ Reply to This | # ]
|
|
Authored by: Anonymous on Monday, April 23 2012 @ 05:56 PM EDT |
I love this judge XD. [ Reply to This | # ]
|
|
Authored by: SLi on Monday, April 23 2012 @ 06:18 PM EDT |
I think today's news is provided in an explanation
from Oracle to
the judge, talking about a book about Gerald Ford.
That's the problem in a
nutshell. Oracle is talking about books
and trying to apply copyright law to
the law about books. But
computer software isn't a book, a novel, or anything
like it. You
can restrict copying of a novel or a history without damaging the
entire field of book writing. But if you restrict APIs, which are
functional,
you do destroy software development as we know it.
How much do
the bad results that would come from a certain
legal determination (here the
copyrightability of APIs) actually
affect the eventual outcome? I gather that
they do, to some
extent.
In a perfect world (or at least with perfect
separation of
powers), I guess the lawmakers would ponder the effects of the
laws they write, and courts would apply them as written, leaving
fixing them
to lawmakers if the outcome is negative... [ Reply to This | # ]
|
|
Authored by: Anonymous on Monday, April 23 2012 @ 06:30 PM EDT |
I thought this answer was quite interesting:
Google:
When you were at Google, did you have conversations about making use of the
javadocs?
Bob Lee: Yes, we definitely referred back to them to make sure
we were maintaining interoperability.
It shows a clear
mindset of wanting to avoid fragmenting the language.
This one
is also interesting (emphasis mine):
Google: Would it have
been possible to run Android against a TCK in 2006 / 2007?
Bob Lee:
(confidently) No. I'm a prolific contributor. I worked to build stuff that
could support it later.
[ Reply to This | # ]
|
|
Authored by: lwoggardner on Monday, April 23 2012 @ 06:47 PM EDT |
Sounds like the judge is going to rule that the SSO of the
API as contained in
the source.
Judge: I will instruct the jury that the copyrights
extend
to the SSO. I see both sides arguments on this. If you win
on fair use,
then the judge doesn't have to decide those
questions.
The way it's going to
be presented to the jury, is that the
SSO *is* covered by copyright - not its
own copyright, I'm
not prepared to say to the jury that it's a standalone
entity with its own copyright, but the copyright issued that
applies to
everything also applies to the SSO.
Presumably Google now
moves on to fair use (and estoppel?)
I gather there is an argument about the
amount of copying.
If you take any source file and highlight the SSO of the API
it will generally be only a small part in comparison to the
comments and the
implementing code. Is that relevant? Or can
Oracle argue that the SSO of the
API somehow carries more
importance than code/comments?
Is compatibility a
fair use defence? [ Reply to This | # ]
|
- The APIs are copyrightable, but not on their own, moving on... - Authored by: Anonymous on Monday, April 23 2012 @ 07:13 PM EDT
- The APIs are copyrightable, but not on their own, moving on... - Authored by: Anonymous on Monday, April 23 2012 @ 07:38 PM EDT
- Work as a whole - Authored by: Ian Al on Tuesday, April 24 2012 @ 04:23 AM EDT
- Work as a whole - Authored by: Anonymous on Tuesday, April 24 2012 @ 08:41 AM EDT
- Maybe wrong place, but SSO is Look and Feel? - Authored by: Anonymous on Tuesday, April 24 2012 @ 10:27 AM EDT
- Attacking SS&O: Questioning the French Waiter - Authored by: davecb on Tuesday, April 24 2012 @ 10:32 AM EDT
|
Authored by: Anonymous on Monday, April 23 2012 @ 06:58 PM EDT |
The word "contract" in relation to an API means, "the rules for using the API
correctly". There can be two sides to the contract (the user of the API, and
the provider of the API) and the contract spells out what both sides need to
do.
But its not like a legal contract ("meeting of minds", etc).. its
actually closer to a legal LICENSE! The "contract" of an API is unilaterally
decided by the provider of the API, and it says "Here's what you need to do to
use my API correctly. And if you do that, here's what you can expect to
happen." So just like a free software license, it contains (1) some conditions
you have to obey, and (2) some promises you can rely on, as long as you properly
obey the conditions.
Typically it will contain rules about state(s) the
program must be in before you can call an API method ("preconditions"). It will
also typically express promises about what the called method will do to that
state ("postconditions"), assuming that the caller successfully met the
preconditions.
There might be rules like "if you call method A with a
particular object as an argument, at some time later you must also call method B
with the same object". Example: If you Open a file (and receive back a
"handle"), at some time later you must Close that "handle".
There's a
particular approach to building software, called Design by Contract,
in which this process is very formalized. Most software is not written that way
though. In most software, there are only informal "contracts", and they are
only spelled out in comments for those APIs where the information of the
contract is necessary to use them properly. [ Reply to This | # ]
|
|
Authored by: cpeterson on Monday, April 23 2012 @ 07:01 PM EDT |
Google: When someone contributes something to the JCP, can that
person contribute to Java and also make it free for everything to
use?
Bob Lee: Absolutely.
[Oracle objection. Sustained. He's not
a lawyer.]
Nope, we won't have engineers making legal
judgements.
Unless it's Tim Lindholm or Andy Rubin, and we can take their
comments out of context.
So, Bob Lee, remember, it's this
way:
Lawyer: Did you think you were acting in accordance with
the law? Be aware that answering "no" will incriminate you; answering "yes"
will be disallowed as a legal opinion; answering "I don't know" will be
considered evasive.
Witness: .... [ Reply to This | # ]
|
|
Authored by: tknarr on Monday, April 23 2012 @ 07:09 PM EDT |
I think today's news is provided in an explanation from Oracle to
the judge, talking about a book about Gerald Ford. That's the problem in a
nutshell. Oracle is talking about books and trying to apply copyright law to the
law about books. But computer software isn't a book, a novel, or anything like
it. You can restrict copying of a novel or a history without damaging the entire
field of book writing. But if you restrict APIs, which are functional, you do
destroy software development as we know it.
I don't think the
law or the judge care about what it'd do to software development. If applying
copyright law would destroy software development, then that's a matter for
Congress to take up and potentially change the law. But I think the problem is
that Oracle keeps talking about copying the contents of books. An API
isn't the implementation, any more than the table of contents of a textbook is
the textbook. That it's a textbook is a key point, BTW. For a novel, the chapter
titles and their ordering may be copyrightable, but they have a non-functional
aspect to them. For a textbook, the chapter titles are almost purely function:
they tell you want information's covered in which chapter. If I write another
textbook covering the same subject, I'm going to need to cover the same
information. And if I want to let people use my textbook in place of another
without having to redo all their references, I need to give my chapters the same
titles and put them in the same order. So, does copyright law prohibit me from
creating such a replacement textbook using the same chapter titles and numbers?
Yes or no? The answer to that should enlighten. [ Reply to This | # ]
|
|
Authored by: Anonymous on Monday, April 23 2012 @ 07:22 PM EDT |
"Oracle: Look at your screen. 610.2. The Java documentation from the Java
web site, and on the right, 767, which is the Android docs from Android."
Look at the book.
"John Mitchell: You can see you have the same class in the same library.
Everything's basically the same."
Look at the code[ Reply to This | # ]
|
|
Authored by: Anonymous on Monday, April 23 2012 @ 07:28 PM EDT |
Many thanks to the court reporters for their time and effort.
I do have a question though. Do you sense that the jury is getting it or are
they completely overwhelmed? I have a lot of programming experience and am
getting a bit confused. I can just imagine a teacher or nurse having their eyes
glazed over.[ Reply to This | # ]
|
- Many thanks, reporters, PJ, and Mark - Authored by: hardmath on Tuesday, April 24 2012 @ 02:00 AM EDT
- Like you, even as a programmer (AND Groklaw member) I'm overwhelmed... - Authored by: Anonymous on Tuesday, April 24 2012 @ 02:27 AM EDT
- Thanks - Authored by: Ian Al on Tuesday, April 24 2012 @ 06:46 AM EDT
- Week 2, Day 6 of Oracle v. Google ~pj - Authored by: Anonymous on Tuesday, April 24 2012 @ 12:46 PM EDT
- Eye glazing slop - Authored by: Anonymous on Tuesday, April 24 2012 @ 01:07 PM EDT
|
Authored by: s65_sean on Monday, April 23 2012 @ 08:06 PM EDT |
Bob Lee: For open source license, you can take the code and reuse
it. Some require you to give attribution. The GPL says. [PJ: It says the code
can be reused and modified, so long as the modifications are given back.]
Modifications do not have to be "given back". I can take any GPL
software and modify it any way I see fit, and as long as I don't distribute my
modified binary code to anyone else, then I don't have to give anyone my
modified source code. You only have to make your source code modifications
available to others if you distribute your modified binary code to others, and
even then you only have to make the source code available to those that you
distribute your modified binary code to. You don't have to ever "give it back"
to the ones that you got it from. Granted, if you make it freely available to
others, then the ones that you got it from can probably obtain a copy, but it's
up to them to obtain a copy, you don't have to go seek out those that you got
the code from and give them your modifications.[ Reply to This | # ]
|
|
Authored by: Anonymous on Monday, April 23 2012 @ 08:20 PM EDT |
I like any judge who utters the words "patent troll" from the bench. [ Reply to This | # ]
|
|
Authored by: jvillain on Monday, April 23 2012 @ 08:33 PM EDT |
There are 51 packages in Android. They started asserting rights for
all 51. But then it was discovered they didn't own those 14. So they dropped
those 14.
Isn't the question of whether you have ownership some
thing you should figure out before you start suing? I would have thought
some one over at BSF would have figured that out after the fiaSCO. [ Reply to This | # ]
|
- Horse->Cart - Authored by: Anonymous on Tuesday, April 24 2012 @ 04:02 AM EDT
|
Authored by: Anonymous on Monday, April 23 2012 @ 08:44 PM EDT |
The term "interface", as it applies to Java, is used to indicate a
reference type that can not be instantiated and does not have any method bodies.
The methods it defines must be in any classes that implement the interface.
The interface does not say what the methods will do, only what methods classes
that implement the interface will include. What the methods do can be very
different. In the term "Application Program Interface", the term
"interface" refers to a function, method, subroutine, etc. for which
the definition of what it will do is well defined, just not the how.
Perhaps an example: if an API specifies a function
float sin(float X) returns the sine of X, then the implementer must make the
sin function return the sine of its argument; a Java interface that has a method
defined as float sin(float) requires that any class that implements the
interface have method sin that accepts a float as an argument and returns a
float, and that returned value may, or may not, be related in any way to the
sine of its argument.
Why would you do this? A class that implements comparable must have a method
compare that returns a negative, zero, or positive integer depending on if one
argument is less than, equal to, or greater than the other. So, lets say we
wish to compare the letters A, a, Z, and z. We could put them in the order A,
a, Z, z or the order A,Z, a, z or we could say A and Z are equal and both are
less than a and z, which are equal because the order is determined by case, or
we could say A and a are equal and both are less than Z and z, which are equal
because the order is alphabetic and case is not significant. [ Reply to This | # ]
|
|
Authored by: Anonymous on Monday, April 23 2012 @ 08:52 PM EDT |
Judge: Let me try my question a different way. Let's say we ask the jury 2
questions. "With regard to these 37 packages, did Google copy the
SSO?"
And same question, but documentation.[ Reply to This | # ]
|
|
Authored by: rsteinmetz70112 on Monday, April 23 2012 @ 09:00 PM EDT |
Oracle: Your discussions with Horowitz about permissability. Discuss with any
Google counsel?
Bob Lee: Not that I recall.
Oracle: So Horowitz was giving you unguided legal advice?
Bob Lee: Yes.
---
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 | # ]
|
- Hearsay? - Authored by: jvillain on Monday, April 23 2012 @ 10:34 PM EDT
- My Answer - Authored by: Anonymous on Tuesday, April 24 2012 @ 02:19 AM EDT
|
Authored by: rsteinmetz70112 on Monday, April 23 2012 @ 09:20 PM EDT |
As an actual Architect who designs buildings for a living I have real heartburn
with terms like "computer architect" and "software
architect" wielded by people who have little or no knowledge of what Real
Architects do. The title seems to be based on a repulsion of traditional
corporate terminology and some kind of milappropriation of and misunderstanding
of actual architecture.
---
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 | # ]
|
- Engineers - Don’t much like Computer Engineer either ;-) - Authored by: SilverWave on Monday, April 23 2012 @ 09:28 PM EDT
- "computer architects" - Authored by: lwoggardner on Monday, April 23 2012 @ 09:29 PM EDT
- "computer architects" - Authored by: Anonymous on Monday, April 23 2012 @ 09:39 PM EDT
- "computer architects" - Authored by: Anonymous on Monday, April 23 2012 @ 09:54 PM EDT
- "computer architects" - Authored by: Anonymous on Monday, April 23 2012 @ 10:00 PM EDT
- "computer architects" - Authored by: Anonymous on Monday, April 23 2012 @ 11:25 PM EDT
- "computer architects" - Authored by: Anonymous on Tuesday, April 24 2012 @ 12:04 AM EDT
- Architect arrogance? - Authored by: Anonymous on Tuesday, April 24 2012 @ 01:31 AM EDT
- Can you offer alternative suggestions? - Authored by: jbb on Tuesday, April 24 2012 @ 01:35 AM EDT
- Software programmers are the weavers of dreams and abstract ideas - Authored by: Ian Al on Tuesday, April 24 2012 @ 06:55 AM EDT
- "computer architects" - Authored by: Anonymous on Tuesday, April 24 2012 @ 10:02 AM EDT
- Oh but it is - Authored by: Anonymous on Wednesday, April 25 2012 @ 06:15 AM EDT
|
Authored by: SilverWave on Monday, April 23 2012 @ 09:26 PM EDT |
Whats the chance of that in such a case as this?
---
RMS: The 4 Freedoms
0 run the program for any purpose
1 study the source code and change it
2 make copies and distribute them
3 publish modified versions
[ Reply to This | # ]
|
|
Authored by: Anonymous on Monday, April 23 2012 @ 09:30 PM EDT |
> Judge: I will instruct the jury that the copyrights extend to the SSO.
What does SSO stand for?[ Reply to This | # ]
|
|
Authored by: SpaceLifeForm on Monday, April 23 2012 @ 11:00 PM EDT |
Boies (allegedly said):
The court will note that everyone before
this litigation that everyone thought that a clean room implementation didn't
save you from getting a license.
All the clean room permitted you to do was
to stop you from licensing the code. But the clean room didn't excuse you from
getting a specification license.
News to me. If they
provide the API description
without a license (which they must, otherwise no
one
would write any code that used the API), and
someone writes their own
implementation that supports
the API, and the code works properly, why
would
they want any additional license? Other that to
call it some trademarked
name, do they really care?
Here is an example: glibc and uClibc.
uClibc
strives to implement the same API as glibc,
but in smaller code
footprint.
uClibc does not try to call itself glibc, even
though it
implements a lot of glibc functionality.
Harmony does not try to call itself
Java either,
even though it implements a lot of Java functionality.
I think
Boies is twisting.
---
You are being MICROattacked, from various angles, in a SOFT manner. [ Reply to This | # ]
|
|
Authored by: Anonymous on Monday, April 23 2012 @ 11:11 PM EDT |
Why didn't Google ask Mitchell more about cleanroom
implementations? He seems to imply that they are industry
standard practice and legal. Wouldn't that contradict the idea
that APIs are copyrightable?[ Reply to This | # ]
|
|
Authored by: Anonymous on Monday, April 23 2012 @ 11:39 PM EDT |
Lawyers use language in a very precise manner to convey an idea to other folks
in the same profession. So do programmers. At the same time, the same word can
have two separate and distinct meaning to each group. Seems to play right into
Oracles hands if the goal is to cause confusion (while claiming the opposite).[ Reply to This | # ]
|
|
Authored by: BitOBear on Monday, April 23 2012 @ 11:46 PM EDT |
Saying you can copyright and restrict the use of an API to a library that you
have given away is like...
Admitting you cannot copyright a computer designed tire tread pattern but you
can copyright the skid-mark it leaves behind.
The parties may have stipulated structure, sequence, and organization, but there
is no meaning to this. It is, as I am wont to say, "A distinction without a
difference". We have heard how a person "could" put a math thing,
like taking the square root, in some non-math namespace. Sure you -could-, but
you -could- sort your API elements by first-vowel... that is, it's doable but it
would be less than helpful.
I regularly get asked by managers questions that start with the most dangerous
three words in computer science: "Couldn't you just".
It took me years to learn how to stop saying "yes, but..." nobody
keeps listening after the "ye". I had to learn to start with
"that would be an incredibly bad ide because..." and then end with
"but it might be possible."
For instance "couldn't you just put sqrt() into java.science instead of
java.math?" "That would be an incredibly bad idea, nobody would be
likely to find it there and people would start adding error-prone and inferior
untested routines into the math space to replace the 'missing' element, but it
is technologically possible."
Massively degenerate alternatives are not equal choices.
One of the guiding rules of API (and code in general) design is "the rule
of least astonishment":
http://en.wikipedia.org/wiki/Principle_of_least_astonishment
This core principle guided the initial construction of the libraries. It
governed the direct expressions of documentation built by the -automated-
javadoc tool, just as it did the predecessors of javadoc, and it proscribes the
alteration of an existing API for all but the most dire of causes.
The idea of reinventing the wheel is well understood to be a waste as a moral.
Saying that somehow Google should have reinvented the java library elements
"SSO" epically improper.
It would border on actionable incompetence to suggest that re-writing a known
and working interface was a reasonable action under share-holder due diligence
rules since it would waste lots of money to deliberately create endless problems
for the company.[ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, April 24 2012 @ 12:01 AM EDT |
John Mitchell: I guess I agree.
That sure comes
across like he'd rather not answer. I guess Judge Alsup spoiled his
fun.
Google: Dr. Viznik was another expert? You relied on his
report?
Dr. Mitchell: I read his
report.
...
Dr. Mitchell: I expect he described what he
did there.
Ok... either he didn't actually read the report (perhaps
reading only a part of it) or he's become reluctant to answer
again.
Boies: It wasn't just an email. Danger took a license even
though they weren't going to use the code.
So... because EV1 took a
license from SCOG, it's against the Law of Copyrights for anyone else to
refuse?
Judge: Well, I still question your premise. Now it may be
that they agreed to a license, in the same way both of these companies have
agreed to a patent from a troll, even though it's completely invalid, just
because it's not worth fighting.
Yup... Judge Alsup sure seems to
understand the potential of Boies argument with regards the suggestion "someone
else took a license, so it has to be required by Law".
Boies: That's
not what we're trying to say. And I'm probably not explaining
well.
ROFL: I view Mr. Boies as explaining very well... it's the
fact that Law doesn't conform to Oracle's interpretation that he's having
troubles with.
RAS[ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, April 24 2012 @ 12:15 AM EDT |
"Judge: Do you have a truce to not talk about how much expert
witnesses are paid?"
Interesting that it was asked, and that
Google never followed up. Maybe
Judge Alsup remembers a previous case ("Re
Oracle Corp. Derivative Litigation
(824 A.2d 917 (2003))"), as summarized on Larry
Ellison's wikipedia page:
"Ellison's charitable donations
to Stanford University were an
issue in that case with respect to the
independence of two Stanford professors
who evaluated the merits of the case
for Oracle"
Ouch!
Anyone have a better URL for that case?[ Reply to This | # ]
|
- Never interrupt - Authored by: Anonymous on Tuesday, April 24 2012 @ 01:30 PM EDT
|
Authored by: jbb on Tuesday, April 24 2012 @ 12:52 AM EDT |
IANAL, but IMO, on first blush, this was not a great day for Google. The judge
has provisionally decided that the SSO of an API can (possibly) be protected by
copyright. The Danger (company name) contract will be admitted as evidence even
though it is not relevant to what Google is being sued over. And finally Oracle
got to put forth the proposition that even if you make a clean room
implementation you still need a license for the API. I got a feeling the judge
was trying to cut the baby down the middle and give each side something they
wanted; giving Google a win on the implementation not being derived from the API
and giving Oracle a win on the SSO of the APIs being (possibly) protectable by
copyright.
This trend is not good for Google because a compromise between
the truth and a lie is still a lie. BS&F repeatedly used this to their
advantage in the SCO wars.
If things continued in this direction it would look
pretty grim for Google. But that's not going to happen because, as Van Nest
said, Google hasn't even started presenting their side of the story. They have
not yet begun to fight and it's always darkest just before the dawn. A trial is
like a modified game of (American) football where one side is always on defense
for the first half then gets to always be on offense the second half.
Unlike last week when I said that I felt Google had been able to stay
even with Oracle, today it felt like Oracle was slowly pulling ahead, especially
with the judge. The goof one of Google's lawyers made in characterizing the
Danger contract was costly.
It seems like the judge is trying to squeeze
Google into arguing a fair use defense in front of the jury although he reserved
the right to override the jury's decision with his own. The fair use argument
has prevailed in the past for using elements of an API in an application
program. I don't recall anyone using it with success for a re-implementation.
Perhaps the judge wants Google to follow these clues in footnote 346 on page 54
of
Samuelson
(58-page pdf):
Sega
considered whether reverse
engineering of program code for purposes such as getting access to functional
design elements, such as interfaces, was fair use. Id. at 1514. The court
observed that
“[i]f disassembly of copyrighted object code is per se an
unfair use, the owner of the copyright
gains a de facto monopoly over the
functional aspects of his work—aspects that were expressly
denied copyright
protection by Congress,” citing § 102(b). Id. at 1526. The court went on
to say
that “to enjoy a lawful monopoly over the idea or functional principle
underlying a work, the creator
of the work must satisfy the more stringent
standards imposed by the patent laws.” Id. The Ninth
Circuit agreed with
Altai that functional works such as computer programs and those
describing
bookkeeping systems were entitled, as Baker had long ago held,
to only “thin” protection from copyright law. Id. at
1524.
Samuelson's overall thesis was that § 102(b) of the
1976 Copyright Act should be invoked directly. That section says in
full:
In no case does copyright protection for an original work of
authorship extend to any idea, procedure, process, system, method of operation,
concept, principle, or discovery, regardless of the form in which it is
described, explained, illustrated, or embodied in such work.
As
Samuelson also said:
While it is better to stretch the scenes a
faire and merger doctrines to exclude from copyright a systematic collection
of information selected and arranged to achieve functional ends, a far
simpler and more straightforward way to get to the same result is to say that
systematic assemblages of information such as specifications of interfaces
necessary to achieve interoperability are unprotectable under § 102(b) [of
the 1976 Copyright Act] and Baker’s progeny such as
Taylor.
I would be more comfortable with a judgment follows
Samuelson's lead and says that APIs cannot be protected by copyright because of
§ 102(b). I worry that the fair use argument might not fly with the jury and
even if it does, it might leave the door open a crack for someone else to try
pulling a similar scam later on. My guess, and this is only a wild guess, is
that the judge is looking for some way for the jury to decide the API issue in
favor of Google so he doesn't have to make a direct ruling on whether APIs can
be copyrighted or not.
Arguing fair use in front of the jury may
actually be a huge boon for Google. If the jury decides that as a matter of
fact Google's use of the APIs was fair use then that finding of fact by the jury
might be harder to overturn than a ruling by the judge directly saying APIs
cannot be protected as a matter of law. IANAL but IIUC, it is much easier to
appeal rulings of law than matters of fact. The higher courts are generally
looking for ways the lower courts messed up in matters of law. They are not in
the business of second guessing juries.
Maybe this was a pretty good day for
Google after all.
--- Our job is to remind ourselves that there are
more contexts than the one we’re in now — the one that we think is reality.
-- Alan Kay [ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, April 24 2012 @ 03:37 AM EDT |
It dawns on me BSF has found a new replacement for SCOG in the form of
Oracle.
The copyright claims argument against Linux was:
It doesn't
matter how few lines were copied: the work as a whole is a derivative, therefore
a license is required.
Now that's being argued with Oracle:
It doesn't
matter that it's only 9 lines... Dalvik as a whole is a derivative.
Think
like BSF in both cases for a moment and it really isn't that far a jump
to:
Dalvik donated code to Linux Kernel - thereby making the Linux Kernel a
derivative!
Anyone willing to lay a wager that Linux will be Oracle's next
target if BSF is successful in getting a ruling that Dalvik is indeed a
derivative of Java?
Another similarity in the cases was that in both
cases, no matter how far fetched the claims were compared with the minimal
amount of actual copying claimed: Billions were at stake.
RAS[ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, April 24 2012 @ 04:34 AM EDT |
Why, oh why, is noone coming up with the analogy to a
cookbook?
Here
is my proposal
Java is a cookbook, full of recipes designated by name
(methods), organized by categories such pastry, meat, etc...
(classes and
packages),
each recipe has a list of ingredients (the parameters), and
an
actual step by step set of instructions, the recipe
itself (the source code for
the method).
Google did re-use the recipe names and the list of
ingredients (the API) from Java's cookbook , but did go to
great care to
create their very own original recipes, and
test them.
Could Oracle
pretend to copyright "just the recipe names
and list of ingredients", knowing
that lots of these recipes
were harvested, collected and transformed from other
sources
(other language, classical CS algorithms) rather than
invented
especially for and unique to Java's cookbook.
Cheers, L
aurent[ Reply to This | # ]
|
|
Authored by: Ian Al on Tuesday, April 24 2012 @ 04:52 AM EDT |
Google: We have an issue with the 1st witness, and an exhbit. A
series of side by side comparisons.
Judge: Oracle - no! You can't use
this. You have to use the whole thing, not a cut up
thing. --- Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid! [ Reply to This | # ]
|
|
Authored by: Ian Al on Tuesday, April 24 2012 @ 06:09 AM EDT |
Mr. Jacobs for Oracle: We were talking at the end of your testimony
about the instruction you gave to your coders. What are the 2 possible meanings
of paraphrasing?
Bob Lee: Taking something and putting it into your
own words.
Oracle: Look at your screen. 610.2. The Java documentation
from the Java web site, and on the right, 767, which is the Android docs from
Android.
Bob Lee: Java docs generated from the code. Not sure what
it's called for Android.
Oracle: Does same mechanism apply to Android
documents?
Bob Lee: Yes.
What's that about the Java
website? Would that be one html document from among tens of thousands on
Oracle's website? Was that available when Harmony wrote their clean room
implementation of the libraries? You know, I don't think it was. And, what's
that about java docs generated from the code?
Yes, of course, I
remember, now! All of the API descriptions are generated from the source code
for the API functions. As stegu told me,Java comments are allowed in
both formats that
are legal for C/C++ comments, i.e. single line
comments
starting with //, and block comments
enclosed in /* ... */.
The
Javadoc headers aimed
at auto-generated documentation begin with
/**.
Now, what did the expert witness say?
Oracle:
#2: Copying of documentation into source code.
John Mitchell: Yes. An
API contains declarations. IntBuffer. That declaration is copied directly into
Google code. Talking about timsort. Copying of code / rangecheck.
Oracle: Cleanroom?
John Mitchell: The person that wrote that had
access to the Sun code.
Hang on! Harmony did the clean room API
code and not Google. The only thing they would have to go on was the Java API
Specification given to them by Sun for the express purpose of writing the
clean-room API function code.
That Specification would contain the
javadoc text drawn from the original source code files and identified to the
javadoc program by the /** prefix.
The writers of the source code are
under strict orders to make sure the javadoc comments are always written in the
exact same format and layout and using exactly the same form of phrases for the
method lines. Since the Oracle code writers and the Android code writers are
writing about the same functions with the same names and with the same
instructions about javadoc comments it is likely that they will look very
similar.
Of course, anything in the way of creative expression that
the programmers added to the javadoc comments would stand out like a sore thumb.
Perhaps, they had no desire to add creative expression to their functional
descriptions formatted in line with the Java API Specification
format.
So, what do we make of Mitchell's expert opinion that 'the
person that wrote that had access to the Sun code' and Jacobs question about
'clean-room'?
Ah, yes, they are talking about the nine rangeCheck lines
(including the line that had '}') in timsort that Joshua Bloch wrote and donated
to Oracle.
Q. How big is Timsort (referring to Bloch's Java
implementation).
A. 900 lines.
[The rangecheck() function
gets mentioned in here.]
Q. Was there a sort API in Java before
Timsort?
A. Yes, in the arrays (class? package?).
Q. How did
Timsort differ?
A. It was much faster: as much as 20 times, typically
somewhere between 2 and 20.
9 out of 900? As a percentage, that
is... that is... Well, you do the math!
Those were the nine lines that
Google admitted to copying. In fact, they were the only nine lines in hundreds
of thousands of lines that Oracle discovered were copied directly by Google. And
Joshua Bloch handed them back to Oracle as a small component of the much
improved timsort. Nice!
Perhaps it was just unlucky that Jacobs
appeared to taint the whole of the Harmony project because of the nine lines
that Google copied and gave back in the 900 line timsort.--- Regards
Ian Al
Software Patents: It's the disclosed functions in the patent, stupid! [ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, April 24 2012 @ 06:17 AM EDT |
(IANAL) But has someone made a huge mistake on Oracle's behalf here? talking
about structure rather than objects oriented :)
Imo OOP based languages/APIs would be the hardest of all to claim any SSO
defence for, considering the whole selling point of an OOP design methodology is
that you let the real class instances(nature) guide your design; and therefore
this should always make your design “derivative” and “obvious” to any other
expert in the field capable of software modelling.
Even if Java was a structured/procedural language like SQL, I fail to see how
anyone is going to claim that SSO can be protected in public software
interfaces; regardless of complexity, when methodologies such as Structured
Systems Analysis Data Modelling(SSADM) exist freely for anyone skilled to use.
Where I feel the judge has let Oracle pull a fast one, is by using the words
“API specification” in place of what it really means and does; provides a
“public interface” for programmers to use the Java language.[ Reply to This | # ]
|
|
Authored by: SLi on Tuesday, April 24 2012 @ 07:01 AM EDT |
The decompilation stuff sounds quite bad for Google, in my
opinion... [ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, April 24 2012 @ 08:43 AM EDT |
The court and the law are so out of touch about software
and its development that this whole thing is absolutely
disgusting.
Engineers can't rely on laws about something while lawyers
define the very element of software that they demonstratably
know absolutely nothing about.
No wonder the world is going bad.
[ Reply to This | # ]
|
|
Authored by: s65_sean on Tuesday, April 24 2012 @ 08:53 AM EDT |
One thing that I don't understand is if Google copied Harmony as they claim,
then why did they have to write these 37 APIs over again themselves in a clean
room? Hadn't the Harmony project already done that?[ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, April 24 2012 @ 09:13 AM EDT |
I noticed the following from Oracle's expert, and I think that this actually
helps Google, not Oracle.
Judge: java.io, that's an
API?
John Mitchell: Technically that's a package. As a grouping of
classes, an API consists of information about packages classes and interfaces
together with what they do. An overview of an API.
Couldn't
Google use this statement and say that APIs are not eligible for copyright since
they are ideas and facts?[ Reply to This | # ]
|
|
Authored by: eachus on Tuesday, April 24 2012 @ 12:55 PM EDT |
Judge: Well, I still question your premise. Now it may be
that they agreed to a
license, in the same way both of these
companies have agreed to a patent from a
troll, even though
it's completely invalid, just because it's not worth
fighting.
This issue may come up in the patent part of this case. I
also expect that it will be used by lots of lawyers as a
precedent for calling
the plaintiff in a particular case a
troll. And certainly just sending that
snippet to your
congressman and Senators can't hurt. [ Reply to This | # ]
|
|
Authored by: Anonymous on Tuesday, April 24 2012 @ 01:12 PM EDT |
Google did not copy the code (except in some few instances)
It is so stipulated.
The names are not protected.
It is so stipulated.
So what is this circus all about?
It's not the code, and it's not the names.
Doesn't that mean that there's nothing left?
Not at all.
It's about the 37 APIs!
Well, no, it's not.
It is about the Structure, Selection and Organisation of the Documentation of
those APIs in a Book called The Java API Specification.
Oracle allege, that Google, copied a portion of their Book, the API
Specification, into their own book the Android Developer Reference.
Then it is alleged that Google, having done that copying, then copied the thing
that had been copied from Oracles Book in to Android source code. A symbol for
symbol exact copy, look at the names in the source code.
(Oracles filing #899 Accused 1, 2, 3)
(4 is the overreach that Jude Alsup looks like he's about to kick in to touch,
though I'm sure Mr Boies would like SSO to stretch over the expressive part
aswell)
Say what? names aren't protected, the judge said so.
No, they're not, but the SSO was a $7.4Billion pink elephant^W^W the result of
tens of years of man effort and hundreds of millions of pounds of investment.
Design Decisions, Creative decisions, many decisions, Artistic decisions, it, so
they say, the plot line of their work.
It is protected, or at least an SSO may be entitled to protection. (And for now,
Judge A is going to say that it is, from where he sits, there is some merit to
Oracles argument)
Oracle try to claim that the 37APIs should be the work as a whole, well lawyers
can claim whatever they are paid to claim, doesn't mean it's true, and anyway,
they don't mean the 37 APIs, or even the 37 Packages
What they are pleading is the SSO of the 37 subsections Described in the API
Specification.
And we know that it is not the work as a whole, the Judge has already asked, why
isn't it 42? isn't it a subset?, haven't you already dropped some? 14 have been
dropped, from 51 to 37, but even 51 is not the whole work.
Maybe I have a poor memory but I thought at one stage that Oracle had said that
there were more than 200, which makes the 37<20%, but Google asserted that it
is only 166 which makes it <25%, this appears to play into Oracles hand, it
gives Oracle a chance to assert the portion copied is a significant percentage.
But it's not.
It is only 20%-25% of the SSO, which itself is only a portion of the whole.
Even if you accept that the SSO is a significant portion of the whole, there are
a lot of Method names for example, and some very short English descriptions, it
is still the case that you are only talking about a portion of a portion of the
work as a whole.
Let us say, just for argument, that the SSO constitutes 40% of the work, a ratio
of ~1.5 lines of expression to 1 lines of SSO. Barking mad at best, but hey,
we're drinking Davey Boys shandy on this one, so let's go with it. It suggests
that Google only copied at maximum 10%.
Though let's go back to Mitchell, he said it was 90% (of the SSO), and Android
added some bits. So less than 10% then, likely much less.
But wait a minute, percentage copied goes to fair use, or substantial similarity
doesn't it? But fair use doesn't apply to SSO. SSO only gets thin protection,
the question is did you use it or not, did you copy it, or not?
It is not and should not be a question of how much of it did you use? So let's
look at the SSO
1) java.awt.font
2) java.beans
Need to pause there, of course these are only shortcuts to refer to 'Everything
Contained In' this section of the SSO, CLI junkies have a solution for that,
'.*' which we shall employ here
1) java.awt.font.*
2) java.beans.*
Stop again, we forgot, names are not protected, it is only the SSO that is
protected, so we need to abstract away the names, let's use Upper case for main
section, lower case for subsection, then numbers for sub-sub, and sub-sub-sub
1) A.a.1.*
2) A.b.*
3) A.c.*
4) A.d.*
5) A.d.1.*
6) A.d.2.*
7) A.d.3.*
8) A.e.*
9) A.f.*
10) A.f.1.*
11) A.f.1.1.*
12) A.f.2.*
13) A.f.2.1.*
14) A.g.*
15) A.g.1.*
16) A.g.2.*
17) A.g.3.*
18) A.g.4.*
19) A.h.*
20) A.i.*
21) A.j.*
22) A.j.1.*
23) A.j.2.*
24) A.j.3.*
25) A.j.4.*
26) A.j.5.*
27) B.a.*
28) B.a.1.*
29) B.a.2.*
30) B.b.*
31) B.b.1.*
32) B.c.1.1.*
33) B.c.1.2.*
34) B.c.1.3.*
35) B.c.1.4.*
36) B.c.2.*
37) B.d.*
(list is from Exhibit attached Filing 899, translation errors are mine)
Forget for a moment, what might be fair use, what might be barred by
function/merger/estop/public availability, Apache License, GPL License, common
knowledge, Language Library whatever (and there's lots).
This alone starts to beg question about just how far Boies is trying to stretch
his thin copyright protection.
This numbering assumes that the 37 are the whole of the work
we know that is not true.
How many other Main sections are there?
TBF, there's only 1.
HOw many other Subsections in Section A?... B?
That would be lots and lots, and they would be sprawled al among the
Sub-sections that you do see, so it should not really be 'a' through 'j', it's
more like
b,c,f,h,l,k,p,r,t,x,y
but we are trying to help you the reader see and it would be otherwise
confusing, so we'll stick with what we have.
Why is it, if Sub-sections A.b through A.j, are all called out in their entirety
(A.b.*->A.j.*)?
why is it then necessary to call out the sub-subsections separately?
Why is only one sub-sub-section of A.a.* is called out, what about the rest of
it?
How many more sub-sub-sections are there that are not listed?
That would be lots too, A.a.1.* here, is actually A.b.5.* if you refer to the
SSO of the Oracles API specification.
And sub-sub-sub-sections?
Yup there's a few of those too.
What about items 37 and 19? Aren't they just two sections on the same thing?
they're called A.h.* here and B.d.*
shouldn't they be A.h and B.h.
Well we're giving Boies the benefit of the doubt, so may be not, but may be yes,
why don't you decide, incidentally, same for 30) and 8).
Google do not deny that they copied the structure, they do not deny that it is
substantially similar. They copied it from Apache Harmony, they didn't copy it
from Boies Book, they could have copied it from a dozen places, they didn't need
to.
Googles selection arrangement and structure while it may bear some superficial
similarity to Oracles Structure, is a technical artefact of automated software
tools analyzing the source code (which Oracle admit they did not copy) and it is
plain on the face of it that if you look actually at Oracles SSO (not the code,
not the book, not the English prose, not the licenses, just the SSO), then
Google did not copy it from Oracles Book, at best they 'quoted some small bits
of it'
That is not enough when your copyright protection is only thin in the first
place.
If it is not copied from the Book, then it cannot have been copied into the code
(which is admitted was not copied),and even were it so, your thin copy right
protection does not get you that far Mr Boies and you know it.
Everything else you hear from Oracle is distraction.
(Exhibit A, attached to filing #899, read it carefully)
Boies/Jacobs perfect magicians.
My apologies for blathering on,
I hope you found it worth reading.
[ Reply to This | # ]
|
|
Authored by: Anonymous on Wednesday, April 25 2012 @ 04:29 AM EDT |
To suggest that the range check function could only be written
by a grad student if they were told what to do is crazy. If
his students couldn't pull that off than that makes Stanford
look pretty bad. [ Reply to This | # ]
|
|
Authored by: Anonymous on Wednesday, April 25 2012 @ 06:36 PM EDT |
If Java was really released under the GPL then the
JavaDoc
has
been
released under the GPL since it's just the comments,
packages, classes,
methods, fields, etc. How can Oracle
claw
back that information if it's
released under a license that
says Google can do whatever they want with it?
Maybe Google
should have invested in a clean-room implementation of
javadoc.
It would seem that using Oracle's interpretation,
Oracle would themselves be
infringing Red Hat's copyright on
Red Hat Linux. I just don't understand why
Google is not
raising a GPL defense here. [ Reply to This | # ]
|
|
Authored by: Anonymous on Wednesday, April 25 2012 @ 10:19 PM EDT |
Object pascal objects are very strict about interface and implantation sections.
It would be very easy to make the judge and jury understand the difference.
[ Reply to This | # ]
|
|
|
|
|