decoration decoration
Stories

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

Gear

Groklaw Gear

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


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

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

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Does Programming a Computer Make A New Machine?~By PolR
Thursday, July 19 2012 @ 01:58 PM EDT


Does Programming a Computer Make A New Machine?

By PolR
[This article is licensed under
a Creative Commons License.]

[Article as PDF]

If you ask this question you may receive a different answer depending on who you ask. If you ask a patent attorney he will answer that there is well established case law that says programming a computer in effect makes a new machine for purposes of patent law. But if you ask a computer programmer he will say that obviously, programing a computer doesn't make a new machine. The whole point of a programmable computer is precisely that there is no need to make a new machine for every individual program.

Which is it? Let's first take a look at what case law says and then compare it with the facts of computer science. They are not currently aligned.



Arguments That a Program Can Create a New Machine:

The landmark case which is usually mentioned in connection with this doctrine is In re Alappat (July 29, 1994):

We have held that such programming creates a new machine, because a general purpose computer in effect becomes a special purpose computer once it is programmed to perform particular functions pursuant to instructions from program software. In re Freeman, 573 F.2d 1237, 1247 n. 11, 197 USPQ 464, 472 n. 11 (CCPA 1978); In re Noll, 545 F.2d 141, 148, 191 USPQ 721, 726 (CCPA 1976); In re Prater, 415 F.2d at 1403 n. 29, 162 USPQ at 549-50 n. 29.

Three cases are cited in support of this holding. The first one, In re Freeman, contains nothing relevant to the purposes of this article, because it doesn't address the "new machine" concept. It is, instead, a case that makes a distinction between process algorithms and mathematical ones, a distinction that in fact does not exist in computer science.1 Here are the relevant portions of the other two cases:

There is In re Noll (November 18, 1976),

There is nothing abstract about the claimed invention. It comprises physical structure, including storage devices and electrical components uniquely configured to perform specified functions through the physical properties of electrical circuits to achieve controlled results. Appellant's programmed machine is structurally different from a machine without that program. It thus broadly corresponds to the combination held to be statutory subject matter in claim 18 in In re Bernhart, supra.

Alappat also cited footnote 29 of In re Prater (August 14, 1969)

In one sense, a general-purpose digital computer may be regarded as but a storeroom of parts and/or electrical components. But once a program has been introduced, the general-purpose digital computer becomes a special-purpose digital computer (i.e., a specific electrical circuit with or without electro-mechanical components) which, along with the process by which it operates, may be patented subject, of course, to the requirements of novelty, utility, and non-obviousness.

These two cases make explicit references to changes in the physical structure of the computer as a justification that a new machine is made. We also find such a reference to physical structure in another case Noll is further citing:

In re Bernhart (November 20, 1969) (emphasis in the original)

There is one further rationale used by both the board and the examiner, namely, that the provision of new signals to be stored by the computer does not make it a new machine, i.e., it is structurally the same, no matter how new, useful and unobvious the result. This rationale really goes more to novelty than to statutory subject matter but it appears to be at the heart of the present controversy. To this question we say that if a machine is programmed in a certain new and unobvious way, it is physically different from the machine without that program; its memory elements are differently arranged. The fact that these physical changes are invisible to the eye should not tempt us to conclude that the machine has not been changed.

This notion that physical changes in the computer make a new machine is also found in WMS Gaming, Inc. v. International Game Technology (July 20, 1999) (emphasis in the original)

The structure of a microprocessor programmed to carry out an algorithm is limited by the disclosed algorithm. A general purpose computer, or microprocessor, programmed to carry out an algorithm creates "a new machine, because a general purpose computer in effect becomes a special purpose computer once it is programmed to perform particular functions pursuant to instructions from program software." In re Alappat, 33 F.3d 1526, 1545, 31 USPQ2d 1545, 1558 (Fed.Cir. 1994) (en banc); see In re Bernhart, 57 C.C.P.A. 737, 417 F.2d 1395, 1399-1400, 163 USPQ 611, 615-16 (CCPA 1969) ("[I]f a machine is programmed in a certain new and unobvious way, it is physically different from the machine without that program; its memory elements are differently arranged."). The instructions of the software program that carry out the algorithm electrically change the general purpose computer by creating electrical paths within the device. These electrical paths create a special purpose machine for carrying out the particular algorithm.3

Footnote 3 reads:
3 A microprocessor contains a myriad of interconnected transistors that operate as electronic switches. See Neil Randall, Dissecting the Heart of Your Computer, PC Magazine, June 9, 1998, at 254-55. The instructions of the software program cause the switches to either open or close. See id. The opening and closing of the interconnected switches creates electrical paths in the microprocessor that cause it to perform the desired function of the instructions that carry out the algorithm. See id.

Please note that WMS Gaming refers to Bernhart but these two cases state two technically different stories on which physical changes are making the new machine. The Bernhart story is that the memory elements are changed. In a modern computer this is electrical charges stored in capacitors because this is how current DRAM memory technology functions. The WMS Gaming story is about the opening and closing of interconnected transistors in the microprocessor. This is not the same thing as charging capacitors in DRAM.

The Alappat decision was written by Judge Rich. He was also on the panel of every case cited above. Judge Rich also wrote about 20 years before Alappat a dissenting opinion in In re Johnston (September 19, 1974) (emphasis in the original):

I am quite familiar with the legal doctrine that a new program makes an old general purpose digital computer into a new and different machine. This court has been through that many times and I am not denying the validity of this principle – which partakes of the nature of a legal fiction when it comes to drafting claims. My problem is that, knowing the invention to be a new program, I must decide whether it is patentable in any claimed form in view of Benson, whether claimed as a machine, a "machine system," or otherwise.

There is also this dissenting opinion from then Chief Judge Archer joined by Judge Nies (emphasis in the original, reference to a footnote omitted)

Thus, a known circuit containing a light bulb, battery, and switch is not a new machine when the switch is opened and closed to recite a new story in Morse code, because the "invent[ion] or discover[y]" is merely a new story, which is nonstatutory subject matter. An old stereo playing a new song on a compact disc is not a new machine because the invention or discovery is merely a new song, which is nonstatutory subject matter. The "perforated rolls [of a player piano] are parts of a machine which, when duly applied and properly operated in connection with the mechanism to which they are adapted, produce musical tones in harmonious combination." White-Smith Music Publishing Co. v. Apollo Co., 209 U.S. 1, 18, 28 S.Ct. 319, 323, 52 L.Ed. 655 (1908). Yet a player piano playing Chopin's scales does not become a "new machine" when it spins a roll to play Brahms' lullaby. The distinction between the piano before and after different rolls are inserted resides not in the piano's changing quality as a "machine" but only in the changing melodies being played by the one machine. The only invention by the creator of a roll that is new because of its music is the new music. Because the patent law does not examine musical compositions to determine their relation to those that have gone before, the distinction between new and old music can never qualify for patent protection.

It is not the computer – the machine qua computer – that performs the [mathematic] function, but, rather, the [mathematic function] is attained only through "use" of the general-purpose computer. The general-purpose digital computer is itself a total and self-complete machine entity. Versatility in electronic data processing is its endowment, its reason for being, its stock in trade.

Digitronics Corp. v. New York Racing Ass'n, Inc., 187 USPQ 602, 640, 1975 WL 21112 (E.D.N.Y.1975), aff'd on other grounds, 553 F.2d 740, 193 USPQ 577 (2d Cir.1977)


What Does Computer Science Say?

The facts of computer science side with the dissenting opinions. Most computer professionals would say the technical explanations given in Noll, Prater, Bernhart and WMS Gaming are incorrect from a computer science perspective. From the point of view of physical machine structure, no new machine is made when a computer is programmed.

I am aware of the legal theory that a new machine is made because a new machine function is implemented. This is not the same explanation as the one found in the cases cited above but competent lawyers are telling me this explanation is legally correct. From the point of view of computer science, this explanation doesn't work any better than the other one. The technical evidence shows that programming a computer doesn't impart the computer with capabilities it doesn't already have absent the programming.

Judge Rich in his dissent in Johnston uses the phrase "legal fiction". I will leave to lawyers the issue of whether this phrase is appropriate here. The purpose of this article is to show that no actual machine is made in any technologically meaningful sense. The legal doctrine that programming a computer makes a new machine is as related to reality as a legislation on the value of the number pi.

Imagine a device equipped with a robotic arm. At the tip of this arm there is a pen, an eraser and a camera. The device may write information on paper with the pen. It may use the camera to read what is written and it decides what to do next based on what is being read. The device may erase what is written and overwrite it with new information. This machine is a general purpose computer. It solves problems by reading and writing information.

Real computers are not robotic arm devices. They are electronic devices built according to the stored program architecture. However the robotic arm metaphor helps understand the functions of the electronic components.

  • Main memory is a component where information is written and read. This information is modifiable. It is possible to overwrite information with new information. Main memory has no computational capabilities. It is the equivalent of the paper in the robotic arm metaphor.

  • The CPU or processor is the component which carries out the computation. It does so by reading and writing information from main memory. It is the equivalent of the device controlling the robotic arm.

  • The bus is a communication component between the CPU and main memory. The CPU reads and writes information in memory by sending and receiving electronic signals through the bus. This is the equivalent of the robotic arm with a minor difference. The components playing the parts of the pen, eraser and camera are physically located in the memory and not the bus as the robotic arm metaphor would suggest. This doesn't change the fact that the CPU computes by reading and writing information in memory through signals sent through the bus.

  • Input devices allow to bring information from outside of the computer into the memory for computation. This is the equivalent to inserting sheets of written material into the robotic arm computer.

  • Output devices allow to bring information outside of the computer for outside parties to see and use. This is the equivalent of taking a copy of the information written on paper in the robotic arm computer and giving it to an outside party.

There is an obvious parallel between a computer and a human using pencil and paper. There are differences too. A computer is faster and can handle more information than is practical for a human. A computer can also be embedded in other devices such as an anti-lock brake system to carry out tasks no live human can hope to do. These differences represent an expansion in speed, quantity and circumstances where computations may be practically carried out. They do not represent a change in the nature of what is a computation.

A more fundamental difference lies in the treatment of semantics. When presented with the word FOX a human will know which kind of brown furry animal this is. A computer will only recognize the letter F followed by the letter O followed by the letter X. This is a major limitation. How could computers carry out a computation if meaning cannot be used? The answer is given by mathematics. There is in the theory of computation a special kind of procedures called algorithms which are executed without using the meaning of the symbols. It is sufficient to recognize the symbols themselves. An example of an algorithm is sorting text in alphabetic order. If we want to place in order the words FOX and FROG we don't need to know which animals are being referred to. It is sufficient to notice the first letters F are the same and the second letter O comes before the second letter R. Therefore we have determined that FOX comes before FROG without referring to the meanings of the words.

[Update: The preceding paragraph describes the behavior of the computer at the hardware level. The computer is unable to interpret the meanings of symbols because there are no components of digital electronics with this capability which could be included in a computer. Therefore procedures requiring judgment calls based on meanings cannot be implemented in a computer. An example of such unimplementable procedure may be the application of a legal test relying on the discretion of the judge. Mathematical algorithms are how programs work around this limitation of hardware. - End update.]

