ESP Wiki is looking for moderators and active contributors!

Difference between revisions of "Software does not make a computer a new machine"

(House: Reworded.. but still a work in progress)
(US case law: Those who argue that software can make a new machine sometimes use the "as a whole" phrase from the Diamond v. Diehr ruling by US Supreme Court on 3 March 1981. Ben Klemens refutes this in his book Math You Can't Use and in)
(41 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{navbox}}
+
The "new machine" argument is an attempt by patent lawyers to fool examiners and judges by presenting a non-novel component (the computer) together with a non-patentable component (the software) and get a patent on the combination, even though neither component is actually patentable and the act of putting the software on a computer is trivial and expected.
One method used to circumvent the limits of software patentability, is to claim not "software" but "software and a computer".  The goal is to present one non-innovative object (the computer) and one non-patentable object (the software) and get a patent on the combination.  The argument made is that, when the software is put on the computer, the computer becomes a '''"new machine"'''.
 
  
One example of this logic being rejected by the US [[CAFC]] (appeals court), is the [[in re Alappat]] decision, which said:
+
The patent applications usually mention a computer or a "storage medium".  When defending such patents in court, patent lawyers sometimes describe the idea as creating a "new machine" because the computer appears to have gained a new ability, when in reality the computer could always perform these tasks.  So, instead of claiming this:
  
<blockquote>
+
* a process which does ''X'', using a computer
As the player piano playing new music is not the stuff of patent law, neither is the mathematics that is Alappat’s “rasterizer.”
 
</blockquote>
 
  
==The point of these analogies==
+
The patent lawyer writes this:
  
Our goal is to show how computers are the same as other things whose use cannot be patented.  When you use a record player, you get music.  The music might be technical, innovative, new, etc. but no one will ever get a patent on use of a record player.  This page collects other examples to show why running software on a computer can't be considered patentable.
+
* a computer which can do ''X''
  
==Brief analogies==
+
This is sometimes called a '''Beauregard claim''' in the [[USA|US]].
 +
==US case law==
  
=== Calculator ===
+
Those who argue that software can make a new machine sometimes use the "as a whole" phrase from the [[Diamond v. Diehr ruling by US Supreme Court on 3 March 1981]].  [[Ben Klemens]] refutes this argument in his book [[Math You Can't Use]] and in the amicus brief he wrote for the CAFC case [[in re Bilski]].
  
A basic calculator does not become a new calculator when you punch in a new calculation for it to perform.
+
===In re Alappat (1994)===
  
=== Car ===
+
A patent of this type was upheld by the [[US CAFC]] in 1994 in the [[In re Alappat]] case.  The patent was on using anti-aliasing to improve image display, and the court agreed that "''a general purpose computer in effect becomes a special purpose computer''".
  
If we have patented an automobile which can drive anywhere, we cannot then come back and file patents for driving from Albequerque to San Diego, etc.  -- the more general patent already applies.
+
===In re Beauregard (1995)===
  
=== Human ===
+
''[[In re Beauregard]], 53 F.3d 1583 ([[US Court of Appeals for the Federal Circuit|Fed. Cir.]] 1995)''.
  
A human performing a set of steps does not become a different human when he or she changes to perform a new set of steps. The human is simply following a new configuration in his or her head.
+
====Example "Beauregard claim"====
  
Similarly, a computer system running different software is still the same (already patented) computer system.
+
One example given by ''[[Patently-O]]'' is claim #2 of this patent application:<ref>http://www.patentlyo.com/patent/2011/08/if-the-software-method-is-not-patentable-then-neither-is-the-computer-readable-medium.html</ref>
  
=== Fingers v. fork ===
+
<blockquote>
 +
2. A computer readable medium containing program instructions for detecting fraud in a credit card transaction between a consumer and a merchant over the Internet, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to carry out the steps of:<br />
 +
<br />
 +
a) obtaining credit card information relating to the transactions from the consumer; and<br />
 +
<br />
 +
b) verifying the credit card information based upon values of plurality of parameters, in combination with information that identifies the consumer, and that may provide an indication whether the credit card transaction is fraudulent, wherein each value among the plurality of parameters is weighted in the verifying step according to an importance, as determined by the merchant, of that value to the credit card transaction, so as to provide the merchant with a quantifiable indication of whether the credit card transaction is fraudulent,<br />
 +
<br />
 +
wherein execution of the program instructions by one or more processors of a computer system causes that one or more processors to carry out the further steps of;<br />
 +
<br />
 +
[a] obtaining information about other transactions that have utilized an Internet address that is identified with the credit card transaction;<br />
 +
<br />
 +
[b] constructing a map of credit card numbers based upon the other transactions; and<br />
 +
<br />
 +
[c] utilizing the map of credit card numbers to determine if the credit card transaction is valid.<br />
 +
<br />
 +
3. A method for verifying the validity of a credit card transaction over the Internet comprising the steps of:<br />
 +
<br />
 +
a) obtaining information about other transactions that have utilized an Internet address that is identified with the credit card transaction;<br />
 +
