[00:00:00] Speaker 00: And good morning. [00:00:01] Speaker 00: The first argued case this morning is number 17, 2187, Automation Middleware Against Convincing Systems. [00:00:10] Speaker 00: Mr. Powers. [00:00:19] Speaker 01: May it please the Court. [00:00:21] Speaker 01: There are two issues raised by this appeal. [00:00:23] Speaker 01: The first is whether software claims require the incantation of magic words to make them patentable subject matter. [00:00:30] Speaker 01: magic words such as a computer readable medium containing instructions two or something like that in the context of a system claim. [00:00:38] Speaker 02: I mean, isn't that what our precedent requires? [00:00:41] Speaker 02: I mean, there are cases that say that very specifically that I think we're bound by. [00:00:46] Speaker 02: I mean, to the extent you're frustrated, I share the frustration that when you say software, it doesn't inherently suggest that it's going to be done on a computer. [00:00:56] Speaker 02: But as long as that's the precedent, we can't do anything about it. [00:01:00] Speaker 01: I think the Atrix case is the case that provides sanity to that otherwise ambiguous law. [00:01:05] Speaker 02: Yeah, but I don't know that it's all that ambiguous. [00:01:08] Speaker 02: There are some pretty clear statements from this court earlier than Atrix that suggest, I mean, they say pretty much that you can't patent those kinds of things unless it's done as a process claim, which you don't have, or unless it's connected to [00:01:24] Speaker 02: computer readable mediums. [00:01:27] Speaker 01: Your honor is absolutely correct that Digitech, for example, which is one of the leading cases on that subject, states those words in unambiguous terms, but not in the context of a software case. [00:01:40] Speaker 01: Digitech, Newton, were data claims and signal claims. [00:01:45] Speaker 01: And in fact, Digitech expressly distinguished software in finding that the data claims that issued there [00:01:53] Speaker 01: were not patentable subject matter because they had no physical or tangible medium. [00:01:57] Speaker 01: So I do not think those statements are unambiguous in the context of a software claim because A, they did not address a software claim and Digitech in particular, which is the leading case I think that your honor is referring to expressly distinguish software claims from the data claims at issue in that case. [00:02:16] Speaker 01: And so I think in that context, when you then add Enfish and Atrix into the mix, [00:02:23] Speaker 02: I think that Enfish didn't say anything about this. [00:02:26] Speaker 02: I understand why you're citing it. [00:02:27] Speaker 02: I'm very familiar with Enfish. [00:02:29] Speaker 02: But I mean, this question didn't arise in Enfish. [00:02:32] Speaker 02: So I guess you're saying we implicitly must have meant that, but that can't be good enough. [00:02:38] Speaker 01: No, it's not good enough. [00:02:40] Speaker 01: And we're not suggesting that Enfish held that. [00:02:43] Speaker 01: There is language in Enfish that is inconsistent with the all-voice case and the idea that Digitech applies to software. [00:02:50] Speaker 02: Sure, I get that. [00:02:52] Speaker 02: But I mean, to the extent [00:02:53] Speaker 02: Enfish is inconsistent with earlier precedent and that part of it is just wrong. [00:02:58] Speaker 01: True, but the earlier precedent was not in the context of software. [00:03:02] Speaker 01: And in fact, Digitech, as I say, expressly distinguish software. [00:03:05] Speaker 01: So I do not think there's an argument that Digitech controls over Atrix, for example, because of the seemingly broad language in a different context. [00:03:15] Speaker 01: And I think Atrix, unlike Enfish, I agree with your honor, Enfish was not squarely presented with the issue and did not squarely decide it. [00:03:23] Speaker 01: But it is consistent with the suggestion in Digitech that software is different from data and signals. [00:03:30] Speaker 01: And it is highly consistent with Atrix where the issue was squarely presented and squarely decided. [00:03:37] Speaker 01: And the issue in Atrix was exactly this, whether in fact software should be treated the same as data or signals or differently. [00:03:46] Speaker 01: And Atrix held that because data processing system which clearly requires a computer operating [00:03:53] Speaker 01: as there's no basis, I think. [00:03:56] Speaker 02: But did the claims in Atrix, I haven't read the claims in Atrix, did the claims in Atrix recite that computer readable medium? [00:04:04] Speaker 01: They did not. [00:04:05] Speaker 01: And that's exactly the point. [00:04:06] Speaker 01: The Atrix claims hadn't, the holding in Atrix was implicitly there's a computer operating software. [00:04:14] Speaker 01: It must be to be operating. [00:04:16] Speaker 01: So in that sense, it's exactly identical to the claims here. [00:04:19] Speaker 01: There is one sense in which the Atrix claims differed slightly from here, but not materially. [00:04:24] Speaker 01: The Atrix court fairly read, I think, held that these were software claims which required a computer operating software, although the claims did not explicitly require that on its face in hyperbola. [00:04:39] Speaker 01: But it also had, for example, something that implicitly required a viewer, which would presumably be something tangible as well, and the Atrix court [00:04:48] Speaker 01: said that the presence of the implied presence of a computer operating software, which is no different from this case, and if you were required an assumption... I don't want to cut you off, but I'm frankly more interested in hearing your arguments on what I assume is your second point about why this is an abstract idea. [00:05:05] Speaker 01: I think that's the more interesting argument, but I'm happy if the court has any... I want to ask you a few questions. [00:05:11] Speaker 03: Yes. [00:05:12] Speaker 03: First, do you contest the district court's treatment of [00:05:17] Speaker 03: 236 patents claim 1 and 897s claim 17 and 543s claim 1 as representative. [00:05:25] Speaker 01: I think 236 claim 1 is representative. [00:05:33] Speaker 03: Let me just take you to preemption for a minute. [00:05:35] Speaker 03: Yes. [00:05:38] Speaker 03: AMS pled broad preemption and its complaints and an oral argument [00:05:44] Speaker 03: It conceded in response to questioning from the district court that the only way to avoid infringement is to not use translation and motion control. [00:05:56] Speaker 03: Given the record below, how do you deny preemption? [00:06:01] Speaker 01: I think that's not a fair overall complete record of the record below. [00:06:06] Speaker 01: Because I think what at least defendants or appellees argue was an argument of complete preemption. [00:06:13] Speaker 01: was an argument that said, if you practice the standard, you will infringe. [00:06:18] Speaker 01: And therefore, everyone who practices the standard, as they all do, must infringe. [00:06:22] Speaker 01: That does not mean that the standard is the only way to have a middleware layer. [00:06:26] Speaker 03: Can you provide an example of a motion control process where the active step of translation between one software language to another isn't employed? [00:06:39] Speaker 01: Of course. [00:06:40] Speaker 01: The key limitation in this [00:06:42] Speaker 01: claim, and this goes to the argument on Alice step one, is whether we are claiming abstractly the idea of a middleware layer that translates from the application layer down below. [00:06:53] Speaker 01: And if we did, I think that would fall squarely within this court's precedence of being an abstract idea. [00:06:58] Speaker 01: What 236 claim one requires is a particular construct of that middleware layer. [00:07:04] Speaker 01: And the particular construct is one that is divided into so-called primitive operations and so-called non-primitive. [00:07:11] Speaker 01: Those are just words. [00:07:13] Speaker 01: I think more than words is a specific construct of that layer. [00:07:16] Speaker 01: And defendants attempt to lampoon that construct by saying, well, some of those is all commands, which is true, but so would dividing them A through M and N through Z. Right. [00:07:28] Speaker 01: But this is different because they are particular types of commands, the result of that construct having particular effects that were not present in the prior art. [00:07:36] Speaker 01: Primitive commands are those that are the basic commands that every motion control apparatus must do. [00:07:43] Speaker 01: move to the right one, move to the left one, move up one, move down one, those kinds of basic commands that everything must do. [00:07:50] Speaker 01: The non-primitive commands are ones that might or might not be supported by a particular apparatus. [00:07:56] Speaker 01: And the example that's given in the specification is, I think, perfect. [00:08:00] Speaker 01: And that's the example of doing a curve. [00:08:02] Speaker 01: And the whole point of this invention is that you have a factory floor that may have 20 different devices with 10 different manufacturers, [00:08:11] Speaker 01: all of which have different software and drivers and different abilities. [00:08:15] Speaker 01: So let's say you have one device that is specifically programmed to do a curve, or what they call a contour, and another one which is not. [00:08:24] Speaker 01: If the person sat up typing into their application program on the first one to do curve, it would do a curve. [00:08:31] Speaker 01: If you did that with the second one, it would say error, because it cannot do a curve. [00:08:36] Speaker 01: What the non-primitive construct in the claims permits [00:08:41] Speaker 01: is for that second one, which doesn't support a curve, to do a curve by a pre-programmed series of up and down and sideways motions that will approximate a curve. [00:08:51] Speaker 01: So that second device is now capable of doing a curve where it was not before. [00:08:56] Speaker 00: How does it become capable? [00:08:59] Speaker 00: Where is the program? [00:09:01] Speaker 00: Where is the coding? [00:09:02] Speaker 01: Well, the code is in the 80-page appendix to the patent. [00:09:06] Speaker 01: There's a 78-page appendix to the patent. [00:09:11] Speaker 01: Yes, 78 pages. [00:09:15] Speaker 03: What in there specifically describes the claimed improvement? [00:09:20] Speaker 01: I can't cite you to the particular source code that does that, but that is source code that is from the client that was the source code that implements the invention. [00:09:30] Speaker 03: You're talking about the contour, translating it for something that doesn't do a contour. [00:09:37] Speaker 03: Yes. [00:09:37] Speaker 03: What in there does that? [00:09:39] Speaker 01: I can't tell you. [00:09:40] Speaker 01: But I can tell you that specific... Black box. [00:09:42] Speaker 01: Pardon? [00:09:43] Speaker 01: Black box. [00:09:46] Speaker 01: It's not a black box. [00:09:47] Speaker 01: I mean, the black box cases that your honor is used to dealing with are cases where there's... I know. [00:09:51] Speaker 01: There's a black box. [00:09:52] Speaker 01: There's a very skinny spec with no software, no source code, no nothing. [00:09:56] Speaker 01: It's three or four paragraphs. [00:09:58] Speaker 01: And this court is rightly skeptical of the contribution of that specification to the Useful Arts. [00:10:04] Speaker 03: But there's a punchline to a joke my dad used to tell, which is, it's in there somewhere. [00:10:09] Speaker 03: Why don't you find it? [00:10:11] Speaker 01: The issue was not joined below, so I can't tell you where in 78 pages of source code the particular part to do a curve is. [00:10:19] Speaker 01: But the fact that there's 78 pages of actual source code, this isn't just made up. [00:10:22] Speaker 01: This is the source code that was used to implement the invention. [00:10:27] Speaker 01: That's a real contribution that's different from the very skinny specifications that this court has rightly been skeptical of. [00:10:34] Speaker 01: That's a very different animal in terms of what it's contributing to the useful arts. [00:10:39] Speaker 01: But more to the point, to answer your honor's question, [00:10:41] Speaker 01: The way the software does that is by when you are programming curve for that second device that otherwise does not support a curve, where in the prior you would get error, it instead programs a series of left to right and up and downs that will approximate a curve. [00:11:01] Speaker 01: That's the non-primitive operations that are referred to in the claims. [00:11:05] Speaker 01: And it's in the claims, it's very clearly in the specification, so it's not [00:11:10] Speaker 01: a black box, and it's a logical way of approximating that. [00:11:15] Speaker 02: I think the hard part, and this is a very difficult case, at least for me, is we have a line of cases that I'm sure you're familiar with that basically says if what you're claiming is purely a functional result, that's equivalent to an abstract idea and it's not patent eligible. [00:11:31] Speaker 02: And in order to get it patent eligible, you have to actually show us how to do that functional result, at least in some minimal way. [00:11:40] Speaker 02: I mean, Infish was pretty minimal. [00:11:41] Speaker 02: The algorithm there was no more than two or three steps. [00:11:45] Speaker 02: But at least it told you what to do. [00:11:48] Speaker 02: It's hard to read this claim, particularly for somebody that doesn't know much about computer engineering or things like that. [00:11:58] Speaker 02: It seems pretty functional in one way. [00:12:01] Speaker 01: if the claim had merely said, as the specification does in a part, to permit devices to do what they otherwise could not do. [00:12:09] Speaker 02: So you agree that if this claim was written as a software application that can translate between one machine to a bunch of different motion control devices, that that would be ineligible? [00:12:24] Speaker 02: Because it would be claiming merely the notion of translation. [00:12:27] Speaker 01: I agree that would not pass step one. [00:12:29] Speaker 01: Step two would, of course, be a separate question, depending on what else was in the claim. [00:12:33] Speaker 01: I agree that would not pass step one. [00:12:35] Speaker 01: I think it's clear. [00:12:35] Speaker 01: I don't think there's a reasonable question as to that. [00:12:38] Speaker 02: But what's added at this point... Can you go back to this one? [00:12:41] Speaker 02: And I think it's partly what you've been talking about, but tell me specifically what in the claim, and if you have support in the specification, transforms it from that purely functional result to it tells me how this is done, which is what makes it patent eligible. [00:12:55] Speaker 01: It's the primitive, non-primitive addition. [00:12:57] Speaker 01: So that is a way. [00:12:58] Speaker 01: That's not a result. [00:13:00] Speaker 01: That's a way. [00:13:01] Speaker 01: And this court's decisions are quite clear that if you're merely, as your honor says, if you're merely claiming a result and not teaching a specific method, and this is a specific method, you could have different constructs on how to do motion control apparatus. [00:13:13] Speaker 01: You could have one that only supported primitive, for example. [00:13:18] Speaker 01: That would do different things and have different capabilities. [00:13:20] Speaker 00: It would clearly be... Your opponents criticize the creation of the terms primitive and non-primitive. [00:13:27] Speaker 00: Tell us. [00:13:28] Speaker 00: What happens between them? [00:13:30] Speaker 00: What these terms just mean? [00:13:32] Speaker 01: Primitive means, it is defined in the specification and the claims even, it's an operation that is a basic operation of any motion control apparatus that can't be mimicked by some other motion. [00:13:47] Speaker 01: So for example, move up one, move sideways one, something that is the most basic elemental motions that any motion control apparatus must do. [00:13:56] Speaker 01: And so those are sort of the building blocks. [00:13:59] Speaker 01: And so every one of these 10 devices on the factory floor from 10 different manufacturers are going to have to do that. [00:14:07] Speaker 01: And so you know you can program all of those using the single middle layer layer doing those commands. [00:14:12] Speaker 01: What that doesn't permit is the more sophisticated commands like curve or contour. [00:14:21] Speaker 01: Why doesn't it? [00:14:22] Speaker 03: Because those and the specification. [00:14:24] Speaker 03: So you take a move left. [00:14:26] Speaker 03: and you add another move left, and then you do a move up, and then you do a move left, and so on, if you want to build your curve. [00:14:35] Speaker 01: So what you have is the person at the top typing in a command that's known. [00:14:41] Speaker 01: So if you type in move left, it'll know to do that. [00:14:44] Speaker 01: If you type in curve on the second type of apparatus we're talking about, it'll say error. [00:14:48] Speaker 01: It won't do it. [00:14:49] Speaker 03: Unless, of course, you do that iteration and then [00:14:56] Speaker 03: You save it as curve and the next time it's curve and those are all primitive. [00:15:02] Speaker 01: Your honor has just invented a new device where you save it. [00:15:05] Speaker 01: That's not in the prior art. [00:15:08] Speaker 01: Whether that's conventional is step two, obviously, and the IPR is held it's not conventional. [00:15:15] Speaker 01: While we may think, of course, all you do is do a series of lefts and rights and ups and downs and therefore you approximate a curve and then you can save it and now all of a sudden you've got it, that wasn't done. [00:15:26] Speaker 01: Those devices did not support that. [00:15:28] Speaker 01: That's what the record shows on 12b6. [00:15:32] Speaker 01: And we are stuck with that record. [00:15:34] Speaker 01: And what the specification says quite clearly is those devices were not capable of doing a curve. [00:15:42] Speaker 01: You're not going to have somebody sitting up in the control booth for that one device out of the 10 going left one, up one, left one, up one, left. [00:15:49] Speaker 01: Well, you could, but it wouldn't be very efficient. [00:15:52] Speaker 01: It's theoretically possible for sure. [00:15:54] Speaker 01: My point is it wasn't done. [00:15:55] Speaker 01: those devices didn't. [00:15:57] Speaker 01: And what the specification teaches, which is what the record that we're stuck with on 12b6, is those devices are now, with this invention, capable of doing something they were not capable of doing before. [00:16:09] Speaker 01: And that's a curve with a person up in the control room typing in curve or contour. [00:16:17] Speaker 01: And that's because of this middleware layer. [00:16:19] Speaker 01: And it's not because the middleware layer is merely translating. [00:16:23] Speaker 01: It is set up in this method of [00:16:25] Speaker 01: primitive and non-primitive. [00:16:27] Speaker 01: And to answer Your Honor's question about preemption and Your Honor's question about why isn't this just doing what they've all done before using standard components, this is a different construct than existed before, and it is not the only middleware layer one could have. [00:16:49] Speaker 01: There were other middleware layers that are described in a specification. [00:16:52] Speaker 01: You could certainly have one, as I said, that merely did primitive and not non-primitive. [00:16:56] Speaker 01: It is that construct, the primitive and non-primitive construct, that makes it a specific middleware layer, not any middleware layer. [00:17:06] Speaker 01: And it is that construct which, in the NFISH regime, improves the control device itself, because that motion control device is now capable of doing a curve or contour which it was not capable of doing before. [00:17:21] Speaker 01: And that is the difference. [00:17:22] Speaker 01: That's why this sort of looks more like Enfish than it does other cases. [00:17:28] Speaker 01: And that's why there is no preemption of all forms of middleware layers, because only a middleware layer that is structured using the construct of primitive and non-primitive as the way of ordering the commands will infringe. [00:17:43] Speaker 01: You can imagine any other middleware layer that you like. [00:17:47] Speaker 01: If it does not have that construct, it will not infringe, and thus is not preempted. [00:17:53] Speaker 00: Okay. [00:17:54] Speaker 00: Let's hear from the other side and we'll save you rebuttal time. [00:17:57] Speaker 04: Thank you. [00:18:02] Speaker 04: Mr. Zelser. [00:18:03] Speaker 04: Good morning, your honors and may it please the court. [00:18:06] Speaker 04: The district court got a correct blow on the Alice issues. [00:18:08] Speaker 04: It found that the, the focus of the claims for step one was a middle translating layer. [00:18:14] Speaker 04: That's identical to how AMS has characterized their own invention before the patent office and IPRs in 2013. [00:18:21] Speaker 04: briefing below and briefing on appeal. [00:18:24] Speaker 04: So the district court followed exactly what they've been characterizing their invention. [00:18:28] Speaker 04: And when you look at the claims, that's what we're talking about. [00:18:31] Speaker 04: And their specification admits it. [00:18:34] Speaker 04: Application programs that speak at a high level, machines that speak at a different level, translation has always been necessary. [00:18:41] Speaker 04: And their idea is a middle layer of translation. [00:18:45] Speaker 04: So in step one, the district court got it right. [00:18:48] Speaker 04: their briefings? [00:18:49] Speaker 02: Well, I think your friend has conceded that if all they claimed was a middle translation system, that that would be patent-eligible. [00:18:58] Speaker 02: But the question is, if you have a specific, if you've invented a specific type of middleware translation, would that be patent-eligible? [00:19:09] Speaker 04: If you had a specific translation method, the answer to that question would be yes, in my view. [00:19:13] Speaker 02: But here, why isn't [00:19:16] Speaker 02: their emphasis on primitive and non-primitive, a specific way of doing this that doesn't preempt and also gives us more than pure functional claiming. [00:19:28] Speaker 02: It tells us how this particular system is going to interface between the original application and the in-motion control devices. [00:19:36] Speaker 04: Because they've created two broad words, primitive and non-primitive, that cover all commands known to engineers. [00:19:42] Speaker 04: Those are just two broad buckets. [00:19:44] Speaker 04: So say, for example, I said to you that I have a new method. [00:19:47] Speaker 02: Was there any claim construction before this was granted? [00:19:50] Speaker 04: The claim construction is undisputed. [00:19:52] Speaker 04: There was preliminary constructions, but it's undisputed that for purposes of Rule 12, we can assume the construction is most favorable to them under Atrix and Twombly. [00:20:04] Speaker 02: I mean, the fact that they're broad buckets, if it's a broad bucket that tells you specifically how to do something, why does that make it abstract? [00:20:12] Speaker 04: It doesn't tell you how to do it. [00:20:14] Speaker 04: All the claims says, if you look at the claims, all they say is associate. [00:20:18] Speaker 04: So there's one word in these claims that says, associate the commands from the high level to the low level using these two buckets. [00:20:25] Speaker 04: Base commands, we gave the example in our brief, a valve. [00:20:29] Speaker 04: So I have base commands of open 1%, 5%, and 10%. [00:20:34] Speaker 04: So if I want to open it 5%, I can use a base command. [00:20:37] Speaker 04: If I want to open it 13%, I have to use a 10 and three ones. [00:20:42] Speaker 04: If I want to use a 67%, I've got to use six 10s of five and two ones. [00:20:48] Speaker 02: But I thought what, again, your friend's argument was with primitive code, you'd have to enter the one, one, one, and 10 separately, but they created a way to combine those and just say 13. [00:21:04] Speaker 04: Which is incorrect. [00:21:05] Speaker 04: So their specification admits that non-primitive commands were known. [00:21:09] Speaker 04: If you look to the appendix record, [00:21:10] Speaker 02: Again, known is a different question than eligible. [00:21:14] Speaker 04: Well, no, I mean the printers. [00:21:16] Speaker 04: They say in the context of printers that non-primitive commands were ubiquitous, not just hidden in some reference. [00:21:22] Speaker 04: They were well-known. [00:21:23] Speaker 04: Stringing subroutines date back to the 1950s. [00:21:26] Speaker 02: Sure, but this isn't an obvious case. [00:21:28] Speaker 02: This is an eligibility case. [00:21:30] Speaker 02: Correct. [00:21:30] Speaker 02: Let me ask you this. [00:21:31] Speaker 02: I have a very high-level question, because you can tell me why I'm wrong, and you probably will. [00:21:36] Speaker 02: This struck me very quickly as analogous to deer. [00:21:40] Speaker 02: This is not purely in the computer realm. [00:21:44] Speaker 02: It doesn't talk about just computers. [00:21:46] Speaker 02: It talks about actual physical motion control devices. [00:21:50] Speaker 02: So why isn't this taking pre-existing motion control devices, adding some kind of, even if you accept that some of this is abstract, adding that to the motion control devices to come up with a new and improved way to operate them. [00:22:07] Speaker 02: just like the, I think it was a rubber curing machine in DEER, they added a natural law to that, I think, that improved the output. [00:22:18] Speaker 02: Nobody disputes that what they added was a natural law, but in combination with the actual pre-existing hardware, improved the process. [00:22:27] Speaker 02: Why isn't that the case here? [00:22:29] Speaker 04: At least in DEER, there was a specific formula for how you would accomplish [00:22:33] Speaker 04: the post application. [00:22:35] Speaker 02: So this is the problem I get, sorry to cut you off, but I get your answer, but this is the problem with these software cases is how far on the line of purely functional versus we're going to give you specific functions and then assume a skilled artisan, i.e. [00:22:51] Speaker 02: a computer programmer, can actually program them. [00:22:55] Speaker 02: Where do we go on that line? [00:22:57] Speaker 02: Because I think you would, well maybe you wouldn't, would you agree that [00:23:02] Speaker 02: if what they had claimed was a specific way of doing this middleware or this translation, and that they had specific steps of how this translation would occur, that that is arguably patentable under ENFISH and DDR in those cases. [00:23:17] Speaker 04: I think that's exactly right. [00:23:18] Speaker 04: In ENFISH... Arguably patentable, depending on what they had in it. [00:23:21] Speaker 04: Correct. [00:23:22] Speaker 04: I mean, in ENFISH, there was a four-step algorithm using a self-referential table that was different than other ways. [00:23:28] Speaker 04: In this particular case, and the cases I think are really on point here, [00:23:32] Speaker 04: verified voting, secured mail, smart systems, and electric group. [00:23:37] Speaker 04: In those cases, right on top of this case, what the court said is your instructions for how to do it are too high of a level. [00:23:45] Speaker 04: Here, there aren't any instructions. [00:23:48] Speaker 04: I mean, try to understand. [00:23:49] Speaker 02: It's using... But that's my problem here is how specific do the instructions have to be if a skilled artisan would look at this and say, well, this is how I would do it. [00:24:00] Speaker 02: And the specification provides some examples. [00:24:02] Speaker 02: And this isn't a case where we have a three page specification that says, do this abstract idea on a computer. [00:24:09] Speaker 02: In addition to the somewhat lengthy specification, we have pages and pages of computer code. [00:24:15] Speaker 02: I can't read computer code. [00:24:16] Speaker 02: I have no idea what it means. [00:24:17] Speaker 02: But somebody's actually been able to sit down and make this program to perform this result. [00:24:27] Speaker 02: Are you requiring them to basically take that computer code and then backtrack into the claims the specific code? [00:24:35] Speaker 04: No. [00:24:36] Speaker 04: But I think you have to have an invention in the claims themselves that's more specific than associate one language to a different language using the only two types of commands known to engineers. [00:24:49] Speaker 04: It has to be more specific than that. [00:24:51] Speaker 04: To give you an example, if I said to you I have a new method for building a house, and in one bucket I have hammers, [00:24:57] Speaker 04: And in my other bucket, I have everything else. [00:24:59] Speaker 04: In this case, primitive is base. [00:25:03] Speaker 04: Non-prim has been defined as everything else. [00:25:06] Speaker 04: So they have taken every tool known to mankind, which is what Alice and Mayo in this court has echoed in their cases, is you can't take the basic building blocks of engineering and own all of that. [00:25:16] Speaker 04: They say with prim and non-prim that they own the entire waterfront. [00:25:21] Speaker 04: Engineers, if they had a specific way of using prim and non-prim, if the claims recited that specific way, they might have more to talk about. [00:25:28] Speaker 04: But ENFISH was specific. [00:25:30] Speaker 04: But when you look at the voter verified cases, Electric Group, Smart Systems, those cases say that you have to have instructions with some level of specificity. [00:25:39] Speaker 04: And I know that we all struggle a little bit with where's that line. [00:25:43] Speaker 04: But this case, and let me say one thing about this. [00:25:46] Speaker 02: Let me ask you this, though. [00:25:47] Speaker 02: What if the invention was, I mean, this was the core invention? [00:25:51] Speaker 02: And I know you disagree with this. [00:25:52] Speaker 02: It may be an obviousness case. [00:25:54] Speaker 02: What if the core invention was coming up with the idea of let's use primitive commands and also find a way to code them and combine them in a non-primitive commands? [00:26:07] Speaker 02: And that's all they invented. [00:26:08] Speaker 02: Why isn't that still a patent-eligible invention? [00:26:12] Speaker 04: Because it's an abstract idea that's not limited in a specific way and claims a function. [00:26:18] Speaker 04: It's coming the function of translation from the high level to the low level [00:26:21] Speaker 04: where their spec at 1228 admits non-primitive commands were used with printers. [00:26:26] Speaker 04: They didn't even use base commands with printers according to what their patent says. [00:26:30] Speaker 04: 1228, column three. [00:26:33] Speaker 03: I suppose the other question, which might be for your learned opponent, is if I handed you a patent which had primitive commands, non-primitive commands, and [00:26:50] Speaker 03: quasi-permitted commands, would that be non-infringing because it had a third bucket? [00:26:56] Speaker 04: If there's a third bucket, it would still be covered because the first two are being used. [00:26:59] Speaker 04: That's the problem. [00:27:00] Speaker 04: This patent, and that's what you mentioned in preemption, they pled it in their complaint that they cover the entire... There's 450 members and 2,000 products, and why do we get to that level of preemption? [00:27:14] Speaker 04: Because their claims aren't limited. [00:27:16] Speaker 04: They were able to sue 20 defendants without even knowing what our code was. [00:27:20] Speaker 04: Because translation has to occur between an application program that speaks one language and a machine that speaks another. [00:27:27] Speaker 04: Those two things have always spoken different languages. [00:27:30] Speaker 04: Translation has been done. [00:27:32] Speaker 03: It was done with paper tape. [00:27:34] Speaker 04: Yes. [00:27:35] Speaker 04: Translation has been going on since the dawn of time. [00:27:37] Speaker 04: If I want to translate high in English to OLA in Spanish, you associate one word with the other word. [00:27:45] Speaker 04: All they've said is a limitation of these claims is we use the two broad buckets. [00:27:50] Speaker 04: covering everything, every tool. [00:27:52] Speaker 04: Engineers can't use any of those tools to translate between two things that don't talk the same language. [00:28:01] Speaker 02: I'm not sure how convincing that is to me on the abstraction point, because if it's actually an eligible invention, then the fact that they were the first ones to come up with it, and it was a great idea, and it's now an industry standard, shouldn't mean that they're not entitled to patentability. [00:28:21] Speaker 04: But their spec admits that they weren't the first to come up with it. [00:28:24] Speaker 02: Well, then you have an obviousness case. [00:28:26] Speaker 04: Well, no, because if it's an abstract idea, this court, ALICE, SAP, this court says you can't take an abstract idea and limit it to a particular environment and have that be patentable. [00:28:36] Speaker 04: That's horn book law from this court on 101 jurisprudence. [00:28:40] Speaker 04: They've taken translation. [00:28:41] Speaker 02: Yeah, but that just, again, goes back to assuming that this is an abstract idea. [00:28:46] Speaker 02: And translation itself, [00:28:49] Speaker 02: is clearly an abstract idea. [00:28:51] Speaker 02: Even translation between an application system and a motion control device. [00:28:57] Speaker 02: I think your friend has admitted it is an abstract idea. [00:29:00] Speaker 02: What we're still struggling with is, or I'm still struggling with this, does this go far enough down the line to make it non-abstract? [00:29:09] Speaker 02: Because I think you would agree, and tell me if you don't, that at some point it [00:29:15] Speaker 02: If you actually had enough in these claims to show how this was accomplished, it would be patentable under Enfish, wouldn't it? [00:29:24] Speaker 04: Yes, the claims have to be more specific. [00:29:26] Speaker 04: And I'll point something else out. [00:29:29] Speaker 02: This is unfair, because people have been trying, at least since Alice, to come up with this. [00:29:33] Speaker 02: But I'm going to give it a shot anyway. [00:29:35] Speaker 02: I won't hold it against you. [00:29:37] Speaker 02: Can you give me any kind of guidance on where we draw the dividing line in these software cases between purely functional claiming [00:29:45] Speaker 02: which is what a lot of software, I think, stuff is, because you can't really, nobody can read the code, they're not gonna put the code in the claim, so they're gonna tell you, do this function, do that function. [00:29:57] Speaker 02: Where is the line when it's purely functional in a sense of only claiming the result, and functional, but still showing you how to do it, because it divides it up into more specific functional steps? [00:30:13] Speaker 04: So, you know, I've read [00:30:15] Speaker 04: all of this court's precedent, at least I think I have, and I'll give my best shot at that question. [00:30:23] Speaker 04: There are certain claims when the function is translating from two things that don't understand each other to now here we are looking at primitive and non-primitive. [00:30:31] Speaker 04: No relationship between those two. [00:30:33] Speaker 04: Just use those two broad buckets of commands. [00:30:37] Speaker 04: In that particular case, there's nothing specific. [00:30:39] Speaker 04: So to answer your question, to me, you're looking at the prior art, and the prior art does it with these steps and in this way. [00:30:44] Speaker 04: This patent now has gotten more specific. [00:30:46] Speaker 04: And in the claims, it says, we're using these steps. [00:30:49] Speaker 04: But there has to be more than just use these two broad buckets no matter how you want. [00:30:53] Speaker 04: There's no defined relationship. [00:30:55] Speaker 04: It's just use them and then associate commands up here to commands down there. [00:30:59] Speaker 04: If I want to open my valve 67%, I'm the person who wants to write the code. [00:31:05] Speaker 04: I know I don't have base commands for 67%. [00:31:09] Speaker 02: It's like our current system. [00:31:11] Speaker 02: Isn't that where the skilled artisan can come in and say, [00:31:14] Speaker 02: Well, I don't have base commands for 67, but I have base commands for 50, for 10, for five and two. [00:31:22] Speaker 02: So I know easily how to write code to combine those four base commands to get you to 67. [00:31:28] Speaker 04: Yes, that's non-primitive. [00:31:30] Speaker 04: That's the bucket they're saying that they own exclusively. [00:31:33] Speaker 02: Well, I understand that, but suppose they're the ones that came up with the idea of non-primitive. [00:31:39] Speaker 02: I know that that's not the case or you don't think that's the case, but what if they were? [00:31:44] Speaker 02: Is that sufficiently, if you call it non-primitive and distinguish it from primitive, is that sufficiently non-functional or at least below the line of top-level functional that could be patent eligible? [00:31:58] Speaker 04: In my view, my strong view, that would still be abstract because you're saying translation with the only added specificity is just use the only two types of commands known to engineers. [00:32:08] Speaker 04: That's still a non-specific invention. [00:32:09] Speaker 02: But if that command was never known to engineers, the non-primitive command, suppose you're the first one that came up with the idea of combining primitive codes into a grouping and programming in that way to come up with this more specific result. [00:32:28] Speaker 03: But isn't that what all the non-primitive ones do? [00:32:31] Speaker 04: I mean, subroutines have been around since the... So I get your... You're saying what if. [00:32:34] Speaker 04: I understand you're asking me a hypothetical. [00:32:35] Speaker 04: I don't think the facts come close to bearing that out. [00:32:37] Speaker 04: But just to say, I still think that there's not enough specificity there just to say that I got this... It's almost like a mathematical formula or... The hard part for me is with software... [00:32:49] Speaker 02: I don't understand where we draw the line between what's ineligible functional claiming and eligible functional claiming. [00:32:57] Speaker 02: It was easy and in fish because it was a means plus function claim. [00:33:01] Speaker 02: So by definition, they had to put down the algorithm and they're bound by that algorithm. [00:33:09] Speaker 02: But that's not a requirement, I think, to get a claim on software. [00:33:15] Speaker 02: it makes it easier to tie them to certain specific steps that then turns it into an eligible process. [00:33:22] Speaker 02: But if those steps are inherent in the way the claims are written and skilled artists who would understand them, why isn't it then still eligible? [00:33:31] Speaker 02: Why does it need to be expressed as a means plus function claim? [00:33:35] Speaker 04: Well, I mean, one of the benchmarks of ALICE is claims that are too broad and functional that lead to broad preemption. [00:33:42] Speaker 04: They've conceded preemption. [00:33:44] Speaker 04: This is the only way it can be done. [00:33:45] Speaker 04: They sued 20 defendants without knowing their code because they just said translation has to happen. [00:33:50] Speaker 04: And we all know that you have to use primitive and non-primitive commands. [00:33:54] Speaker 04: That's the only way motion control will work. [00:33:56] Speaker 04: They've never said that you can do motion control not using non-primitive commands. [00:34:02] Speaker 04: And they didn't invent stringing commands together. [00:34:04] Speaker 04: Subroutines have been around since the 50s. [00:34:06] Speaker 04: Their patents admit at the Rule 12 stage. [00:34:08] Speaker 02: Were the people who invented subroutines in the 50s able to get a patent on those? [00:34:14] Speaker 04: I don't think so, no. [00:34:15] Speaker 04: I can't imagine you get a patent on that. [00:34:17] Speaker 04: You're stringing commands together. [00:34:18] Speaker 04: It's like our US currency system. [00:34:20] Speaker 04: I've got a $1 bill, a $5 bill, and a $10 bill. [00:34:23] Speaker 02: So you think the problem here is not just the abstract idea of translation. [00:34:26] Speaker 02: It's even if you go a step further, the idea of coding single commands into multiple commands is an abstract idea as well. [00:34:36] Speaker 04: Abstract and conventional. [00:34:37] Speaker 04: It's what a quarterback does on the football field. [00:34:40] Speaker 04: They say, you know, curl, and that means run out 10 yards and then turn left. [00:34:44] Speaker 04: Stringing commands together to form one non-primitive command that's made up of other commands has been going on since the dawn of time. [00:34:55] Speaker 04: So I think that's right that this suffers from two components. [00:34:58] Speaker 04: One, functional claiming. [00:34:59] Speaker 04: But two, stringing commands together is conventional and is abstract. [00:35:03] Speaker 04: And that's all that they've done. [00:35:04] Speaker 04: And they've never argued, by the way, below in their appendix that the appendix altered the equation at all. [00:35:11] Speaker 04: The only time the appendix was raised below [00:35:14] Speaker 04: was in the context of an indefiniteness argument in Markman. [00:35:17] Speaker 02: Sure, but we have looked in other cases, like visual memory, where the claims were kind of like a black box. [00:35:27] Speaker 02: I actually just sent it in and thought they were a black box, so we're bound by that. [00:35:31] Speaker 02: And looked to the fact that they had very high level claims, but the specification included an attachment that had code. [00:35:39] Speaker 02: And we pointed to that code as evidence of eligibility. [00:35:44] Speaker 02: Because I think we maybe barely or unfairly assume that if there's code, it actually has a specific algorithm in there to tell you how to do something. [00:35:56] Speaker 04: And there it is, is the specific algorithm, which this case is missing. [00:36:00] Speaker 04: I will also point out that they raised non-primitive in their opening brief. [00:36:03] Speaker 04: We pointed out that subroutines were known. [00:36:06] Speaker 04: And in their reply brief, if you look at the reply brief, step two, pages 30 to 34 of the brief, [00:36:12] Speaker 04: The only argument they make is ordered combination. [00:36:14] Speaker 04: They do not argue prim and non-prim. [00:36:16] Speaker 04: So I don't think that they can believe that they can cover the only two buckets of commands in a broad concept like translation. [00:36:27] Speaker 00: Do you still want to raise the question of venue? [00:36:31] Speaker 04: Your honors, unless you have questions, we're happy to take that on the briefing. [00:36:34] Speaker 00: OK. [00:36:34] Speaker 00: All right. [00:36:36] Speaker 00: Anymore questions? [00:36:39] Speaker 00: Thank you. [00:36:40] Speaker 04: Thank you, your honors. [00:36:42] Speaker 00: I will hear from Mr. Powers. [00:36:51] Speaker 01: Thank you, Your Honor. [00:36:51] Speaker 01: I'd like to start with step two of Alice, if I may. [00:36:54] Speaker 02: Can I just take you someplace else? [00:36:58] Speaker 02: Why isn't what your friend said correct, that beyond the abstract idea of translation, the abstract idea of combining single commands [00:37:10] Speaker 02: into multiple commands, also an abstract idea. [00:37:13] Speaker 01: I'll disagree on the merits, but I'll note that two minutes ago was the first time that argument was made. [00:37:18] Speaker 02: Well, no, I get that too. [00:37:19] Speaker 02: I didn't see that in any of the briefing, but I'm just curious. [00:37:22] Speaker 01: So I just disagree. [00:37:24] Speaker 01: The abstract idea, I think, was correctly identified below, the idea of translating from one to the other. [00:37:31] Speaker 01: Now, I think the example of a curl, that goes to whether you can [00:37:38] Speaker 01: argue obviousness of this. [00:37:40] Speaker 01: That crosses the line between 101 and 103 in my mind. [00:37:44] Speaker 02: Well, the first person that came up with the curl on football probably invented the curl, even though it was known that you could go up and around if you were the first person to say, well, let's just call it a curl rather than go six steps up and eight steps over. [00:38:00] Speaker 01: Exactly. [00:38:00] Speaker 01: So I think there's two slippery slopes in the 101 analysis. [00:38:06] Speaker 01: One of them is [00:38:07] Speaker 01: You can abstract ties, if that's a verb, anything up to a certain level. [00:38:12] Speaker 01: And that's what's happened in a lot of these cases. [00:38:13] Speaker 01: And so now we've moved the level of abstraction one more level down into concreteness and said, well, the claim as written is entirely abstract because even though it has a detail, i.e. [00:38:25] Speaker 01: use primitive and non-primitive as the construct, as opposed to alphabetical or 10 other ways of ordering it, we're going to call that the abstract idea. [00:38:34] Speaker 01: That's just crossing the line between. [00:38:36] Speaker 01: what's truly abstract and what's concrete. [00:38:38] Speaker 01: And I think there's no answer to it beyond that. [00:38:42] Speaker 01: It's unsatisfying because the whole law of 101 is unsatisfying on that question because there's no bright line. [00:38:47] Speaker 01: But the reality is, I think they got it right below as to what the abstract idea would be, i.e. [00:38:53] Speaker 01: translating between a top level and a bottom level. [00:38:56] Speaker 01: They got it wrong as to whether this claim only claimed that. [00:39:01] Speaker 01: Mr. Powers, when [00:39:03] Speaker 03: A radio teletype operator sat in his machine 60 years ago and typed on a typewriter keyboard and produced a paper tape, then fed that paper tape into a device which translated into zeros and ones, short and long bursts of static. [00:39:29] Speaker 03: And it was received by another machine which [00:39:32] Speaker 03: translated it back and then spat out a paper tape which was fed in and typed out a message. [00:39:38] Speaker 03: Was that primitive or non-primitive? [00:39:42] Speaker 01: That was neither. [00:39:45] Speaker 01: That was just pure translation. [00:39:47] Speaker 01: That's just pure translation. [00:39:50] Speaker 01: Primitive is a different concept. [00:39:51] Speaker 01: And my friend is right in saying that if you take primitive and non-primitive, that is the entirety of possible commands. [00:40:00] Speaker 01: Where he's wrong is the part that matters, is that that's not the only way to organize. [00:40:04] Speaker 03: Well, let me rephrase the question then. [00:40:06] Speaker 03: Was typing a key primitive or non-primitive? [00:40:10] Speaker 01: Neither, I think. [00:40:11] Speaker 01: It's merely typing in an A. And you could say, I guess, A is primitive in the sense you can't break it down anymore. [00:40:18] Speaker 01: So in that case, I would say, if you want to try to analogize it, the entire operation was purely primitive. [00:40:28] Speaker 01: Because each A [00:40:30] Speaker 01: is an A and can't be broken down further. [00:40:34] Speaker 01: And then at the end of the day, if you're typing in, bombs are falling, the B would be primitive, bombs spelled out as an entirety, I guess you would say that's non-primitive. [00:40:49] Speaker 01: But that doesn't go to whether this is abstract. [00:40:53] Speaker 01: That goes to a 103 analysis. [00:40:57] Speaker 01: What we're talking about is motion control, and you can organize the commands. [00:41:00] Speaker 01: We're not saying that we invented the concept of non-primitive. [00:41:04] Speaker 01: We're saying we invented the concept of using primitive and non-primitive as the way of, as the construct is being used to do the commands in a middle translating layer. [00:41:14] Speaker 01: And that's important under step one, because that makes it a specific middleware layer, not any middleware layer, because you could order that middleware layer by only primitive. [00:41:25] Speaker 01: You could order it by organizing it A through M and N through Z. You could order it a lot of different ways and accomplish different things. [00:41:34] Speaker 01: This specification teaches that if you order it using primitive and non-primitive as the organizing principle, not the fact that you happen to be using them, but as the organizing principle of the middleware layer, then you can accomplish things in that second machine that you could not accomplish before. [00:41:52] Speaker 03: So if you [00:41:54] Speaker 03: narrowed your primitive to one step to the right, one step to the left. [00:42:02] Speaker 03: And every other thing was non-primitive. [00:42:05] Speaker 03: Why couldn't you say that? [00:42:09] Speaker 03: I don't understand your question. [00:42:10] Speaker 03: Well, my question is, you're just arbitrarily saying some things are primitive, some things aren't. [00:42:15] Speaker 03: The claim says what's primitive and non-primitive. [00:42:17] Speaker 03: The claim says what's primitive. [00:42:19] Speaker 03: Right. [00:42:19] Speaker 03: The claim arbitrarily says things that are [00:42:22] Speaker 03: one step to the right, one step to the left, one step up, one step down, right? [00:42:27] Speaker 01: It says the basic commands that all machines must have that can't be mimicked by some other combination of commands. [00:42:33] Speaker 01: That's its definition of primitive. [00:42:34] Speaker 01: That's a specific definition of a specific construct. [00:42:38] Speaker 01: You're always right. [00:42:39] Speaker 01: You could define primitive in a different way. [00:42:42] Speaker 01: And that would be a different machine and a different claim. [00:42:45] Speaker 01: It wouldn't infringe because it doesn't meet the definition. [00:42:49] Speaker 01: It wouldn't be preempted. [00:42:51] Speaker 01: You're exactly right. [00:42:52] Speaker 01: But the point is that this claim defines a specific definition of primitive and a specific definition of non-primitive, and then talks about how using those two together as the organizing principle of your middleware layer allows you to accomplish something in a motion control apparatus that could not be done before. [00:43:10] Speaker 01: That's in the specification. [00:43:11] Speaker 01: Those are plated facts that have to bind all courts on 12b6. [00:43:17] Speaker 01: And I do want to have at least a small part on step two, because we really haven't talked about it. [00:43:23] Speaker 01: in a very specific way. [00:43:25] Speaker 01: The district court, based on extrinsic evidence, found that the terms primitive and non-primitive had been used before in software, which of course is true, at least primitive had been used before. [00:43:37] Speaker 01: Not necessarily this definition in the context of motion control apparatus. [00:43:41] Speaker 01: That wasn't found, nor could it be. [00:43:44] Speaker 01: And the problem is, first, that fact-finding on 12b6 by the district court was improper under 12b6. [00:43:51] Speaker 01: Can't do it. [00:43:52] Speaker 01: It's inconsistent with the specification, which says, this is unknown and hasn't been done. [00:43:58] Speaker 01: My friend says that column three of the 236 patent admits that non-primitive was used in printers. [00:44:03] Speaker 01: It does not. [00:44:04] Speaker 01: Read column three, lines one through 20. [00:44:08] Speaker 01: It says nothing about non-primitive, and expressly says as to printers, that has no use. [00:44:13] Speaker 01: What it's doing in printers has no use in the motion control apparatus, because it's not the fine control that non-primitive primitive gives you. [00:44:21] Speaker 01: that supposed admission in column three of 236's numbers. [00:44:26] Speaker 00: I think we need to move on. [00:44:27] Speaker 00: Do you have one final sentence for us? [00:44:33] Speaker 01: I'll dedicate that final sentence to the court, Your Honor. [00:44:36] Speaker 00: Thank you. [00:44:38] Speaker 00: Thank you. [00:44:38] Speaker 00: Thank you both. [00:44:39] Speaker 00: The case is taken under submission.