A computer is a machine for processing binary symbols called bits. A computer may carry out a computation only if the procedure is an algorithm. If a procedure requires to use the meanings of the symbols it is not machine executable. The task of a programmer is to find an algorithm applicable to the problem he wants to solve. Then he will write a description of the algorithm in some programming language. This description is the computer program.

I am aware that this is not the definition of the word algorithm the law usually uses.2 The legal definition is more or less synonymous with "process". But the definition from the theory of computation is the one which is appropriate to the task of explaining the operating principles of a computer according to computer science. This is the definition which is used in this article and it is not synonymous with "process".

How Does a Computer Execute a Program?

How does a computer execute a program? Here again computation theory has the answer. Mathematicians have discovered a special kind of algorithm called "universal algorithms" – called that because they can carry out all possible computations. If a function may be computed by an algorithm, any algorithm, then a universal algorithm can also compute it.

CPUs are circuits built to carry out a particular universal algorithm called the instruction cycle. These circuits are designed to recognize sequences of bits called instructions which corresponds to steps in the computation. Each make and brand of CPUs are designed to carry out a limited number of instructions called the instruction set.3

The instruction cycle reads an instruction in main memory and executes it. Then it reads the next instruction and executes it. This cycle of successive reading and execution of instructions continues until the computation is completed.

The computer program is initially written by the programmer in a human readable language. This language is called source code. Some programming tools, typically a compiler, will translate the source code into instructions for the CPU. The result is executable code meant for machine execution. When the executable code is stored in the computer's main memory, the CPU may begin its execution.

This completes the explanation of the stored program computer. We may now examine how the structure of the computer relates to the functions of software.

How Computer Structure Relates to Software Functions

Storing executable code in memory doesn't make an electrical circuit dedicated to the functions of the software.

Storing executable code in main memory is like writing symbols on a piece of paper. No computational capability results. Main memory, like paper, is not a component capable of carrying out a computation. This capability belongs to the CPU writing in memory, or to the human who handles the pencil.

Introducing code in memory doesn't affect the CPU. The information stays in memory, unused, until the program execution begins. Then the CPU reads the first program instruction and execute it. Then it reads the second instruction and executes it. The CPU continues reading instructions one by one and executes them one by one until it is instructed that the end of the program is reached. This instruction cycle the same for every program.4

The number of instructions in the instruction set is limited. Here the phrase 'instruction set' doesn't mean the program. It means the list of instructions the CPU is capable of executing. This list is found in technical manuals where the functionality of the CPU is documented.

The CPU has in its circuitry all the structure necessary to carry out all instructions in the instruction set. All programs are required to use only instructions from this set. There is no operation of reading in bulk an entire program from memory into the CPU because the instructions are read and executed one by one. No portion of the computer is ever configured to have a structure dedicated to the execution of a program because programs are executed one instruction at the time. From the point of view of the computer structure, there is no concept of an entire program. From the point of view of the circuit, there is only one instruction that matters, and it is the current instruction. The notion of a program is an abstraction separate from the circuit structure. This is why the CPU has the structure necessary to execute all programs.

The mechanical arm computer metaphor explains well what happens. We have a mechanical arm machine built to execute a universal algorithm. It is programmed by writing executable code on a sheet of paper and introducing this sheet in the machine. This doesn't change the structure of the mechanical arm machine and the paper by itself doesn't compute. The program is executed when the mechanical arm carries out the instruction cycle algorithm on this data.

A consequence of this observation is that we cannot conclude a new machine has been made on the basis that some circuitry dedicated to the software function has been configured because no such configuration occurs.

New functions for software may be implemented by imposing limitations on the inputs of an old algorithm.

The function of doubling a number is a simple example. We may multiply the number by two, or we may add the number with itself. Either way the same function is accomplished: the number is doubled.

In this example we have a choice of two algorithms, one which computes an addition and another which computes a multiplication.5 If we build a pair of circuits, one for addition and one for multiplication, both are suitable but none is dedicated to doubling a number. This result is achieved by imposing a constraint on the inputs given to the algorithms. In one case the number must be added with itself; in the other case the number must be multiplied by 2.

Computers programmers know many algorithms which could be used by imposing restrictions on the inputs to compute new functions. For example, some algorithms may make make a decision by comparing data with the contents of a decision table. The contents of this table is not an algorithm, and it is not executable data. But if we change the contents, a different decision is reached. This may be used to implement several different software functions depending on the particular type of decision which must be reached. Another example are algorithms for processing regular expressions which may perform various text processing functions depending on input.

Computers are programmed in this manner, by requiring the input of a universal algorithm to be a specific program. While the source code of a program may literally express a new algorithm, the corresponding executable code is an input to the instruction cycle. It is not a blueprint or the description of a new circuit implementing the new algorithm.

A consequence of this observation is that we cannot conclude the algorithm or the circuit implementing the algorithm are new on the sole basis that the software *functions* are new.

The functions of software may be represented in memory by data which are not executable CPU instructions.

This is a consequence of the previous point. Consider the decision table example. The function of this algorithm depends on the contents of the table, and this is not executable data.

Programmers are not obligated to use the native instruction cycle of the CPU as their universal algorithm. They often use this instruction cycle because this typically results in faster programs. But the alternatives are also frequently used.

Universal algorithms are algorithms. They may be written in software and compiled into executable code for the CPU. The computer so programmed may be used to execute software written to the alternative universal algorithm. A common case is virtual machines running bytecode. Programming languages such as Python are running on such virtual machines. Executable Python programs are not instructions for the CPU. They are bytecode instructions for the virtual machine. The CPU executes instructions for the virtual machine, which is interpreting Python bytecode.

Not all universal algorithms are instruction cycles executing on instructions. Other types of universal algorithms are also used sometimes. The family of logical programming languages such as Prolog rely on SLD-resolution. The family of functional programming languages rely on various implementations of beta-reduction strategies. These universal algorithms are not instruction cycles.

The consequence is that legal arguments about software should not assume the executable program is instructions directed to the CPU. They should not even assume programs are made of instructions at all. If they make these assumptions the arguments are not applicable to the full range of tools and techniques which may be used in software development.

Does a Clock That Ticks Become a New Machine?

Programs may be modified in memory while they are executed.

The contents of the memory of a computer is constantly modified as the CPU executes instructions, because memory is where all kinds of data resides, not just programs. The CPU carries out computations by constantly writing and overwriting data in memory. This may happen as often as billions of times per second on the current generation of computers. If your desktop clock changes from 11:59 AM to 12:00 PM, memory has changed (not to mention the counters that are changing constantly just to know that time has passed). Displaying new results from a search engine is changing the memory contents. Moving the mouse, typing on the keyboard are all operations that change the memory contents. And every computation a program carries out similarly changes the memory contents.

All contents of memory may be modified including the program which is being executed. While it is usually considered bad practice to change a program during execution, this is technically possible and there are circumstances where this actually happens. For example the patent number RE38,104 which was litigated in the recent Oracle v. Google case is claiming such a programing technique. How do we distinguish a memory change which make a new machine from one which doesn't? There is no objective test because there is no basis *in technology* to make such a distinction.

The practice of avoiding changes to executable code during execution is applicable to programs using imperative programing languages. This prohibition is not applicable to all types of programming languages. Functional programing languages rely on some implementation of beta-reduction as the universal algorithm. In this case, the program is a data structure which must constantly (thousands or millions of times per second at least) be modified according to the rule of beta-reduction for the computation to progress. Constant incremental modification of the program is part of how this particular kind of universal algorithms works.6

These changes in memory cannot make a new machine because otherwise no machine would be able to carry out a computation until the end. As soon as the memory is modified it would no longer be the same machine. Think of a car riding on the road. The wheels are rotating, the engine is running. These are physical changes. Do the moving parts make a new car every time they move? No car goes anywhere by that logic, because a car constantly keeps becoming a different car while it runs. If a computer physically changes when programmed then so does a light bulb when it's turned on and off in a Morse code pattern. So does an internal combustion engine rotating. Are we going to argue a clock becomes a different machine every time it ticks? This is a physical change too. How many examples do we need before this notion is discredited?

These arguments are similar to arguing that shifting the lever controlling the reverser wheel of a steam engine transforms the steam engine into a new machine - while it is travelling at over seventy miles an hour, under power! This argument is obviously absurd, but it is entirely analogous to the idea that directing a general-purpose computer to execute a new program transforms the computer into a new machine. Instructions and data are the normal inputs of a stored program computer instruction cycle, in the same way that coal and water are the normal inputs of a steam locomotive. A computer is useless without a program to run and a set of data to act on; a steam locomotive will go nowhere without being fed coal and water first. And programs are brought into the computer memory while the computer is powered on and running, by clicking on an icon or selecting a menu item. Sometimes just visiting a web site will bring a JavaScript program in the memory without the knowledge of the user.

Physical changes which are required for a machine to perform its function are not changes in machine structure. They don't make new machines. Introducing a program in the memory of a computer is this kind of change.7

Programming a computer is a reversible operation.

It is worth noting that whether or not a program is self-modifying, writing a program in a computer memory is a temporary change. The memory will revert to its previous state when the program is erased, often by powering off the computer. Programs are also erased when the program is done executing and the memory is freed for other uses. It is not simply that the installation of a program changes the computer in ways not visible to our eyes. It is that the changes are temporary, sometimes fleeting, in nature, and this conflicts with the ordinary understanding of what is meant by the manufacture of a machine.

Why no new physical structure is made when programming a computer

At this point it must be clear that the previously stated arguments based on the physical structure of the computer which are found in case law are technically incorrect. No new machine structure is made when a computer is programmed.

The main memory of a computer is typically DRAM. Storing data in DRAM involves storing an electrical charge in capacitors. Other types of memory could be used as well: SRAMs are used in CPU caches, magnetic domains are used on magnetic hard disks etc. This is why bits are a symbolic abstraction different from their physical representations. But still, we do not err when we consider primarily the scenario where main memory is DRAM. Nowadays, this is the technology used to make most computers main memory.

How Case Law Gets the Technology Wrong

Prater is wrong because a stored program computer is not a storeroom of parts that can be wired into a different configuration by 'introducing a program'. When the program is introduced, it changes the patterns of voltages on the memory cell capacitors. The configuration of the computer wiring and all of the logic circuits remains fixed.

Bernhart and Noll are wrong for the same reason.

The footnote in WS Gaming is wrong. The notion of associating bits with transistor implemented switches is a mere teaching aid for beginners. The correct understanding will be acquired over time as we learn more about digital electronics. This is like first learning that a tomato is a vegetable and then, when the correct botanical knowledge is acquired, we learn that a tomato is a fruit and a berry. The wiring between the transistors is etched at the factory and never changes. There is no digital electronics equivalent of an ancient ENIAC patch panel in a stored program computer. Transistors work by changing voltages in wiring that never changes. Also, storing bits in DRAM does not changes voltages between transistors. The activity of transistors is *executing* the program. It is not *programming* the computer.