<br />
 +
b) constructing a map of credit card numbers based upon the other transactions and;<br />
 +
<br />
 +
c) utilizing the map of credit card numbers to determine if the credit card transaction is valid.
 +
</blockquote>
  
A human using his/her fingers to scoop up food does not become a fork. Similar effects can be achieved through completely different "machines".
+
==UK case law==
  
==Long analogies==
+
From the [[Symbian ruling by UK Court of Appeal on 8 October 2008]] declared that yes, software can turn an old computer into a new machine:
  
=== House ===
+
<blockquote>
 
+
56. Putting it another way, a computer with this program operates better than a similar prior art computer. To say "oh but that is only because it is a better program – the computer itself is unchanged" gives no credit to the practical reality of what is achieved by the program. As a matter of such reality there is more than just a "better program", there is a faster and more reliable computer.
A house, whose components and behavior will be described, can be made to be a full working computer.
+
</blockquote>
 
 
The house has doors, motors, sensors, wiring, and a clock. These tangible components are called "hardware". They are built once and their behavior is never changed afterward. Doors open and shut, clocks tick, etc, all according to design. The quality and construction of the doors, clock, sensors, etc, can be patented. These are all tangible things constructed.
 
  
Software is intangible. Software is information. "Creating" software does not create anything tangible. When we add software to the house, we simply rearrange some of the doors in the house (into the open position or else into the closed position). Creating software adjusts the position of components of the house. How can we represent a value of 1 vs 0? By opening a door rather than closing it. Similarly, we can raise our hand vs lowering it. Creating software does not create anything tangible. Creating software rearranges. We open a door or close it; we raise a hand or lower it. We open a pair of scissors or close them. We turn on a light or turn if off. We don't create a new house, person, scissors, or light when we add software to these things. Software is just information. The value in software depends on what we do with that information.
+
==Analogies==
  
