[00:00:29] Speaker 03: please proceed when you're ready. [00:00:50] Speaker 00: May it please the court. [00:00:51] Speaker 00: Good morning. [00:00:52] Speaker 00: My name is Mark Carlson. [00:00:53] Speaker 00: I'm with Hoggins, Berman, Sobel, Shapiro, and I'm here for the appellant. [00:00:56] Speaker 00: And with me is co-counsel Kelly Heineman, [00:00:59] Speaker 00: from Shagru Mayan. [00:01:01] Speaker 00: We're here today to talk about a software invention. [00:01:04] Speaker 00: The software has a feature called a first adapter, and the first adapter performs four functions. [00:01:10] Speaker 00: It extracts the object name and attributes from an object. [00:01:15] Speaker 00: It packs the object name and attributes, and it sends that off to the second adapter. [00:01:20] Speaker 00: Then it later receives an object back, and it unpacks it. [00:01:23] Speaker 02: There were four separate limitations that the supports found were not [00:01:26] Speaker 02: satisfied by the four-fold product, right? [00:01:30] Speaker 02: Correct, yes. [00:01:30] Speaker 02: So if we agree on any one of the four, then we have to affirm. [00:01:35] Speaker 00: That's correct, Your Honor. [00:01:36] Speaker 00: That is correct. [00:01:37] Speaker 00: I have to go four for four today. [00:01:39] Speaker 00: And that would ordinarily, I think, be difficult. [00:01:42] Speaker 00: But I think that the issues before the court really come down to, did we present evidence? [00:01:49] Speaker 00: And was that evidence credited? [00:01:51] Speaker 00: And I think the answer is that, yes, we did present evidence. [00:01:55] Speaker 00: And no, it was not credited. [00:01:56] Speaker 00: Let me take on extracting the first of the four limitations. [00:02:02] Speaker 00: And what the district court said is the claim language and the preferred embodiments require and show extracting a subset of the information in order for it to be packed for communication. [00:02:14] Speaker 00: And that presents a claim construction issue. [00:02:16] Speaker 00: We address that in the briefs. [00:02:18] Speaker 00: Unless the court has questions about the claim construction itself, we would like to rely on the briefs on that point, because we don't think it affects the outcome. [00:02:26] Speaker 02: Well, the claim constructions were what you proposed, right? [00:02:28] Speaker 00: Pardon me? [00:02:29] Speaker 02: All the claim constructions that the court adopted. [00:02:32] Speaker 00: No, no, no. [00:02:34] Speaker 00: Extracting was a new claim construction that the court engaged in at summary judgment. [00:02:38] Speaker 00: It had engaged in construction of numerous terms previously at the claim construction stage. [00:02:43] Speaker 00: Then Oracle popped up years later and said, [00:02:46] Speaker 00: I want to move for summary judgment on extracting. [00:02:49] Speaker 00: A dispute arose over what that meant, and the court construed it in its summary judgment. [00:02:54] Speaker 04: This is where the court said the information of the data, whatever, had to be extracted from one object could be part from one object, part from another object. [00:03:06] Speaker 00: That's the word. [00:03:07] Speaker 00: Exactly, Your Honor. [00:03:08] Speaker 00: And really, that's enough of the dispute here. [00:03:11] Speaker 02: But you can't separate. [00:03:13] Speaker 02: the extracting language from the object language and the object is you propose instance of a class, right? [00:03:19] Speaker 00: Yes. [00:03:20] Speaker 00: Yes, Your Honor. [00:03:21] Speaker 00: And what the court said was that we had not shown that the name and attributes are extracted from a singular instance of a class. [00:03:30] Speaker 03: I don't think that it would be appropriate for you to create new exhibits in the courtroom. [00:03:35] Speaker 03: I think you should put your pen down. [00:03:36] Speaker 00: All right. [00:03:37] Speaker 00: I can do this, Your Honor, from the appendix if that helps. [00:03:43] Speaker 03: If it's in the record, yes, that does help. [00:03:45] Speaker 03: Of course, yes. [00:03:46] Speaker 00: An appendix 0346, paragraphs 64 and 68. [00:03:51] Speaker 00: This is Dr. Jagadish's expert report, and this is where he explains that... 0346? [00:04:00] Speaker 00: Yes. [00:04:03] Speaker 00: It goes on to 0347, but the paragraphs that we're interested in are paragraphs 64 and 68. [00:04:10] Speaker 00: And what Dr. Jagadish says is, look, there's a method in the software. [00:04:15] Speaker 00: And it's called find. [00:04:18] Speaker 00: And the find has a set of inputs. [00:04:21] Speaker 00: We can call them inputs. [00:04:22] Speaker 00: We can call them parameters. [00:04:24] Speaker 00: But what they are is a set of inputs that tell the find method what it is you want it to find. [00:04:30] Speaker 00: And he said, among those inputs are class t entity class. [00:04:35] Speaker 00: And no one disputes. [00:04:37] Speaker 00: That's the object name. [00:04:38] Speaker 00: And another input is object primary key. [00:04:41] Speaker 00: And no one disputes. [00:04:42] Speaker 00: That's the object attributes. [00:04:45] Speaker 00: And that is what he is pointing to as the class. [00:04:49] Speaker 00: When it's stated generically in the software, these are generic descriptions of the inputs that go into the find method. [00:05:01] Speaker 00: When you compile that source code and run the application, it will generate a specific request that meets those parameters. [00:05:11] Speaker 00: In the example that he gave, [00:05:12] Speaker 00: is employee.class, object name, my primary key, specific employee object attributes. [00:05:21] Speaker 00: That is an object. [00:05:22] Speaker 00: That is an instance of the class that's defined by the inputs to the find method, class t entity class, object primary key. [00:05:31] Speaker 00: That's what we alleged was the object at issue here. [00:05:37] Speaker 00: The experts disagreed. [00:05:39] Speaker 00: Oracle's expert came in and said, well, no, if you pop the hood, [00:05:42] Speaker 00: on what we're talking about as an object, that's actually two objects in there. [00:05:47] Speaker 00: And he said, not only that, there's not even objects in there. [00:05:50] Speaker 00: There's pointers to other objects. [00:05:51] Speaker 00: Well, the experts disagree. [00:05:54] Speaker 00: And that's true. [00:05:55] Speaker 00: But the district court can't resolve that disagreement. [00:05:57] Speaker 00: That's an issue of fact. [00:05:59] Speaker 00: That's an issue of fact as to how a person of ordinary skill in the art would read that term and whether a person of skill in the art would understand that to be an object. [00:06:09] Speaker 00: And we presented evidence in support of that. [00:06:12] Speaker 00: And then the evidence that supported that is at 875 to 879 of the appendix. [00:06:21] Speaker 00: And this is a claim chart. [00:06:23] Speaker 00: This was attached to Dr. Jagadish's expert report. [00:06:27] Speaker 00: It's his chart showing what the structures are that satisfy the limitations. [00:06:32] Speaker 00: And at 875, you can see we're talking about extracting. [00:06:35] Speaker 00: This is extracting by the first adapter. [00:06:40] Speaker 00: And then if you turn to 876, [00:06:43] Speaker 00: This is the exact source code that performs the extracting functions. [00:06:47] Speaker 00: If you look at lines three to four, you can see the find method. [00:06:52] Speaker 00: You can then see the parenthetical that follows that with the parameters that go into it. [00:06:57] Speaker 00: The first is the object name, entity class. [00:07:00] Speaker 00: The second is the object attributes. [00:07:02] Speaker 00: And then there are some other parameters that go into that as well. [00:07:06] Speaker 00: If you look down to line seven, that's the specific line where the entity class is extracted. [00:07:13] Speaker 00: And that's the object name. [00:07:15] Speaker 00: And then if you look down to 22, line 22, where it says return T find internal descriptor, that's the line of code where extracting the object attributes occurred. [00:07:26] Speaker 00: And then, of course, Dr. Jagadish doesn't expect the district court to be reading source code. [00:07:31] Speaker 00: So he explains in the paragraph that follows at the bottom of 876 down to the top of 877 what it is that we are contending [00:07:41] Speaker 00: is extracted and how it's extracted. [00:07:44] Speaker 00: And it meets the court's new summary judgment construction because less than all is extracted from one object. [00:07:54] Speaker 00: A singular instance of a class and in the first instance we take out the object name and in the second we take out the attributes and a couple of other parameters but not the whole. [00:08:05] Speaker 00: In neither instance is it the whole. [00:08:07] Speaker 00: So in both instances the court's construction is satisfied. [00:08:15] Speaker 00: Let me turn to packing. [00:08:22] Speaker 00: So here, what the district court said is that the claim language requires something more than simply rearranging data. [00:08:29] Speaker 00: It requires manipulation of its form. [00:08:31] Speaker 00: It never really tells us what it means to manipulate the form of an intangible like data. [00:08:37] Speaker 00: But that was an issue of claim construction. [00:08:39] Speaker 00: And again, we'd like to rely on our briefs for that point. [00:08:42] Speaker 00: We think the court was wrong, but we don't think it affects the outcome here. [00:08:47] Speaker 00: And so I'd like to just address the merits of what the court did. [00:08:52] Speaker 00: Now, what the court said is that we merely rearranged the data. [00:08:58] Speaker 00: Well, what our evidence was, was that Appendix 881, and that is where we, again, showed the code that [00:09:08] Speaker 00: performs this function, the packing function. [00:09:13] Speaker 00: And what we told the district court was that packing is taking the object name and attributes out of the request object that comes from the application and sticking them into a query object that is sent then to the second adapter. [00:09:35] Speaker 03: Now, here's what I don't understand. [00:09:36] Speaker 00: Sure, Your Honor. [00:09:37] Speaker 03: I don't understand in the claim construction with regard to packing. [00:09:41] Speaker 03: I mean, bundling is packing. [00:09:48] Speaker 03: So did the district court, when he added the manipulation in, accept the idea that bundling is manipulating the data? [00:09:56] Speaker 03: Or is it your belief that his importation, I assume it's a hem, I didn't look, is it a hem? [00:10:02] Speaker 00: Yes. [00:10:03] Speaker 03: His importation of manipulation eliminated the idea that bundling could amount to packaging. [00:10:10] Speaker 00: I think that's exactly correct, Your Honor. [00:10:12] Speaker 03: So your view is when he added the word manipulation, he now is requiring a change in the data, not a reorganization of the data. [00:10:19] Speaker 00: Yes. [00:10:19] Speaker 00: His understanding, I think, of manipulation is it's more than simply arranging existing data. [00:10:24] Speaker 00: It requires manipulation of its form. [00:10:26] Speaker 00: And that is contrary to an example in the patent that's expressly provided. [00:10:31] Speaker 00: and that we cited to the district court at column 10, lines 5 through 10. [00:10:37] Speaker 00: And there what the patentee said is because the first adapter packs object requests as a single API call returning a single complex result, then it reduces a network latency. [00:10:53] Speaker 00: So this is an example of packing where you take multiple requests for data from an application and you bundle them together. [00:11:00] Speaker 00: Now, you're not going to leave data out of that, because then you might not get the data that you want from the database. [00:11:06] Speaker 00: So bundling is a form of manipulation. [00:11:08] Speaker 02: But I guess I keep going back to the court's original claim construction, which you haven't appealed. [00:11:14] Speaker 02: And that claim construction described packing as including compacting, reordering, otherwise manipulating for various purposes. [00:11:21] Speaker 02: The original claim construction [00:11:23] Speaker 02: had that contemplation in it. [00:11:25] Speaker 02: Whether that claim construction's right or wrong is a different question. [00:11:28] Speaker 02: But you haven't appealed the claim construction. [00:11:30] Speaker 00: Right. [00:11:31] Speaker 00: That was a gloss that the district court put on the claim construction. [00:11:34] Speaker 02: At the time of the claim construction. [00:11:37] Speaker 00: Yes. [00:11:37] Speaker 00: But what it said is that packing could involve manipulation. [00:11:42] Speaker 00: It didn't say that it must involve manipulation. [00:11:46] Speaker 00: And that was in the context of rejecting Oracle's requirement that there be translation involved. [00:11:52] Speaker 00: So you actually have to take the data and translate it into some other data. [00:11:56] Speaker 00: And the district court said no. [00:11:58] Speaker 00: There could be other forms of packing. [00:12:01] Speaker 00: And they could involve manipulation. [00:12:03] Speaker 00: But he didn't say that they must involve manipulation. [00:12:07] Speaker 00: And the second point the court said was that, well, you haven't told us that it's for the purpose of communication. [00:12:12] Speaker 00: And yes, we certainly did. [00:12:14] Speaker 00: And that's at appendix 0348 to 49, where Dr. Jagadish says, look, we're not changing the data value. [00:12:22] Speaker 00: But we are putting data in a form in which it's expected for the downstream components. [00:12:27] Speaker 00: The second adapter can't process the object request from the application. [00:12:34] Speaker 00: It can only process a query object. [00:12:37] Speaker 00: And that's what we do. [00:12:38] Speaker 00: We take the name and attributes out of the object request, and then we put it in the query object. [00:12:44] Speaker 03: Can we enter your rebuttal time? [00:12:45] Speaker 03: Would you like to save the remainder? [00:12:47] Speaker 00: You know, I'd like to briefly address one last point. [00:12:50] Speaker 00: It addresses the last two of the limitations, unpacking and instantiating. [00:12:56] Speaker 00: I think this is a really straightforward issue. [00:12:58] Speaker 00: It's a misunderstanding of the evidence that we put forward that I think was propagated by Oracle. [00:13:05] Speaker 00: We submitted a claim chart, which I've shown the Court. [00:13:08] Speaker 00: And it has the portions of the structure of the program, which we contend constitute the first adapter and perform the functions [00:13:17] Speaker 00: And they're all there in a standard claim chart. [00:13:19] Speaker 00: You have the limitation and then followed by the structure that constitutes it. [00:13:24] Speaker 00: Oracle came in and said, ignore all that. [00:13:27] Speaker 00: The only thing that they call the first adapter is the entity manager component. [00:13:35] Speaker 00: Ignore everything else. [00:13:36] Speaker 00: And we said, well, wait a minute. [00:13:38] Speaker 00: Dr. Jagadish said, look. [00:13:41] Speaker 00: You're trying to say that that's all I'm talking about in paragraph 76 of his declaration at appendix 349. [00:13:48] Speaker 00: And then in paragraph 7, he said, I don't limit myself to entity manager. [00:13:52] Speaker 00: I identified all of the components in my claim chart. [00:13:59] Speaker 00: And then he cited to the claim chart. [00:14:00] Speaker 00: And then there's paragraph 78 that the district court relied on, and there he said, [00:14:05] Speaker 00: In there, I cited JPA's Entity Manager, Toplix JPA Entity Manager, Toplix Entity Manager, IMPL, and other components. [00:14:11] Speaker 00: He wasn't defining all of them. [00:14:13] Speaker 00: He had cited them in his claim chart. [00:14:17] Speaker 00: He was merely saying, I disagree with Dr. Jagadish's attempt to narrow. [00:14:21] Speaker 00: So if you go to these other limitations, the remaining two, unpacking, the district court said, you say that value from row unpacks. [00:14:29] Speaker 00: Well, that isn't one of the three things that you said was the first adapter. [00:14:33] Speaker 00: That's not true. [00:14:34] Speaker 00: It is. [00:14:35] Speaker 00: And you can find it at 887. [00:14:37] Speaker 00: We did say that in the appendix. [00:14:40] Speaker 00: Same thing for instantiating. [00:14:41] Speaker 00: We said it's the object builder, and it's build new instance method. [00:14:45] Speaker 00: And the district court said that's not one of the three. [00:14:48] Speaker 00: And in fact, it was one of the structures that we pointed to at appendix 889 and 892. [00:14:55] Speaker 00: And I'll reserve my last 55 seconds for robotic. [00:14:58] Speaker 03: Thank you. [00:14:59] Speaker 03: Mr. Moore. [00:15:00] Speaker 00: Thank you, Your Honor. [00:15:09] Speaker 01: May it please the court? [00:15:10] Speaker 01: False arguments below and before this court ignore one critical, undisputed factual point in how the accused TopLink software works. [00:15:18] Speaker 01: TopLink does not extract information out of an object. [00:15:22] Speaker 01: In each instance, either from one or two, Your Honor, it never extracts information out of an object. [00:15:29] Speaker 01: Everything thought has identified is itself an object. [00:15:32] Speaker 03: It takes an object name from entity class, right? [00:15:36] Speaker 03: Isn't that what the entity class, I think it's called? [00:15:38] Speaker 01: No, Your Honor, what's undisputed is that entity class itself is an object. [00:15:43] Speaker 01: Primary key itself is a separate object. [00:15:46] Speaker 01: And what TopLink does is copies those entire objects and passes them along the different components in the chain until it gets to the database. [00:15:54] Speaker 01: And that's fundamentally different from the 197 patent, which in claim three, for example, [00:15:59] Speaker 01: You've got to, at this first adapter gateway, before you even get to the second adapter, let alone to the database, you've got to extract stuff out of an object, a singular object. [00:16:09] Speaker 01: And what's the stuff you've got to extract? [00:16:11] Speaker 01: You've got to extract a name and attributes at least. [00:16:15] Speaker 01: And why do you have to extract that out? [00:16:17] Speaker 01: Because you've got to packet this data. [00:16:19] Speaker 02: So couldn't you, quote, extract the entirety of the object and just then still have the information you need and packet after the fact? [00:16:30] Speaker 01: Your honor, that would not be extracting from an object, and that's what the claim explicitly requires. [00:16:35] Speaker 01: Extract object name and object attributes from an object, which both parties agree must be a singular object. [00:16:42] Speaker 01: Everything thought points to, even it's this newly minted request object that its expert tries to concoct out of whole cloth. [00:16:49] Speaker 01: All of that relies on the entity class object and the primary key object being copied and passed along. [00:16:56] Speaker 01: That's what is put into this query object. [00:16:58] Speaker 01: are the other two objects. [00:17:01] Speaker 01: And so merely putting them into another container does not extract information out of them, let alone pack it. [00:17:07] Speaker 01: And why does the patent say we want to extract and pack data? [00:17:11] Speaker 01: It's to improve performance. [00:17:12] Speaker 01: For example, reduce network latency. [00:17:15] Speaker 01: This patent was filed for in the late 90s when the internet was burgeoning. [00:17:18] Speaker 01: And so it gives an example. [00:17:19] Speaker 03: The more stuff you pull out, the more data it takes up, the more memory it takes up, the more space and time it takes to pass it along. [00:17:26] Speaker 03: So extracting is pulling a subset. [00:17:28] Speaker 01: Precisely. [00:17:29] Speaker 03: I have four kids. [00:17:29] Speaker 03: I extract one, life is easier. [00:17:32] Speaker 01: Well. [00:17:34] Speaker 01: I won't tell you which one. [00:17:35] Speaker 01: And you wouldn't extract all four, because that wouldn't be extracting, right? [00:17:37] Speaker 01: You wouldn't extract the entirety of them. [00:17:39] Speaker 01: That's the point. [00:17:40] Speaker 01: And that's exactly right, Your Honor, in that analogy. [00:17:43] Speaker 02: Now, assuming that there were extraction, so assuming that we found that you could still take information from the whole object, let's talk about the manipulation issue. [00:17:55] Speaker 02: Sure. [00:17:56] Speaker 02: Do you believe that the court's interpretation would, at this point, read out the possibility of just putting them together in one database? [00:18:10] Speaker 01: I don't believe so, Your Honor. [00:18:11] Speaker 01: But the key point is that's not what is done in TopLink. [00:18:16] Speaker 01: So the one point where we don't disagree that merely arranging data could still be considered packing. [00:18:22] Speaker 01: So in other words, if you were to reorder data to make it more efficient to transmit, [00:18:27] Speaker 01: That could, I think, be considered manipulation. [00:18:29] Speaker 03: You pull together all the names, you put them in one place, and the attributes somewhere else, or whatever. [00:18:35] Speaker 03: You bundle data. [00:18:36] Speaker 01: Again, you're creating efficiency, but the key point is, but that's not what TopLink does. [00:18:42] Speaker 01: What TopLink does is take objects as they've always existed, and simply put them in another container, and the two objects are still there. [00:18:49] Speaker 01: The entity class and the primary key objects are still there as two separate objects. [00:18:54] Speaker 01: They're not bundled. [00:18:55] Speaker 01: They're not packed together. [00:18:56] Speaker 02: Is TopLink the only Oracle product that is alleged to infringe? [00:19:02] Speaker 01: Your Honor, there's also a product named EclipseLink, which is essentially an open source version of TopLink. [00:19:07] Speaker 01: But the parties have treated them all. [00:19:08] Speaker 01: And there are also various versions of TopLink that are at issue. [00:19:11] Speaker 01: But essentially, the parties don't, for purposes of appeal, don't rely on distinctions between the products. [00:19:17] Speaker 01: They work in the same way. [00:19:18] Speaker 01: And the reason is they don't have this first and second adapter structure. [00:19:23] Speaker 01: which requires extracting data out of an object. [00:19:26] Speaker 01: Instead, they just pass the object along, the component, until it gets to the database. [00:19:30] Speaker 01: And that's very different from the 197 pattern, which says at the front end, when you're still dealing with the object application, before you even go onto the middleware, let alone the database, you've got to extract information out, pack it as data, send it to this separate second adapter component. [00:19:45] Speaker 01: And that's what TopLink doesn't do. [00:19:47] Speaker 01: Now, Thought has tried to read that onto TopLink, and that is, I think, what has created the difficulty [00:19:52] Speaker 01: that it's found itself in with respect to the first adapter claim elements because it's tried to identify a component here, a component there that might relate to somehow an alleged first adapter. [00:20:04] Speaker 01: But the core undisputed fact that the parties don't dispute, even Dr. Jagadish does not dispute that data is not pulled out of entity class. [00:20:12] Speaker 01: Data is not pulled out of primary key. [00:20:15] Speaker 01: Those are separate objects. [00:20:16] Speaker 03: And does that, you're back to the extracting question. [00:20:19] Speaker 03: So does that resolve the entire case? [00:20:21] Speaker 03: Do I need to agree with you that the District Court got it right on packing if I agree with you on extracting? [00:20:29] Speaker 01: No, Your Honor. [00:20:30] Speaker 01: And actually, Mr. Carlson has to go five for five because there are two independent grounds on extracting that the District Court ruled in our favor. [00:20:38] Speaker 01: So we believe there are actually five separate grounds here that he would have to show error. [00:20:42] Speaker 01: We don't believe he can show any. [00:20:43] Speaker 01: But you're right. [00:20:44] Speaker 01: If you agree with me on [00:20:45] Speaker 01: either extracting issue, or packing, or either first adapter issue, then the result should here be an affirmance. [00:20:52] Speaker 02: Meaning the court said that it had to come from, that the information had to come from a single object, right? [00:21:01] Speaker 01: That's one issue, yes. [00:21:04] Speaker 01: Exactly. [00:21:05] Speaker 01: We can't just copy a whole object and pass it along. [00:21:07] Speaker 01: We've got to pull something out of it under the plain and ordinary meaning of extracting. [00:21:11] Speaker 01: So those are really two separate issues. [00:21:12] Speaker 01: And they try to get around them [00:21:14] Speaker 01: having their expert coin what he calls this request object or what he says in the gray brief as a parameters object. [00:21:22] Speaker 01: But all that is is what he's done is saying, well, here's a method called find. [00:21:26] Speaker 01: And it has a template of maybe five or six variables that can be input into the method. [00:21:30] Speaker 01: And so I'm going to name that a class because it's a template. [00:21:34] Speaker 01: And that, Your Honor, is simply out of whole cloth, as I said. [00:21:37] Speaker 01: There's nothing that says a class is a template in the judge's construction. [00:21:42] Speaker 01: A class is not even actually a claim term. [00:21:44] Speaker 01: And there's nothing in the software critically that says that this fine method creates a class. [00:21:50] Speaker 02: Classes aren't just... What about all this data that's being referred to in Dr. Jagadish's report? [00:21:57] Speaker 02: I mean, obviously summary judgment is a difficult thing because there has to be no material issue of fact. [00:22:03] Speaker 02: Are you saying that it does even create a fact question? [00:22:07] Speaker 01: That's correct, Your Honor, because all that source code, while it may be difficult to read and understand, and it certainly is voluminous, it doesn't change what was undisputed. [00:22:14] Speaker 01: They have never said, and they can't point to any evidence, that TopLink pulls anything out of the energy class object or the primary key object. [00:22:22] Speaker 01: And so that's why they've tried to abstract it a level higher and say, well, this find method, that's really an object on its own. [00:22:28] Speaker 01: But objects and classes are defined in software. [00:22:31] Speaker 01: They're not simply found after the fact. [00:22:33] Speaker 01: that you don't go on a hunting expedition to find, then let me name some classes. [00:22:37] Speaker 01: They're defined in the software. [00:22:38] Speaker 01: They have not pointed to anywhere in TopLink that defines the find method as a class of which an instance could be this hypothetical object that contains the two other objects. [00:22:48] Speaker 01: And more critically than that, the claim clearly requires that the object name and attributes be extracted from an object, which both parties agree is a singular object. [00:22:59] Speaker 01: And so even if you had this overarching find method objects, [00:23:03] Speaker 01: and within it there were two or more underlying objects, entity class and primary key. [00:23:09] Speaker 01: All thought is saying in all this mountain of evidence is that you're copying the entity class and primary key objects and putting them in the query object. [00:23:19] Speaker 01: That is not extracting information out of either this alleged object at the top or the two underlying objects. [00:23:27] Speaker 01: You're simply copying passing along objects, which again is antithetical [00:23:31] Speaker 01: to the 197 patent invention, which says you've got to extract from the object. [00:23:35] Speaker 01: And that's where what thought alleges to be the name and attributes are found. [00:23:41] Speaker 01: The name allegedly is in entity class, the attributes allegedly is in primary key. [00:23:46] Speaker 01: Thought doesn't argue, even when it invents this, what it now calls a parameters object that it calls an instance of the find method class, it doesn't argue that the underlying name and attributes are actually in that parameters object, [00:23:59] Speaker 01: It still concedes that they're in the underlying entity class and primary key objects that are copied and passed along. [00:24:04] Speaker 01: Nothing is taken from them. [00:24:07] Speaker 01: I think that's all I have on extracting, unless there's any more questions on that. [00:24:11] Speaker 01: I did want to just very briefly address one point on packing, go back to that, and just to point to another undisputed fact that Dr. Jagadish, our expert, concedes. [00:24:25] Speaker 01: This is at appendix 348 and 349. [00:24:29] Speaker 01: And this is, as I say, where he's conceding that in this query object, what happens with the query object, that there's no change in the underlying data. [00:24:40] Speaker 01: He admits that essentially putting these two other objects, energy class and primary key, in a query object [00:24:48] Speaker 01: quote, does not necessarily dictate a change in data. [00:24:52] Speaker 01: And that's in his summary judgment declaration. [00:24:54] Speaker 01: And I think if you look at the claim and the district court's construction of that claim, that's what is required. [00:25:00] Speaker 01: And this, just so we're clear where this is, this is on the very bottom of page 348, very top of 349. [00:25:06] Speaker 01: So it's placing the necessary information where it's expected within those data structures does not necessarily dictate a change in the data. [00:25:14] Speaker 02: Right, but that's their point. [00:25:15] Speaker 02: They're saying it doesn't have to change. [00:25:17] Speaker 02: The data doesn't have to change. [00:25:19] Speaker 01: Well, but something has to be done to the data, even rearranging it. [00:25:23] Speaker 01: If you're just taking two objects in the way they existed before, entity class and primary key, and putting them in another container as the way they before, that is not packing the data. [00:25:34] Speaker 01: And that's what the district court's construction, which they do not appeal, requires is [00:25:39] Speaker 01: Placing data into a form to make it suitable for communication. [00:25:43] Speaker 01: Placing data. [00:25:44] Speaker 03: Why isn't it packing? [00:25:46] Speaker 03: So what that they transfer everything. [00:25:48] Speaker 03: I understand your point on pulling out everything. [00:25:50] Speaker 03: It doesn't comport with the word extracting. [00:25:52] Speaker 03: But why doesn't it comport with the word packing? [00:25:55] Speaker 03: You pack all your underwear in the suitcase. [00:25:57] Speaker 03: You pack all your shirts in the suitcase. [00:25:59] Speaker 03: You pack all your shorts in the suitcase. [00:26:01] Speaker 03: You have now bundled. [00:26:02] Speaker 03: You have packed your clothes. [00:26:04] Speaker 03: The fact that you packed all the ones that you own doesn't change the fact that you packed them. [00:26:08] Speaker 01: Well, Your Honor, I think the critical distinction is due to the district court's construction, because the district court's construction is placing the data into a form that makes it suitable for communication. [00:26:18] Speaker 01: And that's what the parties agreed was the requirement of packing, is changing or placing the data into a form. [00:26:25] Speaker 01: Right. [00:26:25] Speaker 03: You move all that stuff, and you put it in your suitcase. [00:26:27] Speaker 03: Here, they moved it all to somewhere else. [00:26:30] Speaker 01: But the form of the data has not changed at all. [00:26:33] Speaker 01: The data is the same. [00:26:33] Speaker 03: Sure it has. [00:26:34] Speaker 03: It's now a compilation of all of this data. [00:26:38] Speaker 01: Well, Your Honor, unfortunately, real world analogies aren't always perfect here because this is the digital world. [00:26:44] Speaker 01: I think, again, if you look back at the purpose of the 197 path. [00:26:47] Speaker 03: I actually think this analogy is exactly on point. [00:26:49] Speaker 03: I don't see any ground between the digital world and the tangible world here. [00:26:54] Speaker 03: I mean, all of the object names, all of the attributes, whatever, you put them in somewhere else, a new file for purposes of transmission together, you've now collected things together that you think ought to be packaged and bundled together and sent together. [00:27:10] Speaker 03: I don't see why that wouldn't meet the packing. [00:27:13] Speaker 03: At least it created a question of fact, at a minimum. [00:27:15] Speaker 01: So, Your Honor, I think the distinction is, are you packing the container, or are you packing the data? [00:27:20] Speaker 01: And what the claim requires is, and the construction requires, is packing the data, which is [00:27:24] Speaker 01: doing something. [00:27:24] Speaker 01: Otherwise, why have this packing language in the claim at all? [00:27:28] Speaker 01: If all you're doing is taking the data as it previously existed. [00:27:30] Speaker 03: You're bundling it with other stuff. [00:27:32] Speaker 03: And your honor, you can't just pass it as it previously existed. [00:27:35] Speaker 03: You can't just take it from one place to the other, leave it there, add nothing to it, subtract nothing from it. [00:27:39] Speaker 03: But what they've done is they've packed it together with other stuff. [00:27:42] Speaker 01: Your honor, actually, I don't think that's right. [00:27:43] Speaker 01: All they've done is set it into another object in the way it was before, in the same object, the same data. [00:27:48] Speaker 03: This is the manipulation problem. [00:27:50] Speaker 03: I have a problem with the extent that you think the data has to be manipulated. [00:27:53] Speaker 03: I don't think that that's a requirement of packing. [00:27:56] Speaker 02: Well, as I said... It's an effective extraction argument because if there isn't something extracted, then there's nothing to pack. [00:28:03] Speaker 01: That's also true, Your Honor. [00:28:05] Speaker 01: And that's why we briefed extracting first. [00:28:08] Speaker 01: We think that is the clearest ground to affirm. [00:28:11] Speaker 01: I do want, in my last two minutes, briefly, if I may address the first adapter, those two points on unpacking and instantiating. [00:28:17] Speaker 01: The problem here is really that thought failed. [00:28:21] Speaker 01: When we move for summary judgment, there's notice to be the onus has been on thought to come forward with evidence showing there's an issue of fact. [00:28:27] Speaker 01: And so we clearly said, hey, the first adapter must perform these limitations. [00:28:33] Speaker 01: It doesn't do it. [00:28:34] Speaker 01: All they've identified is these three components that are appendix 0350. [00:28:39] Speaker 01: That's Dr. Jagadish's summary judgment declaration at paragraph 78. [00:28:43] Speaker 01: And then vaguely said other functions and other packages. [00:28:47] Speaker 01: What they want to say now is that anything in their 6,700 page expert report and claim charts is fair game for First Adapter. [00:28:54] Speaker 01: But we know that's not true. [00:28:55] Speaker 01: And why do we know that's not true? [00:28:57] Speaker 01: If you look at appendix 0886, this is one page of those claim charts. [00:29:03] Speaker 01: We're under the claim element about what the First Adapter does in unpacking and instantiating. [00:29:08] Speaker 01: And among the many, many, many different components and methods cited in that section of the claim chart at 886 is the database accessor. [00:29:17] Speaker 01: That's the third full paragraph right at the beginning there. [00:29:20] Speaker 01: It says the database accessor class. [00:29:23] Speaker 01: So if thought is right that everything within these thousands of pages of claim charts is fair game for first adapter being a part of the first adapter, then that must include database accessor. [00:29:33] Speaker 01: Well, is that right? [00:29:35] Speaker 01: No, because if we go back to Appendix 350 and look at Dr. Jagadish's declaration, paragraph 78 again, he clearly says the detailed proofs also identify database call and database accessor [00:29:47] Speaker 01: with the second adapter, not the first. [00:29:50] Speaker 01: So right smack in the middle of their claim chart are second adapter components. [00:29:54] Speaker 01: How is the district court to tell what's the first and what's the second from this mishmash of thousands of pages of components recited in a laundry list, especially when some of them are in the second adapter? [00:30:06] Speaker 01: And that's why the district court was right to hold them to the statements in Dr. Jagadish's declaration and show that they did not adequately identify the components. [00:30:13] Speaker 01: Thank you, Your Honor. [00:30:24] Speaker 00: I really have only a couple points that I wanted to make and that have to do with extracting. [00:30:32] Speaker 00: One is that none of the experts, and certainly not Mr. Moore, have pointed to anything in the definition of an object that says that it can't be comprised of other objects. [00:30:47] Speaker 00: There's nothing in the definition that prohibits that. [00:30:49] Speaker 00: What it must be is a singular instance of a class. [00:30:52] Speaker 00: And that is what we showed in Dr. Jagadish's evidence. [00:30:58] Speaker 00: And then the second point about there being thousands of pages of claim charts, they're all divided by limitation. [00:31:08] Speaker 00: And the structure that constitutes the first adapter that satisfies the limitation, it's there in the claim chart. [00:31:15] Speaker 00: It's a standard way in patent cases to present evidence. [00:31:18] Speaker 00: and everyone knows how to use them. [00:31:20] Speaker 00: They're inherently indexed and that's all the time I have. [00:31:23] Speaker 03: Thank you.