All of these cases make a more fundamental error. They ignore the actual operating principles of the stored program computer. They ignore that all programs are input to the instruction cycle. They ignore that from a technology perspective there is no difference between bits representing data and bits representing programs. They ignore that computers are unable to interpret the meanings of symbols. They ignore that the meanings of symbols must be abstracted away by the programmer when he writes a program.

The correct operating principles of stored program computers has consequences. One of them I have already mentioned: programming a computer does not change the machine structurally in any technologically meaningful sense. But this is not the only consequence. There are also consequences on how functionality relate to the machine structure. Software is input, like any other data input. Functionality results from giving input to a known algorithm. But this explanation covers only the ability to implement the purely mathematical aspects of algorithms. There is no way to associate the non-mathematical meanings of the data with machine structure. Any aspect of the software functions which relates to the non-mathematical meaning of the data is not something that results from the machine structure.

The Legal Theory that New Computer Functionality Creates a New Machine is Technically Incorrect

It is possible to have new uses for old machines.

How do we distinguish between a function which makes a new machine from a new use of an existing machine? A truck may carry log wood. Then the function of the truck is to carry log wood. If the truck carries sacks of sand, its function is to carry sacks of sand. But this is not as a result a new truck. It's just carrying a new load. A similar point may be made about computers, because programs are very much like payloads. They are inputs for the instruction cycle or some other universal algorithm. We may have new software for old computers without making new computers in the same way we may have new uses for trucks without making new trucks.

A sewing machine is another example. One may change the types of threads and the directions and distances moved by the needle to cause the machine to do different things. The default configuration may let you stitch in straight lines. Another configuration may let you sew buttons on a garment. Or you may use a zigzag stitch. A sewing machine has a variety of functions which may be used in various combinations to obtain a broad range of desired effects. One may apply force to turn a straight stitch into a contour stitch. Or one may apply a decorative thread as in embroidery. None of these activities makes a new sewing machine.

When people believe software makes physical changes to the computer structure, they have an explanation for the new machine doctrine. They argue that new functionality is associated with the physical changes. But once this explanation is rejected, how could it be that new software functions cause the computer to be new? The simple, and obvious, truth is that the application of a device to a particular purpose does not transform the device.

It is possible to have new uses for old algorithms.

This is a different take on a similar theme. The relationship between function and algorithm is not always immediate and straightforward. As I have previously mentioned, a function may be implemented by giving some data as input to an existing algorithm, be it universal or otherwise. It is not because the function is new that the underlying algorithm is new. We may just have a new input for an old algorithm. And if the algorithm is not new, even when one believes a new algorithm makes a new machine there is still no reason to believe the machine is new.

We may have new algorithms for old functions.

As a different but related point, it is possible for a programmer to develop a totally new algorithm and use it to carry out an old function by giving it a well-chosen input. If this old function is recited in someone else's patent, depending on how the claim is written, it may be possible that the old claim reads on the new algorithm. In this scenario the old claim would read on an algorithm the patentee has not actually invented.

The meaning of the data is not used by the computer.

A computer has no ability to read meaning in the symbols representing the data. This is why the computer may execute a procedure only if it is an algorithm. When the programmer writes his program, he must abstract away the meaning of the data in order to get a machine executable algorithm.

This imposes limits on what the functions of the computer could be. It may only act on the raw uninterpreted symbols. Once an answer is reached, the symbols must be outputted to an outside party for interpreting the meaning. Then, how about those patents that describe the functions of software in terms of the meaning of the data? On what reasonable basis could courts conclude these functions are new functions of the computer?

If we configure a printing press to print a new novel, for example, do we say it has a new function which is to print this specific novel? There is a mathematical function called the identity function which is defined by the formula f(x)=x. It produces as output the same value as the input it receives. An algorithm that implements this function is an algorithm that makes an exact copy of its input. A printing press may be seen as a machine dedicated to executing an algorithm of this kind. It makes an exact copy of the printed letters. Computers can replicate digital information exactly; they can act like printing presses. The relationship meanings have with the printing press is a particular example of the relationship meanings have with all algorithms. Then, why would a function defined in terms of the meanings of the bits be deemed a function of the computer? These machines are processing raw uninterpreted bits. They don't process meanings.

An analogy with the player piano is apt here. A player piano has no aesthetic sense. It doesn't appreciate the creative work in a Brahm's lullaby. There is no reason to believe a player piano is imparted the function of playing a Brahm's lullaby when it is given the corresponding piano roll. The player piano just does what it was designed to do, mechanically playing the sounds are they are recorded on the roll. Similarly the computer has no sense of the meanings of the data. It just mechanically manipulates the symbols according to the algorithm. Meanings have been abstracted away by the programmer when he wrote the program. He needed to, because if meanings are not abstracted away, the procedure is not machine-executable. Part of the creative process of the programmer is precisely to find an algorithm which computes correctly without having to use the meaning of the data. Like the beauty of the melody on a piano roll, the meaning of the data can only be interpreted by an outside observer.

The function of a stored program computer is to carry out all the functions of all possible software.

There are technical manuals documenting the functionality of a CPU. These manuals describe the exhaustive list of all instructions the CPU can execute. The function of a CPU is to carry out all possible computations which are expressible by a combination of these instructions. This is clearly what CPUs are designed to do. This is consistent with the mathematical observation that the instruction cycle is a universal algorithm.

A CPU has all the structure necessary to execute the instruction cycle. This means it has all the structure to execute all programs written using these instructions. Introducing a program into memory does not add more structure to the computer. This is consistent with the notion that writing data in memory doesn't add structure. Deciding otherwise leads to logical inconsistencies like the one I have mentioned about programs which are constantly modified as they are executed.

From this perspective, introducing a program into a computer doesn't give the computer a functionality it doesn't already have. The computer is already capable of executing the program. The program itself may be new in the sense that it may have never been written before but the inherent capabilities of the machine are not new or changed.

Here is another logical inconsistency in the legal view. According to the legal theory, introducing software into a computer imparts the computer with the functions of the software. What if the software implements a universal algorithm? Let's say it is a Python virtual machine. Then the function being imparted is the ability to carry out all possible computations provided it is given the program as input. This is the function of a Python virtual machine. Then, if we apply the legal logic, it is possible for a programmer to make a machine with such functionality. He just has to introduce a Python virtual machine in the computer memory. Where is the reason to believe a hardware engineer can't make a circuit with similar functionality?

Here is yet another logical inconsistency. I argue that software is mathematics because the computer always executes a universal mathematical algorithm. Lawyers often reply that the mathematics of computing is a description of the computer, like the mathematics of mechanical engineering is a description of pulleys and levers. Even if this were correct, what would this mathematical description say about the function of the computer? -- It is that it carries out a universal algorithm. It can compute all the computable functions provided it is given a program as input. One can't deny this is the function of the computer while simultaneously arguing that the mathematics of computing is a description of the physical computer.

The function of a program is not a function of the underlying computer

According to the operating principles of a stored program computer, the functionality of software is implemented by a combination of two actions: (a) meanings related to the application are given to the bits and (b) data is given as input to an existing algorithm. Let's see what this is doing to the functional relationship between the program and the electronic structure of the underlying computer.

  1. Meanings related to the application are given to the bits.

    The computer is unable to process meanings. It can only process uninterpreted symbols. The hardware of a computer has no more relationship with the meanings of symbols than a printing press has with the meaning of the printed matter. Functionality defined in terms of meanings is not related to the electronic structure of the computer. The part of software functionality which concerns meanings is not the result of the operations of digital electronics.

  2. Data is given as input to an existing algorithm.

    All data may be given as input to an algorithm to define functionality. In mathematics, this is a standard way to define new functions from known algorithms. All algorithms and all data could be and are used in this manner. For example, if the functionality is to double the number, would the number 2 count as something which brings new functionality to a multiplying circuit? If we are to double the numbers, one of the inputs must be 2. If we don't supply the number 2, the circuit will not double the number. If we use the number 3 instead of 2, the function would change to tripling a number.

    Similarly, all software has a relationship of this nature with the instruction cycle. It is data given as input. And it is common for programmers to implement functionality by controlling the inputs to known algorithms which are not the instruction cycle.

    Here we have a dilemma. Does all data given as input have the ability to change the function of the electronics? Could the bits for the movie Citizen Kane count as something which imparts the function of playing Citizen Kane when given to a video player? Or is it that some inputs impart functionality and some don't? How do we tell the difference? There is no objective criteria in technology to solve this riddle.

The concept of software imparting a new function to the computer has no basis in technology because: a) computers are unable to process meanings; and, b) the inherent capabilities of the machine encompass the range of all possible inputs, this includes all possible programs.

At this point is must be clear that the facts of technology do not support the legal theory that when software has new functionality then a new machine is made. I mention below a pair of additional points worthy of mention.

The Functional v. Non-Functional Data Theory

All non functional data may be represented by executable instructions

How do we define the distinction between functional (software) and non-functional (not software) data? This distinction has no basis in technology. As observed before, all types of data may be functional when used as input to a suitably chosen algorithm. Conversely algorithms may always be used to represent data which is normally viewed as non-functional.

For example, consider MIDI files for storing music. The files contained "events" which are instructions on how to generate a sound, say a note. A series of events in the file represents a tune. Playing a MIDI file is going through the events one by one and generating the corresponding sound. Can we say the function of a specific MIDI file is to play a specific tune? The contents of this file can certainly be seen as an algorithm for playing the tune. Why can't we say the function of the MIDI file is to play a particular tune?

Another example is the PDF and PostScript file formats which are instructions for printing the visual appearance of a document on a page. A PostScript file is a printing algorithm for the document. Why can't we say the function of the PostScript file is to print this particular document?

How about this method? (see the text of Hamlet)

  1. Print the text "Act 1, Scene 1"

  2. On the next line, print the text "SCENE I. Elsinore. A platform before the castle. "

  3. On the next line, print the text "FRANCISCO at his post. Enter to him BERNARDO "

  4. etc for all the lines of text in the play

This is an algorithm for printing Shakespeare's Hamlet. Similar algorithms may be written for all literary work.

Cloud computing -- where is the particular machine?

Cloud computing raises issues of its own. If a patent is written to software which requires a user's computer to interact with a sea of servers over the Internet, can we pinpoint a *particular* machine or apparatus that infringes a machine patent? How can a network of devices on the Internet be *particular* new machines?

Conclusion

For all the above reasons, case law conflicts with known technological facts. This is a correctable problem. After all, the same legislature that thought it could mandate legally the value of pi in conflict with its actual value, were persuaded, upon encountering more information, to table and hence kill off the unrealistic and ludicrous law. As the local paper quoted one legislator on the ill-advised bill, "the Senate might as well try to legislate water to run up hill as to establish mathematical truth by law."

When legal fictions contradict known technological truths, it doesn't change the technological truths. It merely puts the law outside of reality.

________________________________
1 In his dissent, Judge Archer states: (see footnote 28, emphasis in the original)