In more detail...
+
* "''As the player piano playing new music is not the stuff of patent law, neither is the mathematics that is Alappat’s “rasterizer.”''" (From the minority opinion in the [[US CAFC]]'s 1994 [[in re Alappat]] decision)
 
+
* A basic calculator does not become a new calculator when you punch in a new calculation for it to perform.
In the case of our house, sensors collectively interpret the software (the state of the doors) and then enable the motors to move doors. Software in a given state thus leads to software in a new state at each clock tick. Whether a given door is open or closed impacts if some other door will open or close. How one door affects another door (at the next clock tick) is defined by the wiring of the sensors and motors. What the software information means is defined by the hardware.
+
* When you use a record player, you get music. The music might be technical, innovative, new, etc. but no one will ever get a patent on a combination of a record player and music.
 
+
<!-- please only add more if you think your example is very comparable to software+computer. We need a small number of very good examples. Not a large number of mediocre ones. -->
Human beings can perform the same behavior of this house. The doors are our arms. We can raise them or lower them. The clock ticking is one lead human shouting continually each second so that all can hear: "NEXT... NEXT... NEXT...." The sensors sensing doors open or closed are the eyes of the humans looking at the hands of other humans to see if they are up or down. Each set of human eyes if fixated on a particular set of arms. The motors are the arm muscles of the humans that will raise or lower the arms.
 
 
 
Instead of humans we can use light bulbs. Instead of bulbs we can use lots of paper and write or erase marks on associated portions of the papers.
 
 
 
Instead of using these bulky mechanisms, we can also use very small parts that work very fast.
 
 
 
OK, now let's talk about algorithms and brains. Let's look at "firmware" and how it differs from software.
 
 
 
There is one set of doors in the house that are set when the house is built and are possibly never changed again. These firm doors are called firmware. These doors serve as a simpleton brain for the house. These doors are wired in a particularly clever way and define a core basic set of "instructions" that the house will understand from its software. This little simple firmware brain has one job: to repeatedly look at the door configuration in a certain other place (software) and, based on the configuration it finds, interpret it as an instruction and instruction data. When done with one instruction, go to the next location and keep interpreting over and over the doors as instructions until you reach the "halt" instruction, at which point the house will seize computing. The location of the next instruction is defined by the size of the prior instruction and usually means right after it, unless we encountered the "jump" instruction, which tells the simple brain to look for the next instruction elsewhere. An instruction such as "add" is handled by looking at the two sets of doors that will be interpreted as numbers (eg, 128 could be the interpretation of eight doors set as open, closed, closed, closed, closed, closed, closed, closed, in that order). And instruction such as "move" might copy the following 8 doors into some other group of 8 doors. How do we know which set of doors to change? Every 8 doors has an address (eg, 1, 2, 3, 4 .. to designate the first set of 8 doors, the second set of 8 doors, etc). Thus, the simple brains first finds that the next 8 doors has the instruction "move" and it is followed by 8 doors that refer to a value (eg, 57:  ) and by another 8 doors with an address (eg, 12  ). So the simple brains moves 57 into the 12th set of doors.
 
 
 
This firmware magic is effected with the wiring of sensors and motors on one set of doors representing the firmware. This is a special location generally not accessible to software instructions. For example, we usually cannot try to "move" into doors that hold firmware some other value because the system is not wired up to enable that. The firmware addresses don't exist, so we cannot reference them. We can only reference other software doors. Firmware is thus almost an extension of the hardware. It is a simplified brains that defines the instructions the house will understand from when software is added.
 
 
 
We can forget about firmware and simply call it "wiring", but it shows that there are two brains in play. The first brain is very "simple-minded" and unchangeable. The second brain is the software we add to actually perform a useful computation. So in referring to brains, it helps to be aware that there are two levels. One level is hard-coded into the machine by the time you buy the machine, and it does something very important to the functioning of the machine but extremely useless to humans that want to effect a given computation. Meanwhile, the interesting stuff comes from the software algorithms humans create. This software will be limited and defined by that simple-minded instructions set the firmware enabled. From the computer software developer point of view, firmware doesn't exist or can be abstracted as hardware, but from the view of the engineer designing a new computing hardware, he or she might use very low level computing chips built by someone else that will require a new instruction set to be "programmed" into it in a way that will be consistent with the other hardware components being designed by the engineer. So to some hardware engineers, firmware is software.
 
 
 
To get back to the humans that were simulating the computing house, each human will always follow a piece of firmware, a simple, dumb algorithm. In contrast, software is the initial configuration of raised or lowered arms that will set everything in motion. While the humans each locally perform a simple-minded raising of arms based on simple (firmware) rules applied to a few things seen with the eyes, a complex (software) algorithm gets effected collectively by them all. Note that the software (ie, the configuration of hands) comes in a near infinite number of possibilities. The software developer does not change what each human does but does leverage that information to design a complex software algorithm.
 
 
 
Adding software does not create a new machine. Adding software is nothing but a writing of instructions and then handing it over to the "machine" that will execute those instructions.
 
 
 
 
 
Rough notes:
 
 
 
These connections define many features of this house, such as whether the house will be 32 bits (meaning the sensors-motors collaborate to effect logical and mathematical operations on door values, 32 doors at a time).        as if it were one number) and which instructions the house will be able to perform.    make up the rest of the important components of this computer., and a motor per door to open and close that door. This house is the computer. It is hardware. It can be patented. The components of this house are never changed once we build the house. That is, the hardware is defined one time and remains fixed until the computer is destroyed.
 
 
 
Now we add software to this house. Adding software means reconfiguring the doors of the house. Each door can be open or otherwise closed; thus, the information contained in each door's state is binary: 1 or 0 are the only values possible for a single door.
 
 
 
A first group of doors in the house is configured once when the house is built, and that configuration is essentially kept fixed in place forever. These firm doors ("firmware") hold the mathematical information necessary to allow the house to work as a general purpose computer (to cycle repeatedly reading and interpreting "instructions" encoded in other doors).
 
 
 
Every other door might potentially be reset over time, either into the open position or into the closed position. The state of these doors is the software.
 
 
 
Software and firmware are simply information. The hardware, the house itself (doors, clock, wires, sensors, etc) is the hardware. The hardware is never changed once you build the machine. The firmware is sometimes designed to be changed periodically. The software is changed all the time. Again, hardware is tangible and refers to material components. Firmware and software are abstract things. They represent the collective open or closed state of doors. An analogy would be that if I raise my hand, I can represent a "1" value and if I lower my hand I can represent a "0" value. I do not change who I am by raising or lowering my hand; however, the information of whether my hand is raised or lowered can be used by other people to help them carry out an informational algorithm.
 
 
 