The Freeman case cited by the majority did not hold that a general purpose computer when programmed becomes a special purpose computer and a "new machine" within § 101.

Freeman reads in part like this: (emphasis in the original, some footnotes omitted)

The fundamental flaw in the board's analysis in this case lies in a superficial treatment of the claims. With no reference to the nature of the algorithm involved, the board merely stated that the coverage sought "in practical effect would be a patent on the algorithm itself." Though the board gave no clear reasons for so concluding, its approach would appear to be that every implementation with a programmed computer equals "algorithm" in the Benson sense. If that rubric be law, every claimed method that can be so implemented would equal nonstatutory subject matter under 35 U.S.C. § 101. That reasoning sweeps too wide and is without basis in law. The absence, or inadequacy, of detailed claim analysis in the present case is further illustrated by the conclusion that "the novelty resides in the program" when, as here, the claims recite no particular computer program. In the present case, it is not the claims but the specification that discloses implementation of the claimed invention with computer programs.

As a bare minimum, application of Benson in a particular case requires a careful analysis of the claims, to determine whether, as in Benson, they recite a "procedure for solving a given type of mathematical problem." 409 U.S. at 65, 93 S.Ct. at 254, 175 USPQ at 674, 409 U.S. at 65, 93 S.Ct. at 254, 175 USPQ at 674 (emphasis added).

Because every process may be characterized as "a step-by-step procedure * * * for accomplishing some end," a refusal to recognize that Benson was concerned only with mathematical algorithms leads to the absurd view that the Court was reading the word "process" out of the statute.

The manner in which a claim recites a mathematical algorithm may vary considerably. In some claims, a formula or equation may be expressed in traditional mathematical symbols so as to be immediately recognizable as a mathematical algorithm. See, e. g., In re Richman, 563 F.2d 1026, 195 USPQ 340 (Cust. & Pat.App.1977); In re Flook, 559 F.2d 21, 195 USPQ 9 (Cust. & Pat.App.1977), cert. granted sub nom., Parker v. Flook, ___ U.S. ___, 98 S.Ct. 764, 54 L.Ed.2d 780 (1978). Other claims may use prose to express a mathematical computation or to indirectly recite a mathematical equation or formula by means of a prose equivalent therefor. See, e. g., In re de Castelet, supra (claims 6 and 7); In re Waldbaum, 559 F.2d 611, 194 USPQ 465 (Cust. & Pat.App.1977). A claim which substitutes, for a mathematical formula in algebraic form, "words which mean the same thing," nonetheless recites an algorithm in the Benson sense. In re Richman, supra, 563 F.2d at 1030, 195 USPQ at 344. Indeed, the claims at issue in Benson did not contain a formula or equation expressed in mathematical symbols. When considered as a whole, each of the claims in Benson did, however, recite in prose a formula for converting binary coded decimal numbers into binary numbers.

The "local positioning algorithm" described in appellant's specification is the order of steps in processing the hierarchical tree structure and spatially relating the various characters to be displayed. Appellant has thus used the term "algorithm" as a term of art in its broad sense, i. e., to identify a step-by-step procedure for accomplishing a given result.[8]

The method claims here at issue do not recite process steps which are themselves mathematical calculations, formulae, or equations. Each of claims 8, 9, and 10 merely defines a new, useful, and unobvious process for operating a computer display system. The board, therefore, erred in its reliance on Benson as its sole basis for concluding that the present method claims are drawn to nonstatutory subject matter.

______________________

Footnote 8 reads:

[8] The preferred definition of "algorithm" in the computer art is: "A fixed step-by-step procedure for accomplishing a given result; usually a simplified procedure for solving a complex problem, also a full statement of a finite number of steps." C. Sippl & C. Sippl, Computer Dictionary and Handbook (1972).

2 See Freeman in footnote 1 above for example.

3 This meaning of the phrase "instruction set" must not be confused with "computer program". I have seen patent attorneys calling programs "set of instructions". But in computer architecture the phrase "instruction set" refers to the collection of instructions which are permissible in a program because they are the ones a CPU can recognize. It does not refer to the program itself.

4 Compare this with what the court have said in WMS Gaming: (emphasis in the original)

The instructions of the software program that carry out the algorithm electrically change the general purpose computer by creating electrical paths within the device. These electrical paths create a special purpose machine for carrying out the particular algorithm. [3]

This refers to footnote 3

A microprocessor contains a myriad of interconnected transistors that operate as electronic switches. See Neil Randall, Dissecting the Heart of Your Computer, PC Magazine, June 9, 1998, at 254-55. The instructions of the software program cause the switches to either open or close. See id. The opening and closing of the interconnected switches creates electrical paths in the microprocessor that cause it to perform the desired function of the instructions that carry out the algorithm. See id.

The fallacy is three-fold.

The first error is that the instructions are executed one at the time. The so-called electrical paths last no longer than the time required to execute one instruction. Then they are replaced by other paths for the next instructions. Modern computers may execute billions of instructions per second. The so-called electrical paths are very transient in nature.

The second error is that "electronic switches" and "electrical paths" are a metaphor which must not be construed literally. In a microprocessor all the actual electrical paths are permanently etched at the factory and can never be changed afterwards. The transistors change the voltages in these wires. The current may flow or not flow according to the changes in voltages as if switches were opened and closed but transistors are not actually switches and there is no creation of actual electrical paths that were not previously there.

The third error is this transistor activity is the execution of the computer program. It is not the act of programming the computer. The computer is programmed by storing the instruction in main memory. This operation must be completed before the first instruction of the program is executed.

5 Most people will think of addition and multiplication as single indivisible steps. However these procedures have some complexity and require multiple steps to handle the individual digits, especially when the numbers are large. The computation of an addition or a multiplication is carried out by means of an algorithm and the portions of computer circuitry for such calculations are hardware implementations of these algorithms. Perhaps the complexity and algorithmic character of ordinary arithmetic is more apparent when one considers the long division algorithm. Other arithmetic algorithms are multiplication algorithms and also Russian peasant multiplication. When the numbers are represented by binary numerals, this is computer bits, algorithms suitable for binary arithmetic must be used.

6 Several such universal algorithms are decribed in this book: Kluge, Werner, Abstract Computing Machines, A Lambda Calculus Perspective, Springer-Verlag Berlin Heidelberg 2005.

7 Please compare this with the explanation from Bernhart:

[I]f a machine is programmed in a certain new and unobvious way, it is physically different from the machine without that program; its memory elements are differently arranged. The fact that these physical changes are invisible to the eye should not tempt us to conclude that the machine has not been changed.

I have read this quote as referring to main memory. From the technical perspective it is clearly incorrect for the reasons stated in the article. What if we construe the phrase "memory elements" as referring to a computer hard disk?

A hard disk is a device where information is read and written. It is much slower than main memory. It is not directly connected to the CPU so it cannot be used as a source of instructions for the instruction cycle. A hard disk is a peripheral device which is accessed through input and output operations.

According to the stored program computer architecture programming the computer is introducing the program in main memory. Programming the computer is not installing or storing the program on the hard disk. Programs on a hard disk are not directly executable because the CPU cannot read the instructions directly from the hard disk. In order to execute a program on hard disk the user must first issue a command to bring it into the main memory. The user may, for example, double click on an icon or select an item in a menu. Then the operating system will locate the program on the hard disk and bring it into main memory for execution. This operation is not a simple copy of the bits. Some transformations may have to be made, like linking the program with libraries stored in memory and resolving physical addresses. A program on hard disk is not in its final executable form until it has be loaded in the computer main memory.

The task of putting a program on hard disk where the operating system may locate it and bring it into memory on the user's behalf is called installing the software. This task is different from the operation of programming the computer as defined above. Programs may also be removed from the hard disk. The install utility which comes with most software often allows to uninstall the program, this is to remove it from the hard disk.

Like main memory, hard disks are writable devices which are constantly updated as the computer operates although at a much slower rate. Treating changes in hard disk as the making of a new machine is like treating changes in main memory as the making of new machines. This is conflating the normal operation of the machine with changes in its structure. But in the case of a hard disk there is no possibility to argue that the changes affect the computation the computer is able to carry out because programs cannot be executed directly from the hard disk.


  


Does Programming a Computer Make A New Machine?~By PolR | 756 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Thursday, July 19 2012 @ 02:18 PM EDT
Does mutation in one's gene due to cosmic radiation make a new *YOU*?