When we flip the switch to start up the clock, the algorithms encoded into the doors' open-or-closed state will be carried out. Here is what this means. At each clock tick, each sensor tests whether its door is open or closed and then helps potentially activate the motor controlling a different door to either open or close. In this way the current state of each door (open or closed) helps define the state the doors will enter at the next clock tick. This testing and activating happens at every tick until the "halt" state is reached or until the power is turned off. The state of groupings of doors can be used to represent any number, letter, or other symbol. The way the sensors and motors are wired together on these doors representing numbers (letters, etc) enables certain mathematical and logical operations to be performed on them. In this way, and as proven mathematically, we can carry out any discrete algorithm, any finite set of steps, possible. The starting state of all the doors when the clock first starts to tick will determine what algorithm gets performed. This will be the effect that this house will mimic until the next reconfiguration.
 
 
 
 
 
 
 
What defines the behavior of each door-sensor pair depends on the design of the house (how it was wired) and essentially defines the instructions the house understands, whether it looks at doors in groups of 32 (32-bit computing), etc. Each such distinct new house would constitute a new "computer" that potentially would be patentable, but **if we keep the house's wiring, capabilities, limitations, etc (its entire potential behavior) identical and then add new software (ie, change the configuration of the doors prior to turning it on again), we have not created a new machine but have simply come upon a new way to use the existing machine**.
 
 
 
Maybe it takes creativity, luck, analysis, etc, to find a good set of doors to open and close (for example, mathematicians and physicists try to solve new problems by coming up with such a configuration), but we are most certainly not creating a new machine. We are reconfiguring the state of the machine, reconfiguring its doors to be either opened or closed. And, further, the machine, in any of its states, does nothing but process information in a way any human could by knowing the initial state of the doors. Since this is just information processing (digital in nature) coupled with ordinary conversion to (from) analog form through standard peripheral devices (see below), we do not need a slow human or a bulky house for the digital processing, but can instead use a modern digital calculator (the "computer") which uses very tiny parts that use up very little energy and have very little mass so can move very fast.
 
 
 
This modern computer already exists and can be bought very inexpensively in many stores around the US. It's just a glorified pocket calculator. That same modern computer can run essentially an infinite number of distinct algorithms. We just have to set the initial configuration of "open or closed doors" appropriately and the computer will do the rest automatically. We are not creating a new machine. We are configuring an existing machine's "doors" to the *exact* same opened or closed position as we would if we were dealing with a computing house.
 
 
 