[ Reply to This | # ]

Do not try to make sense of case law on patents
Authored by: Anonymous on Thursday, July 19 2012 @ 02:20 PM EDT
Case law on patents does not make sense because it is not supposed to make
sense. The law clearly prohibits patents on software. Rich people do not like
that. Courts do what rich people want. The courts, especially the ideologues
on CAFC are determined to grant software patents regardless of what the law
says. Lawyers are experts at word games, so they just play mindless word games
until they confuse the issue so much that they can grant patents on software.
That is all that is going on: courts playing word games in order to work around
a law they do not like, because following the law inconveniences the
corporations that bribe them.

It does not make sense. It does not have to make sense. All it has to do is
give the rich prople what they want.

[ Reply to This | # ]

Does playing a DVD make a new machine
Authored by: tknarr on Thursday, July 19 2012 @ 02:21 PM EDT

It's the same question: does playing a particular DVD in a DVD player make a new machine? The function of a DVD player isn't to play Alien or Titanic. It's to play DVDs. Which particular DVD it plays... really doesn't matter as far as it's function is concerned. The same for computers: which particular program it's running at the moment isn't really relevant to it's function as a device to run programs.

That isn't to say that including a computer renders a device unpatentable. It's entirely possible that a device that includes a computer and a program running on it may be patentable, but you'd need to look at the entire device as a whole and not just the computer bit. And yes, that means that a lot of devices may be unpatentable because they're just a simple repackaging of an existing piece of electronics. That's life: things that are new and novel become routine and standard, and technology progresses onwards.

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Miravlix on Thursday, July 19 2012 @ 02:23 PM EDT
Isn't this one of those cases, where machine doesn't mean the same thing.

While I mostly define a machine one way, there has been cases of machine usage
through time that doesn't mean a PC as a whole is a machine.

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Thursday, July 19 2012 @ 02:50 PM EDT
Strange enough, there is a technology that resembles the legal theory.
Its simplest implementation is a GAL (gate array logic).
An chip made of logic gates ( NOR and Flip Flops) connected by electric fuses.
To program one of those means literally burning the fuses permanently. Creating
a "new machine" in the process.

But other than the word programming and the fact that this kind of chip was
sometimes used in building computers, they have nothing to do with Computer
Programs.

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Thursday, July 19 2012 @ 03:13 PM EDT
I'll try to go back and read the entire argument. Needs an executive summary.

Might it be ok if software was considered to be making a new, specific machine,
as long as one had to patent the details of that machine? Implying source code
and details of algorithms would have to be supplied. NOT patentable would be
just the description of what that particular software-machine does.

What would happen? Many companies would avoid patenting their true secret sauce
because they would have to provide too many details. Most of the source code
would be shown to have prior art and to be obvious to practitioners. Any
remaining kernel that receives the patent would educate competitors. And
competitors would tweak the ideas creating new software-machine 'inventions'
that don't infringe.

One take on the whole problem is that the patent problem stems from allowing
patents on the problem being solved rather than the particular software-machine
itself.

[ Reply to This | # ]

two nitpicks
Authored by: Anonymous on Thursday, July 19 2012 @ 03:33 PM EDT
1. Your argument that "transistors are not switches" and
that there are "no new electrical paths" is overstated.

Granted my knowledge of chip manufacture is not very up-to-
date, I thought that the goal was to minimize power drain.
Thus, whenever possible, use a voltage corresponding to
(approximately) zero current as one of your logical states
(0 or 1, doesn't matter which). You can certainly use
transistors to do that, and used as such, they sure look
like switches to me. If you have switches, you have changes
in "electrical paths". Granted, the paths aren't really
"new" - they were all anticipated when the hardware was
designed. That's where your argument should focus. Is it a
"new machine" when I flick the switch to turn on the lights
in my house? Or the player piano analogy...

2. Your claim that computers don't understand semantics is
not quite correct. It's possible, and increasingly being
done in artificial intelligence, to implement semantics
using an algorithmic system. Even your example betrays
this: you say that a computer can "recognize" the letter F.
Semantics aren't magic; if humans can master semantics, so
can computers.

[ Reply to This | # ]

If it's a new machine, is that machine patentable?
Authored by: darkonc on Thursday, July 19 2012 @ 04:12 PM EDT
Executive summary(I'm short on time, but want to throw out the base ideas).

Let's accept (for the sake of argument) that it is a new machine... but is that new machine patentable?

  1. The base CPU and memory are already patentable... There are millions of them in many cases... Prior art.
  2. Loading data into the memory and the registers is the heart of 'creating a new machine', but this is all taught as part of the prior art of 'general purpose machines'.
  3. If this is a multi-processing machine, then it's not really 'general purpose'... It executes other processes during the same time period. If it is pre-emptive multi-tasking (most machines today), then there's even no guarantee that the program being patented will not be interupted by other tasks... so it is not special purpose.. .Just general purpose .... -- unless it is dedicated to that one task and only that one task.

  4. All that's really left when you take out the un-patentable (or prior art) bits, is the algorithm itself.... and that's not patentable.
QED

(feel free to expand on the points).

---
Powerful, committed communication. Touching the jewel within each person and bringing it to life..

[ Reply to This | # ]

No
Authored by: Anonymous on Thursday, July 19 2012 @ 04:29 PM EDT
If you use a screwdriver to open a tin can or to stab somebody, the tool is
still the same, though it's usage is slightly different from its intended use.

As long as you don't change the hardware, the computer will be the same machine,
though it is likely to behave differently.

cb

[ Reply to This | # ]

  • No - Authored by: mbouckaert on Thursday, July 19 2012 @ 06:43 PM EDT
Corrections
Authored by: PolR on Thursday, July 19 2012 @ 04:30 PM EDT
If any are needed, like typos.

[ Reply to This | # ]

OT Here
Authored by: PolR on Thursday, July 19 2012 @ 04:32 PM EDT
For anything not directly on-topic.

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: fjaffe on Thursday, July 19 2012 @ 04:33 PM EDT
In patent law, what is "a machine"? Is it a term of art? Has there
been claim construction on it? Or does it just have a generic meaning?

Seems to me like before you can really answer the question being posed you have
to have an accepted definition of what a new machine actually is

[ Reply to This | # ]

  • Machine? - Authored by: Ian Al on Friday, July 20 2012 @ 02:02 PM EDT
    • Machine? - Authored by: Anonymous on Sunday, July 22 2012 @ 03:05 PM EDT
      • Machine? - Authored by: Ian Al on Monday, July 23 2012 @ 03:45 AM EDT
News Pick here
Authored by: PolR on Thursday, July 19 2012 @ 04:34 PM EDT
You know the drill.

[ Reply to This | # ]

COMES here
Authored by: PolR on Thursday, July 19 2012 @ 04:39 PM EDT
Thanks to all the volunteers. This work needs to keep on.

[ Reply to This | # ]

Yes it does, but that's besides the point.
Authored by: Anonymous on Thursday, July 19 2012 @ 04:40 PM EDT
All it has to do for it to be patentable subject matter is me a NEW USE of an old machine.

35 U.S.C. 101 Inventions patentable.
Whoever invents or discovers any new and useful process, machine, manufacture, or composition of matter, or any new and useful improvement thereof, may obtain a patent therefor, subject to the conditions and requirements of this title.

35 U.S.C. 100 Definitions.
When used in this title unless the context otherwise indicates -
(a) The term "invention" means invention or discovery.
(b) The term "process" means process, art, or method, and includes a new use of a known process, machine,, manufacture, composition of matter, or material.
(c) The terms "United States" and "this country" mean the United States of America, its territories and possessions.
(d) The word "patentee" includes not only the patentee to whom the patent was issued but also the successors in title to the patentee.
(e) The term "third-party requester" means a person requesting ex parte reexamination under section 302 or inter partes reexamination under section 311 who is not the patent owner.

[ Reply to This | # ]

Computer-readable medium
Authored by: jpvlsmv on Thursday, July 19 2012 @ 05:47 PM EDT
Many patents also have mirrored claims regarding a program stored on a
computer-readable medium.

Is a book suddenly patentable if I describe a novel invention (say, a better
mousetrap) in it?

What if a picture in the book is the blueprint of a better mousetrap? Is the
book patentable now?

What if the someone else builds an all-in-one fax/scan/3D-printer that can
actually make that mousetrap from the picture? Is the book patentable now?

Why is a computer-readable floppy disk different than that book? If I publish a
book with some OCR-able python code, is the book patentable now?

--Joe

[ Reply to This | # ]

Does Programming an FPGA Chip Make A New Machine?
Authored by: Anonymous on Thursday, July 19 2012 @ 06:06 PM EDT
I've been wanting to ask this question ever since the last
article on this concept came out, but...

I have a software program written here in Verilog intended
to be applied to an FPGA chip. The compiled verilog program
effectively describes the internal wiring of the FPGA chip
(or more specifically, how the gates are to connect to each
other. The only instruction cycle (if there is one) is
whatever is encoded in the program.

So does this mean that software patents are only valid if
they are intended to be applied to an FPGA chip?

[ Reply to This | # ]

Does giving a patent attorney a new remit make a new patent attorney?
Authored by: SirHumphrey on Thursday, July 19 2012 @ 06:30 PM EDT
Does giving someone a recipe to make a cake cause irreversible operational
transformation?

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Thursday, July 19 2012 @ 06:34 PM EDT
Consider the ENIGMA encoding machine of WW2 (a mechanical computer)

One setup variation (among many) was to change the order of the rotors.

According to the patent attorneys this makes it a new machine.

Scherbius (and Hebern) patented the the rotor machine.

Now, if we follow the patent attorneys he would have to have patented every
single variation(rotor order, plugboard setup and rotor setting - millions of
permutations) to have a valid patent, because each change created a new
machine.

Mac



[ Reply to This | # ]

Can a New Machine be only a Programmed Computer?
Authored by: vb on Thursday, July 19 2012 @ 06:50 PM EDT

I think it depends on the function of the machine and the output. If there is
no output, I don't think there is a machine. If the output is doing something
(like controlling a rocket), than I say it's a machine. And the machine is
using a programmed computer. The same machine might have been created without a
computer - using switches and relays from the 1960's

[ Reply to This | # ]

The effect of programming
Authored by: Anonymous on Thursday, July 19 2012 @ 07:15 PM EDT
The article is based on statements that can be
easily shown to be incorrect at least in some
well-known cases and cannot therefore be used
to draw the conclusion that programming != new machine
in general.

Two examples:

> Programming a computer is a reversible operation.

Not true. Once you program a PROM device it's
set for good. The programming fuses are permanently blown
and the device has been physically altered. I have
personally reprogrammed a core-memory computer by
threading thin copper wire through small ferrite rings
on a large matrix. To make a new computer that performs a
new function, you have to destroy the old one. In that
case some of the computer parts can be recycled upon
reprogramming, but the programming operation is not
reversible.

> No new machine structure is made when a computer is programmed.

Not true. Be it electric charge, a blown fuse, or a
magnetic domain, it is still a new physical structure.
As a rather obvious example, a PCM device stores a
program or data in the form of crystalline or amorphous
fuses. The change of a bit from '0' to '1' is indeed
physical in every possible sense of the word. By your
logic, making an ice cube by freezing water does not
create a new physical structure if the presence of the ice
cube might be construed to represent a bit used in
computation?

[ Reply to This | # ]

If you want to say it's a new machine...
Authored by: RTH on Thursday, July 19 2012 @ 07:28 PM EDT

... then the patent should specify what, precisely, in the hardware, is new about it. Every single software patent ever issued will fail on that score, because every physical machine, every operating system, every different programming language, will cause the programmed machine to look entirely different from every other programmed machine that implements the same patent.

If the patent cannot specify what specific feature of the programmed machine hardware is distinctive, then clearly it is about the idea or the software process rather than anything patentable.

[ Reply to This | # ]

You're overlooking something
Authored by: Anonymous on Thursday, July 19 2012 @ 07:40 PM EDT
Imagine, if you can, a computer that needs to be unlocked
before a new program can be loaded.

A "client" sees the machine perform some particular function
at first.

After a "service provider" arrives to reprogram it, the
client does not see the machine perform the original
function. The machine now performs a new function.

So you see, to the client it looks like a "new machine". For
example, they may call up the service provider to complain
"I want my old machine back".

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Thursday, July 19 2012 @ 07:43 PM EDT
If software running on a general purpose computer creates a new machine and
hence supports the argument that it is patentable (which is what this is really
about), what about the software existing in isolation which seems to be where
the patents are applied? It seems to me that making a big deal about how the
software transforms the machine then taking that machine out of the equation
undermines the argument.

Also, what is the impact of multi-tasking? If I run a word processor on a
general purpose computer, the argument goes that I create a specialised word
processing machine. If I run a spreadsheet program instead, I create a diferrent
machine. If I run both a word processor and a spreadsheet, haven't I created a
third type of machine? If I run patented software in parallel with a little
application I write that no one else has access to, haven't I created a new and
totally unique machine?

My point is that you either look at the software and general purpose computer
together or you consider the software in isolation. It seems that the argument
that they need to be considered together is required to justify the existence of
software patents, but then the software needs to be considered alone when it
comes time for granting and enforcing them.

[ Reply to This | # ]

Instruction set vs. Program
Authored by: Anonymous on Thursday, July 19 2012 @ 07:57 PM EDT
One analogy that might be useful to people trying to understand the difference
between an instruction set and a program is that instruction sets are like
alphabets, while programs are like texts using that alphabet.

[ Reply to This | # ]

Thank you !!
Authored by: Anonymous on Thursday, July 19 2012 @ 08:05 PM EDT
PolR, this is great work. Thank you for taking the time to write this. I think
your explanations and examples are very clear.

My fondest hope is that Professor Michael Risch has an opportunity to read this
piece, and consider its contents in the context of the discussion he had here
with the Groklaw audience back in early June. (I remember making several of the
same arguments to him back then, but not as clearly as you have made them in
this article.)

[ Reply to This | # ]

Calculator
Authored by: Anonymous on Thursday, July 19 2012 @ 08:39 PM EDT

    Has a CPU
    Has memory
    Has a display
    Has output
    Has a bus
And yet punching the buttons "1+1=" into it does not create a different machine then punching "2+2=" into it does.

RAS

[ Reply to This | # ]

By their reasoning, CDs patentable as well?
Authored by: pcrooker on Thursday, July 19 2012 @ 09:21 PM EDT
First, many thanks for clarifying this argument, I was wondering what happened with Prof. Risch's article and the rebuttals. In the example you gave, In re Noll:
Appellant's programmed machine is structurally different from a machine without that program.
How is this different to a CD player? The machine a general purpose music player, it plays all different kinds of music. The machine is different with every song. Each song is a digital set of instructions that cause the output of certain electrical signals, the instructions are carried out by the "operating system" of the CD player. How is this different to a program on a computer????

[ Reply to This | # ]

multi threading and task switching
Authored by: Anonymous on Thursday, July 19 2012 @ 09:23 PM EDT
a discussion on multi-threading and task switching might be
interesting so as to highlight how, after program A is loaded
onto a computer and then program B is also loaded onto the
computer that program A still continues to be processed.

[ Reply to This | # ]

Does RE-Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Thursday, July 19 2012 @ 09:29 PM EDT
NO.
Just like white bread vs Raisin bread in a toaster .
It is still what the toaster or computer was designed to do .
Toast different breads or pastries.
Or run all kinds of different languages and commands.

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Thursday, July 19 2012 @ 09:43 PM EDT

Does teaching people make them new people? And if it does, does it make people patentable?

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Thursday, July 19 2012 @ 10:01 PM EDT
While I understand and applaud the attempt to shift patent
law out of the computer science domain, the argument above
can be modified slightly to produce an absurd result (at
least absurd under current patent law.)

Consider a complex, innovative new invention, composed
entirely out of pieces of machined aluminum. Now consider
an equal mass of aluminum as a solid ingot.

The difference between these is simple placement of the
atoms, none of which we can directly see. Why would one
group of aluminum atoms in one configuration be patentable,
wheras another group is not? They are just individual
aluminum atoms, in different places. They're barely even
held together, at least in terms of how strong metallic
bonds are compared to discrete covalent bonds.

I think what this boils down to is the patentability of
something is a social construct, created arbitrarily to fill
a perceived need of society. There's no "universal" marker
which defines patentable versus non; the patent spectrum is
a slippery slope, with unpatentable on one end and
patentable on the other.

Like all slippery slopes, the only real way to handle it is
to draw a line in the sand, ignoring the fact that it's
arbitrary. I hope that your argument can be used to shift
the current incoherent placement of that line; but be aware
that it may also open up other avenues of attack.

[ Reply to This | # ]

Other tidbits
Authored by: BitOBear on Thursday, July 19 2012 @ 10:56 PM EDT
There is no requirement that the entire program be _present_ or even
_describable_ in memory when "the program" is in progress.

In particular most modern operating systems only have part of the program in
memory at one time. Does that mean we have only some unknown percentage of
"the new machine" or that only some unknown percentage of "the
machine is new at this time"?

Gaming is particularly notorious for only having part of the software present in
the machine at any given time.

And in the case of DRM, some significant portion of "the new machine"
may be inaccessible to the CPU until some key exchange allows one part of
"the new machine" make another part of the new machine new again.

===

A running machine can be "frozen" with it's new program fully intact
and "in process", and that machine can be stored or sent elsewhere,
onto wholly different hardware, possibly running under a wholly different
hardware platform, and then it can be "unfrozen" to continue on as if
nothing has happened.

This is particularly true of "virtual machines" where I can checkpoint
(pack up) the whole machine as pure data on my Intel CoreI7 laptop, send it over
to my AMD host, and continue it onward.

===

One of the lesser features of distributed computing known as process migration
can take a "running program" and hand it off in part or whole to
different machines at different times so that it can believe that it has some
particular set of hardware "all at once" that it really only has every
now and again.

For example, a program may run a huge data "set up" phase for an array
processor. Said process setup happens on the hardware that is good at doing
setup, but doesn't have any array processor. Then the program migrates onto the
array vector processor and does its thing. Then it migrates over to the results
storage thing and saves its data.

The thing is, the "programmer" wrote code for "one machine"
that had input, array processor, and output hardware.

So now three (typically less expensive) machines did the word of one
not-actually-ever-existent machine (that would have cost a whole lot to build).

===

And if I freeze one "new machine", make int into a different "new
machine", and then switch back; and possibly back and forth repeatedly; how
many new machines were there? One (the sum of the two new machines accreted into
an otherwise un-envisioned machine)? Two, one for each separate "new
machine"? Three, one for each of the first two, and a third for the
summary? Or and infinite number of new machines, each representative of the
various fractions and minutely detailed distribution of the two machines that
the real hardware "transformed into"

[ Reply to This | # ]

  • wrong - Authored by: Anonymous on Friday, July 20 2012 @ 12:33 AM EDT
NO
Authored by: Anonymous on Friday, July 20 2012 @ 12:29 AM EDT
WHY?
Well for one the parts of htemachine dont magically change
its the thoughts of zeros and ones that temporarily while
hte program is run that have the math you do get its answers
for you.

one could actually arrive at the same mathmatical answers
btw in many differant ways.

think this way how many ways are there to come up with a
program that starts at zero and ends at one million.

go on write a program ....does this mean each program is the
same cause they do the same thing? NO. BUT thats what
patents do the force people to not innovate new ways to do
things or improve.

P.S. there are some real slow ways one could arrive at the
number 1 million .... example one could add 5 trillion hten
count backward in a loop by one....
BUT is the result is you get to one million does that mean
its the same as say
0 + 1 million ? Of course not.

ALSO at no time does the actual parts of my computer become
any different ONLY ITS USE....

THIS is why in my opinion you cannot say a program means a
new machine....it is the same machine told to do something
new.

when i tell you to count form zero to one million you do not
become something new. YOUR the same person....the only diff
here is the computer just does things faster.

[ Reply to This | # ]

It all depends ...
Authored by: nsomos on Friday, July 20 2012 @ 01:00 AM EDT
Clearly, according to the patent lawyers,
such things make it a new machine precisely when it is to
their advantage, and fails to make a new machine precisely
when it is NOT to their advantage.

Basically, no matter what you do, you must enrich the
patent lawyers. That is indeed the bottom line.

Our whole civilization exists only to serve the patent lawyers.
Once you understand this, everything else falls neatly into place.
How could we have been so dumb as to not understand this sooner?

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Friday, July 20 2012 @ 03:08 AM EDT
It's an interesting question, but only slightly more so than the question
"how many angels fit on the head of a pin?"

The question we should be asking is, do patents in a certain area, of a certain
duration, benefit society as a whole - does it stimulate companies to innovate
and to share these innovations to a degree that outweighs the cost of granting
them a monopoly.

And that question should be re-evaluated at regular periods.

[ Reply to This | # ]

  • Not so! - Authored by: Ian Al on Friday, July 20 2012 @ 03:28 PM EDT
ThrPilgrim's bad Analogy
Authored by: ThrPilgrim on Friday, July 20 2012 @ 04:01 AM EDT
The scene:- A court room in the USA

ThrPilgrim picks up the Judge's gavel and proceeds to do violence against the
head of a patent lawyer.

ThrPilgrim calmly replaces the Judge's gavel back on its plinth.

The Judge: Please inform my why I should not have you Arrested and tried for
assault.

Thrpilgrim: In placing your gavel back on it's plinth I changed the electrical
constituents of my brain thus creating a new person. This new person should not
be held responsible for the actions of the person who hit the lawyer.

---
Beware of him who would deny you access to information for in his heart he
considers himself your master.

[ Reply to This | # ]

These arguments are all far too complex
Authored by: Anonymous on Friday, July 20 2012 @ 04:08 AM EDT
A computer is a general purpose machine. A program is a particular
configuration of this machine serving a specialized purpose.

Depending on what environment you wire the computer into, only a small subset of
configurations may make any sense.

Now let us assume that the only interaction is through preexisting interfaces,
like a display and keyboard.

It still interacts with its environment under a specific program to solve a
specific task.

Can I patent a machine that I build only from standardized unchanged components
available in every hardware store, without soldering or welding, possibly even
from a fixed and finite number of components like a metal building kit?

I guess most people would agree. In that case we are again talking about a
configuration of standardized components. A CPU itself is a configuration of
standardized components like resistors and transistors.

So we are clearly about something perfectly analogous to patentable matter. And
as long as the lawmakers don't get their act together in defining clear criteria
and borderlines what should constitute patentable matter in this particular
area, the lawyers and judges are bound to applying analogies to a field of
matter that is, in itself, such a complex microcosmos that governing it by the
laws for physical matter makes no sense: laws are supposed to be beneficial to
society, and what is beneficial and what not is so different for software as
such, and so different within the variety of fields you can call
"software", namely specific configurations of preexisting general
purpose components, that the attempt to avoid creating any more specific laws is
bound to lead to nonsense.

You can't work by analogy on the whole of a field as diverse as software. If
the lawmakers don't get their act together and create laws specifically for
software that cater to the underlying complexity of the matter, we will continue
to see gaming of the patent system to purposes not at all consistent with the
common good of society, the criterion that should underlie all laws.

[ Reply to This | # ]

Programmable logic controllers?
Authored by: IMANAL_TOO on Friday, July 20 2012 @ 04:40 AM EDT
How does this relate to Programmable logic controllers? Are each session a new machine? From Wikipedia:
Before the PLC, control, sequencing, and safety interlock logic for manufacturing automobiles was accomplished using hundreds or thousands of relays, cam timers, drum sequencers, and dedicated closed-loop controllers. The process for updating such facilities for the yearly model change-over was very time consuming and expensive, as electricians needed to individually rewire each and every relay.

Digital computers, being general-purpose programmable devices, were soon applied to control of industrial processes. Early computers required specialist programmers, and stringent operating environmental control for temperature, cleanliness, and power quality. Using a general-purpose computer for process control required protecting the computer from the plant floor conditions. An industrial control computer would have several attributes: it would tolerate the shop-floor environment, it would support discrete (bit-form) input and output in an easily extensible manner, it would not require years of training to use, and it would permit its operation to be monitored. The response time of any computer system must be fast enough to be useful for control; the required speed varying according to the nature of the process. [...]

The main difference from other computers is that PLCs are armored for severe conditions (such as dust, moisture, heat, cold) and have the facility for extensive input/output (I/O) arrangements. [...]

PLC programs are typically written in a special application on a personal computer, then downloaded by a direct-connection cable or over a network to the PLC. The program is stored in the PLC either in battery-backed-up RAM or some other non-volatile flash memory. Often, a single PLC can be programmed to replace thousands of relays. Under the IEC 61131-3 standard, PLCs can be programmed using standards-based programming languages. [...]

While the fundamental concepts of PLC programming are common to all manufacturers, differences in I/O addressing, memory organization and instruction sets mean that PLC programs are never perfectly interchangeable between different makers. Even within the same product line of a single manufacturer, different models may not be directly compatible.

So under the doctrine each new session would be a new machine. Doesn't sound right to me.



---
______
IMANAL


.

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: MadTom1999 on Friday, July 20 2012 @ 05:46 AM EDT
If it is a new machine and I run another program on it then presumably that's
yet another new machine so your patent is now void.

[ Reply to This | # ]

Benson, Flook, new algorithms for old and an auto analogy
Authored by: Ian Al on Friday, July 20 2012 @ 06:22 AM EDT
PolR shows that no charges in computer memory cells can be declared non-executable. PDF and MIDI files are strong examples, but we forget that every content file is subject to the same argument. That is because we understand a music file or a picture file as just sounds in the air or dots on the screen. A vector image puts us on the right path. Only by following the instructions to describe the vector paths do we create the intended image on the screen: the image is not in the file. However, a bit-map is no different - just simpler. If you don't follow the instructions to create the correct colour of pixel and to align the pixels in the correct matrix on a display device, then you don't get a picture. That the instructions are easy does not stop the file being a file of instructions and data, the data being more colour instructions. I cannot argue against PolR's assertion that everything in all computer memory is instructions and that the programs are all mathematically valid algorithms that can be executed using the computer's universal algorithm.

PolR has shown that no new machine is created by charging up the memory cells in a computer. He, rightly, points out that the same argument applies to all the various ways that computer technology has of symbolising binary values. From Benson:
The method sought to be patented varies the ordinary arithmetic steps a human would use by changing the order of the steps, changing the symbolism for writing the multiplier used in some steps, and by taking subtotals after each successive operation. The mathematical procedures can be carried out in existing computers long in use, no new machinery being necessary. And, as noted, they can also be performed without a computer
So, the Supreme Court confirms that a new machine is not created out of 'existing computers long in use' by executing a newly discovered algorithm on them.

However, perhaps the algorithms that those symbols represent are a protectable method or process. Methods and processes can be algorithms, too. Perhaps each program can be protected because it is a newly invented algorithm that can be executed by the existing and unchanging universal algorithm 'carried out in existing computers long in use'.

This is what the Supreme Court opinion in Parker v. Flook, said (but, the emphasis is mine):
This case turns entirely on the proper construction of 101 of the Patent Act, which describes the subject matter that is eligible for patent protection. It does not involve the familiar issues of novelty and obviousness that routinely arise under 102 and 103 when the validity of a patent is challenged. For the purpose of our analysis, we assume that respondent's formula is novel and useful and that he discovered it. We also assume, since respondent does not challenge the examiner's finding, that the formula is the only novel feature of respondent's method. The question is whether the discovery of this feature makes an otherwise conventional method eligible for patent protection.

The plain language of 101 does not answer the question. It is true, as respondent argues, that his method is a "process" in the ordinary sense of the word. But that was also true of the algorithm, which described a method for converting binary-coded decimal numerals into pure binary numerals, that was involved in Gottschalk v. Benson. The holding that the discovery of that method could not be patented as a "process" forecloses a purely literal reading of 101. Reasoning that an algorithm, or mathematical formula, is like a law of nature. Benson applied the established rule that a law of nature cannot be the subject of a patent. Quoting from earlier cases, we said:

"`A principle, in the abstract, is a fundamental truth; an original cause; a motive; these cannot be patented, as no one can claim in either of them an exclusive right.' Le Roy v. Tatham, Phenomena of nature, though just discovered, mental processes, and abstract intellectual concepts are not patentable, as they are the basic tools of scientific and technological work."

The line between a patentable "process" and an unpatentable "principle" is not always clear. Both are "conception[s] of the mind, seen only by [their] effects when being executed or performed." Tilghman v. Proctor, In Benson we concluded that the process application in fact sought to patent an idea, noting that

"[t]he mathematical formula involved here has no substantial practical application except in connection with a digital computer, which means that if the judgment below is affirmed, the patent would wholly pre-empt the mathematical formula and in practical effect would be a patent on the algorithm itself."

Respondent correctly points out that this language does not apply to his claims. He does not seek to "wholly preempt the mathematical formula," since there are uses of his formula outside the petrochemical and oil-refining industries that remain in the public domain. And he argues that the presence of specific "post-solution" activity - the adjustment of the alarm limit to the figure computed according to the formula - distinguishes this case from Benson and makes his process patentable. We cannot agree.

The notion that post-solution activity, no matter how conventional or obvious in itself, can transform an unpatentable principle into a patentable process exalts form over substance. A competent draftsman could attach some form of post-solution activity to almost any mathematical formula; the Pythagorean theorem would not have been patentable, or partially patentable, because a patent application contained a final step indicating that the formula, when solved, could be usefully applied to existing surveying techniques. The concept of patentable subject matter under 101 is not "like a nose of wax which may be turned and twisted in any direction . . . ." White v. Dunbar,..

Funk Bros. Seed Co. v. Kalo Co., expresses a similar approach:

"He who discovers a hitherto unknown phenomenon of nature has no claim to a monopoly of it which the law recognizes. If there is to be invention from such a discovery, it must come from the application of the law of nature to a new and useful end."

Mackay Radio and Funk Bros. point to the proper analysis for this case: The process itself, not merely the mathematical algorithm, must be new and useful. Indeed, the novelty of the mathematical algorithm is not a determining factor at all. Whether the algorithm was in fact known or unknown at the time of the claimed invention, as one of the "basic tools of scientific and technological work," see Gottschalk v. Benson, it is treated as though it were a familiar part of the prior art.

This is also the teaching of our landmark decision in O'Reilly v. Morse, In that case the Court rejected Samuel Morse's broad claim covering any use of electromagnetism for printing intelligible signs, characters, or letters at a distance...We think the case must be considered as if the principle being well known, the plaintiff had first invented a mode of applying it . . . .'"

We think this case must also be considered as if the principle or mathematical formula were well known.

Respondent argues that this approach improperly imports into 101 the considerations of "inventiveness" which are the proper concerns of 102 and 103. This argument is based on two fundamental misconceptions.

First, respondent incorrectly assumes that if a process application implements a principle in some specific fashion, it automatically falls within the patentable subject matter of 101 and the substantive patentability of the particular process can then be determined by the conditions of 102 and 103. This assumption is based on respondent's narrow reading of Benson, and is as untenable in the context of 101 as it is in the context of that case. It would make the determination of patentable subject matter depend simply on the draftsman's art and would ill serve the principles underlying the prohibition against patents for "ideas" or phenomena of nature. The rule that the discovery of a law of nature cannot be patented rests, not on the notion that natural phenomena are not processes, but rather on the more fundamental understanding that they are not the kind of "discoveries" that the statute was enacted to protect. The obligation to determine what type of discovery is sought to be patented must precede the determination of whether that discovery is, in fact, new or obvious.

Second, respondent assumes that the fatal objection to his application is the fact that one of its components - the mathematical formula - consists of unpatentable subject matter. In countering this supposed objection, respondent relies on opinions by the Court of Customs and Patent Appeals which reject the notion "that a claim may be dissected, the claim components searched in the prior art, and, if the only component found novel is outside the statutory classes of invention, the claim may be rejected under 35 U.S.C. 101." - Chatfield. Our approach to respondent's application is, however, not at all inconsistent with the view that a patent claim must be considered as a whole. Respondent's process is unpatentable under 101, not because it contains a mathematical algorithm as one component, but because once that algorithm is assumed to be within the prior art, the application, considered as a whole, contains no patentable invention. Even though a phenomenon of nature or mathematical formula may be well known, an inventive application of the principle may be patented. Conversely, the discovery of such a phenomenon cannot support a patent unless there is some other inventive concept in its application.

Here it is absolutely clear that respondent's application contains no claim of patentable invention. The chemical processes involved in catalytic conversion of hydrocarbons are well known, as are the practice of monitoring the chemical process variables, the use of alarm limits to trigger alarms, the notion that alarm limit values must be recomputed and readjusted, and the use of computers for "automatic monitoring-alarming." Respondent's application simply provides a new and presumably better method for calculating alarm limit values. If we assume that that method was also known, as we must under the reasoning in Morse, then respondent's claim is, in effect, comparable to a claim that the formula 2(pi)r can be usefully applied in determining the circumference of a wheel. As the Court of Customs and Patent Appeals has explained, "if a claim is directed essentially to a method of calculating, using a mathematical formula, even if the solution is for a specific purpose, the claimed method is nonstatutory."
In Flook, the Supremes found that any algorithm, no matter how new or for whatever use, must be assumed to be prior art and thus nonstatutory.

Since PolR has shown that all software programs and data are algorithmic instructions and that putting them into computer memory does not change an old computer into a new machine, then the Supreme Court tells us that a software program is nonstatutory whether it is considered as a machine when loaded into a computer memory, a process or a method. If there is nothing in a patent other than a program running on a computer and, perhaps, making sound or images, then the patent has been awarded on nonstatutory subject matter. Even if the computer is running a nuclear power station, the Supreme Court warns us that a competent draftsman attaching some form of post-solution activity to a mathematical formula does not make the formula or algorithm statutory.

In my auto gearbox analogy, I explain that it is the functions applied to the gearbox that might constitute the statutory machine. The functions would be the mechanical waggling of the gearbox mechanics. Using an embedded computer with algorithms to apply the functions to the gearbox via electrical actuators is nonstatutory.

The auto analogy I want to present, this time, is that of a Formula One racing car. The car goes around the race track under the instructions of the driver. The instructions of the winning driver do not create a new vehicle. The instructions given to a computer do not create a new computer.

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

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Friday, July 20 2012 @ 09:41 AM EDT
Can a computer be two different machines at the same time?

[ Reply to This | # ]

Playing Devils Advocate
Authored by: hAckz0r on Friday, July 20 2012 @ 11:20 AM EDT
Lets suppose for a minute that by loading a program into memory and charging its capacitors, we have thus altered its circuits, and modified the machine in a way that is patentable. If that is the case, then by also loading data into the machine we have also modified the machine and thus made it patentable. After all, the behaviour of the machine will of course be completely different if you were to load your finances into your standard 2012 tax application vs Bill Gates personal finances, won't it? We have thus altered the machines behaviour, and therefore made it a new machine.

This idiotic concept means that just by creating a Microsoft word document (or any other document type) we have created a patentable process, and therefore anybody that loads that same document, or created one just like it, would need to pay 'patent' royalties to the original creator of the document, regardless of knowledge of that original documents existence or the associated patent. Don't even think about keeping this years scores for your favourite team in a spreadsheet if it could generate the same numbers as someone else.

Congress, are you listening? By calling your wife on your iPhone to tell her you will be late tonight you may be forfeiting your personal fortune to some troll out there. Think about how crazy this world would be if those bits were actually patentable.

---
The Geeks IP Law: The future health of a Corporation is measured as the inverse of the number of IP lawsuits they have filed in the last 3 years.

[ Reply to This | # ]

Main memory - Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Friday, July 20 2012 @ 11:28 AM EDT
The Buroughs 205 computer, (please accept my apologies if the spelling
is incorrect), was a general purpose stored program computer that used
drum memory. It used a spinning drum, the precursor to the spinning
disk, to store the program it was executing. One needed to wait until
the next instruction passed beneath the read/write head before the
instruction could be executed. The spinning drum was the only
memory the computer had. It had a printer, card reader and paper tape
reader and a front panel. But with appropriate peripherals, I am sure it
could be modified to implement most software patents.

It might be a little slow. It was a vacuum tube based machine.

[ Reply to This | # ]

Yup
Authored by: Anonymous on Friday, July 20 2012 @ 11:39 AM EDT
It reads like every other software patent ever granted. Are you sure you did
not write Microsoft's patents? It does need a little more boilerplate, and some
diagrams.

The really, really scary thing is that the USPTO would grant this patent, and if
they saw through it and rejected it, then the geniuses on the CAFC would reverse
them and force them to issue it.

Our only hope in this whole mess is that some day the judges on CAFC die and we
stop granting stupid patents. Then, twenty years later the mess will have
expired.

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Friday, July 20 2012 @ 02:07 PM EDT
To say a computer is a different machine because of software that is installed
is to say every time you use a different grade of gas in your car it is now a
different car

[ Reply to This | # ]

Just another avalanche of logic that will be useless in court
Authored by: Anonymous on Friday, July 20 2012 @ 02:30 PM EDT
Just like the "software is math" truism. It seems to me that the
patent system now is having precisely the opposite effect that the founders
intended. If they were alive today, I think they would remove it from the
Constitution. Would that discourage innovation? On the contrary, the free
software model proves that inventors will still invent, because that's who they
are; and that rather than withhold the invention, inventors will throw it out
into the public arena for the public good, because that's also who they are.

[ Reply to This | # ]

Going a bit old-school here
Authored by: Anonymous on Friday, July 20 2012 @ 03:29 PM EDT
Let's say someone patented the Jaquard (sp?) loom. And then someone put in
different cards so that it wove a new pattern. Is that now a different, also
patentable, machine? Or is it just a Jaquard loom doing what a Jaquard loom is
supposed to do?

I think this analogy is both fundamentally true to what's going on with
computers and programs, and also simple enough that judges can really see what's
going on.

MSS2

[ Reply to This | # ]

From a Computer Scientist
Authored by: Anonymous on Friday, July 20 2012 @ 03:39 PM EDT
As much as I dislike the current patent regime, I have to
disagree with you about what "Computer Science" indicates on
this point.

The whole point of a 'universal computer/turing-machine'
(what we now know simply as a "computer"), is that it
simulates the actions of a whole class of traditional
machine (e.g., a non-programmable calculator can be
simulated by a program running on a programmable computer).

Likewise, a huge number of traditional machines that clearly
would be patentable can be effectively simulated and/or
prototyped by a computer. If, in the end, the machine maker
decides to directly market the computer program rather than
build the physical machine, why should that make it
unpatentable?

The real problem is that computer programming makes the
creation of new machines so easy and common that the patent
office cannot judge them effectively.

[ Reply to This | # ]

What is the procedural remedy when appeals courts have assumed false facts?
Authored by: Anonymous on Friday, July 20 2012 @ 06:03 PM EDT
If everything PolR is correct, then the appeals courts have assumed false facts about the nature of computers that was never addressed by the original trier of fact, that is, the trial court.

My question is: "How should such errors be addressed in theory, by the system?"

Does the defendant have to introduce evidence at trial showing that programming a computer does not create a new machine, and then on appeals point out "this decision does not apply since it is based on assumption that do not apply to this case". Or can one just submit a corrective brief on appeals?

[ Reply to This | # ]

Does Programming a Computer require a new licence?
Authored by: Anonymous on Friday, July 20 2012 @ 11:14 PM EDT
Given how greedy some manufacturers are if programming the computer made it a
new device there would be something in the EULA stating that you had to upgrade
your licence, or you would have to buy a licence for the number of programs you
planned to run.

[ Reply to This | # ]

Let's try that with a one bit computer
Authored by: soronlin on Saturday, July 21 2012 @ 11:25 AM EDT
It may be instructive to apply these lessons to the simplest computer around, a
computer that many people have in their homes right now: the landing light.

In most homes the light on the upstairs landing is controlled by two switches,
one upstairs and one downstairs. No matter where you find yourself you can witch
the light on or off by flicking the nearby switch.

This switch is a one bit computer. It has two bits of memory and one bit of
output. If both switches are "on" then the output is "on".
If both switches are "off" then the output is also "on". But
if one switch is "on" and one switch is "off" then the
output is "off".

If I describe it like that, it is clear that it is a machine that calculates the
equality function: if both switches are the same then the output is on.

Let's program this computer. To do that we have to partition the memory into
program and data. So let's say the upstairs switch is the program and the
downstairs switch is the data. Now switch the upstairs switch "on".
This program calculates B=A. The output is on if the input is on. Now lets write
a new program: switch the upstairs switch "off". This new program
calculates B = not A. The output is "on" if the input is
"off", and "off" if it is "on".

There are two more programs you can write that use the downstairs switch as the
program, but the courts don't recognise relocating a program as changing it.

The question is, have you created three machines, or is there still only one? To
my mind there is only one, and we have taken the "switches" argument
at face value and not got involved in the instruction-cycle argument, both of
which further prove the point that no new machine is created.

(NB if the electrician was not careful about the wiring, your computer may
calculate the not-equal function instead. You can still write the same two
programs, but the machine code is different.)

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: wharris on Sunday, July 22 2012 @ 08:14 AM EDT
I summarized parts of this discussion to my wife. She thinks much of the
confusion comes over "what machine are we talking about".

So instead of talking about universal functions or computational theory, this
thread will talk in more detail about what the machine actually does. The
summary "execute any program" is absolutely correct.

The definitive technical documentation for what an Intel processor actually does
is located at:
http://download.intel.com/products/processor/manual/325462.pdf

It is an exhaustive 4000 page document. It describes how the processor can
operate in compatibility mode or 64-bit mode (among others).

It describes the registers the processor has (EAX, EIP, EFLAGS, and many others
when in compatibility mode). It describes how data is read from and written to
memory (little endian). It describes how integers can be represented (unsigned
or 2s complement). Or how floating point numbers can be represented (4
precisions to choose from, based on the IEEE floating point representation). And
finally, very relevant to this point, it describes the instructions that the
processor can execute (ADD, SUB, INC, CMP, JMP, and many others).

That is the machine. That is what Intel has designed, and how it is used.

Here is a question: If adding software creates a new machine, then what part of
Intels technical documentation has been changed? More specific questions: Does
adding a web browser create a new register? Does it create a new WEB opcode?
Does it change how the processor represents memory or the interrupts available?

The answer to all of those is no. Any software, including a web browser is a
sequence of instructions given to the processor to execute. I will leave it to
others to argue over whether or not a sequence of instructions is or should be
patentable, but they do not create a new machine.

[ Reply to This | # ]

Does Changing Configuration Make A New Machine?
Authored by: Imaginos1892 on Sunday, July 22 2012 @ 03:48 PM EDT
Does locking the front wheel hubs on a pickup truck make it
into a "new machine"? Because it starts out as a 2-wheel drive
vehicle, then you lock the wheels to the front drive axles and
it is "transformed" into a 4-wheel drive truck.

Just like a computer, all the parts were already there; you
just reconfigured a couple of them and now the truck has
capabilities that it did not have before. Ergo, you must have
created a new machine! File the patent! Sue world + dog!
-----------------------
Long ago, when men cursed and beat the ground with sticks,
they called it witchcraft. Now they call it golf.

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Sunday, July 22 2012 @ 04:53 PM EDT
I think the basic problem is that at a shallow glance the arguments in the
article can be thought to be a alternation of the million monkeys creating the
works of shakespeare if given enough time.

Any argument about all programs being anticipated by the computer itself risks
getting muddled with comparison with "any text can be written by a
typewriter and thus it is anticipated by the typewriter".

It is bit like...laywers think computers and software are so complicated so
there must be a new machine hidden there. Adding technical details about DRAM on
top of this is probably not helping. What is needed is good analogies that can
be understood by a laymen without him understanding the computer and then have
expert witness testify that the analogy capture the essence of computer
programming.

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Monday, July 23 2012 @ 08:10 AM EDT
Yes, it does. In this case, patent case law and Computer
Science agree. But that's because of Alan Turing's Universal
machine, which makes the difference between hardware and
software moot, and because of Von Neumann's machine, which
makes the difference between program and data moot.

Let me explain. Alan Turing proved that each computable
function can be expressed as a specific Turing Machine,
whose output is the result of said function. From this point
of view, each purpose built computer calculates a specific
function, and two computers are equivalent, if they
calculate the same output from the same imput -
independently of their inner calculation steps.
Alan Turing then proved that each specific Turing Machine
can be simulated by feeding a tape with a program to an
Universal Machine. And he proved, that each machine, which
can be programmed to simulate an Universal Machine is
computationally equivalent to the Universal Machine.
From Turing's point of view, an Univeral Machine together
with a tape containing specific instructions creates a
specific Turing machine expressing a specific computable
function.
John von Neumann then designed a machine, which does not
make a difference between input and instruction how to
handle the input. So you could now create the computational
equivalent of a specific Turing machine together with a
specific input by feeding a tape of data to a Von Neumann
machine.
In the Von Neumann world, each tape of data together with a
Von Neumann machine creates a new machine, and it does not
care if certain calculation steps or data are present as
hard- or software. As long as the output is the same, two
different Von Neumann computers with two specific tapes of
data represent the same machine.

[ Reply to This | # ]

Calling all engineers
Authored by: Anonymous on Monday, July 23 2012 @ 02:06 PM EDT
Would it be possible to create a CPU which was constructed out of buckets and
troughs and used water, instead of electrons, to do it's processing?

Ok, so it would be a pretty simple CPU but I was thinking that if a lawyer/judge
could see just how a CPU works and that the structure of the machine doesn't
change.

Would this sort of experiment even be of use?

j

[ Reply to This | # ]

Does Programming a Computer Make A New Machine?~By PolR
Authored by: Anonymous on Tuesday, July 24 2012 @ 04:11 PM EDT
You can argue that programming a computer doesn't cause physical changes of the
type described here.

But you can't claim that programming a computer doesn't cause physical changes
at all. All bits are going to be stored in some physical manner; whether this
physical change is in the form of capacitor charges, physical switches, or
something else is beside the point. The only answer to "is a computer
programmed to do X physically different from a computer programmed to do
something else" is "yes".

Of course, whether these physical differences make it into a "different
machine" is another question, but it's a question of how to define
"different machine", and doesn't mean that anyone misunderstands how
computers work.

[ Reply to This | # ]

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

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