To see the results and interact with the gigantic computing house more easily we take a standard display monitor, keyboard, mouse, etc, and attach it to the doors that are responsible for holding the values inputted into and outputted from these peripheral devices. We would use ordinary peripheral devices for this in the expected way and for the designed purpose. These all might have been patented. What goes in and out of them is just data in the proper understood format, eg, to be directly displayed on the screen as colors. Every image can be trivially digitized to be seen or vice-versa to be marked as door open/close configuration. At the time we built (and perhaps patent this computing house), we also create the adaptors that change the electrical signals of these peripheral devices to signals that drive the motors corresponding to the proper set of doors. We note that because the house will be very slow in comparison to a modern computer, the display screen will be updated very slowly (so we won't be able to watch a film except over a long time like perhaps months). We note as well that we would need to use at least about the number of doors as we might find inside all the houses that exist in the US today (and this would run only very crude programs with low resolution graphics).
 
  
 
==Related pages on {{SITENAME}}==
 
==Related pages on {{SITENAME}}==
 
* [[Arguments]]
 
* [[Arguments]]
 
* [[Software is math]]
 
* [[Software is math]]
* [[Choose your words]]
+
* [[Choosing words to use in legal proposals]]
 
* [[Patenting software in ROM]]
 
* [[Patenting software in ROM]]
 
* [[Analogies]]
 
* [[Analogies]]
 +
** [[Workspace: A house that computes (analogy)]]
 
* [[Computer simulations and representations]]
 
* [[Computer simulations and representations]]
  
Line 100: Line 77:
  
 
* [http://bosson.blogspot.com/2009/11/software-is-special-purpose-machines.html Software is a special purpose machine says microsoft]
 
* [http://bosson.blogspot.com/2009/11/software-is-special-purpose-machines.html Software is a special purpose machine says microsoft]
* [http://www.groklaw.net/article.php?story=20091029172602205 Correcting Microsoft's Bilski Amicus Brief -- How Do Computers Really Work?], [[Groklaw]] guest article
+
* [http://www.groklaw.net/article.php?story=20091029172602205 Correcting Microsoft's Bilski Amicus Brief -- How Do Computers Really Work?], 31 Oct 2009, '''[[Groklaw]]'''
 
* [http://people.ffii.org/~jmaebe/swpat/cii.html Patents on CII's and pure software patents: what's in a name?], '''Jonas Maebe''' - ''discusses washing machines and mobile phones''
 
* [http://people.ffii.org/~jmaebe/swpat/cii.html Patents on CII's and pure software patents: what's in a name?], '''Jonas Maebe''' - ''discusses washing machines and mobile phones''
 +
* [http://en.wikipedia.org/wiki/List_of_patent_claim_types#Beauregard Patent types: Beauregard], '''Wikipedia'''
 +
* [https://en.wikipedia.org/wiki/Piano_roll_blues Piano roll blues], '''Wikipedia'''
 +
* [http://itlaw.wikia.com/wiki/Beauregard_claim Beauregard claim], '''IT Law Wiki'''
 +
 +
==References==
 +
{{reflist}}
  
  
 
{{footer}}
 
{{footer}}
 
[[Category:Pages with analysis of legal wordings]]
 
[[Category:Pages with analysis of legal wordings]]

Revision as of 06:16, 10 March 2014

The "new machine" argument is an attempt by patent lawyers to fool examiners and judges by presenting a non-novel component (the computer) together with a non-patentable component (the software) and get a patent on the combination, even though neither component is actually patentable and the act of putting the software on a computer is trivial and expected.

The patent applications usually mention a computer or a "storage medium". When defending such patents in court, patent lawyers sometimes describe the idea as creating a "new machine" because the computer appears to have gained a new ability, when in reality the computer could always perform these tasks. So, instead of claiming this:

  • a process which does X, using a computer

The patent lawyer writes this:

  • a computer which can do X

This is sometimes called a Beauregard claim in the US.

US case law

Those who argue that software can make a new machine sometimes use the "as a whole" phrase from the Diamond v. Diehr ruling by US Supreme Court on 3 March 1981. Ben Klemens refutes this argument in his book Math You Can't Use and in the amicus brief he wrote for the CAFC case in re Bilski.

In re Alappat (1994)

A patent of this type was upheld by the US CAFC in 1994 in the In re Alappat case. The patent was on using anti-aliasing to improve image display, and the court agreed that "a general purpose computer in effect becomes a special purpose computer".

In re Beauregard (1995)

In re Beauregard, 53 F.3d 1583 (Fed. Cir. 1995).

Example "Beauregard claim"

One example given by Patently-O is claim #2 of this patent application:[1]

2. A computer readable medium containing program instructions for detecting fraud in a credit card transaction between a consumer and a merchant over the Internet, wherein execution of the program instructions by one or more processors of a computer system causes the one or more processors to carry out the steps of:

a) obtaining credit card information relating to the transactions from the consumer; and

b) verifying the credit card information based upon values of plurality of parameters, in combination with information that identifies the consumer, and that may provide an indication whether the credit card transaction is fraudulent, wherein each value among the plurality of parameters is weighted in the verifying step according to an importance, as determined by the merchant, of that value to the credit card transaction, so as to provide the merchant with a quantifiable indication of whether the credit card transaction is fraudulent,

wherein execution of the program instructions by one or more processors of a computer system causes that one or more processors to carry out the further steps of;

[a] obtaining information about other transactions that have utilized an Internet address that is identified with the credit card transaction;

[b] constructing a map of credit card numbers based upon the other transactions; and

[c] utilizing the map of credit card numbers to determine if the credit card transaction is valid.

3. A method for verifying the validity of a credit card transaction over the Internet comprising the steps of:

a) obtaining information about other transactions that have utilized an Internet address that is identified with the credit card transaction;

b) constructing a map of credit card numbers based upon the other transactions and;

c) utilizing the map of credit card numbers to determine if the credit card transaction is valid.

UK case law

From the Symbian ruling by UK Court of Appeal on 8 October 2008 declared that yes, software can turn an old computer into a new machine:

56. Putting it another way, a computer with this program operates better than a similar prior art computer. To say "oh but that is only because it is a better program – the computer itself is unchanged" gives no credit to the practical reality of what is achieved by the program. As a matter of such reality there is more than just a "better program", there is a faster and more reliable computer.

Analogies

  • "As the player piano playing new music is not the stuff of patent law, neither is the mathematics that is Alappat’s “rasterizer.”" (From the minority opinion in the US CAFC's 1994 in re Alappat decision)
  • A basic calculator does not become a new calculator when you punch in a new calculation for it to perform.
  • When you use a record player, you get music. The music might be technical, innovative, new, etc. but no one will ever get a patent on a combination of a record player and music.

Related pages on ESP Wiki

External links

References