Computer Ethics, Summer 2012
Corboy Law 602; Tuesdays & Thursdays, 6:00-9:00
Week 5, Class 9
In ACLU v Alvarez, in which the Seventh Circuit last month issued an
injunction against enforcement of the Illinois Eavesdropping Act in
cases involving recording of the police in public, the First Amendment
is definitely a major theme of the ruling. However, as the ruling is
not final, there is correspondingly no final determination that the law
violates the First Amendment.
The dissenting judge, Richard Posner, does not necessarily disagree with the First Amendment issue. He writes in his dissent:
The ACLU insists on, and the majority opinion endorses, the right to record conversations to which police officers are parties even if no party consents to the recording [emphasis added -- pld]
In other words, Posner recognizes at least some legitimate privacy
concern in the law. Note that the ACLU wanted to record
police/demonstrator interactions, and thus obtaining consent even of
one party might easily prove impractical.
Readings
Read Baase Chapter 3 on Speech
Read Baase Chapter 4 section 7 which includes patents
Some patent papers
These are also assigned reading.
1. Simpson
Garfinkel, Patently Absurd, 1993

Garfinkel's article is pretty easy reading, pointing out some problems
with software patents specifically.
2.Richard
Stallman on Patents
, 2002
Stallman is against software patents, of course. However, his case here
is
better than many open-source-related arguments; in fact, it is squarely
aligned with the interests of software-development businesses.
3.Paul Graham, a
computer scientist and one of the partners of the venture-capital firm
Y Combinator, wrote a 2006 essay Are Software
Patents Evil?
Graham makes the following claim early on:
One thing I do
feel pretty certain of is that if you're against
software patents, you're against patents in general. Gradually our
machines consist more and more of software. Things that used to
be done with levers and cams and gears are now done with loops and
trees and closures. There's nothing special about physical embodiments
of control systems that should make them patentable, and the software
equivalent not.
Is this true?
Does it matter that Graham is also a radical proponent of using the
lisp programming language, which everybody else stopped using in the
1990's?
Graham also says,
Frankly, it
surprises me how small a role patents play in the
software business. It's kind of ironic, considering all the dire
things experts say about software patents stifling innovation, but
when one looks closely at the software business, the most striking
thing is how little patents seem to matter.
But that paragraph is about software companies being sued by other
software companies, and not "patent trolls".
Graham also makes some other claims, in particular some about the role
of the patent system in business competition generally. Check out what
he says about Reveal.
Sita Sings the Blues
The above is the name of an animated film by Nina Paley, about the
relationship of Rama and Sita in the Indian epic the Ramayana. It is
available at http://www.sitasingstheblues.com,
along with Ms Paley's discussion of the copyright woes she encountered
in creating the film (most of that discussion is actually at http://www.sitasingstheblues.com/faq.html).
The animation itself was entirely Paley's own work. However, she used
recordings of 1920's jazz singer Annette Hanshaw (here is a link to Hanshaw singing Mean to Me).
Hanshaw was chosen for her ability to sing about heartbreak without
rancor and for her remove from both today and from ancient India. Hanshaw's
songs were traditionally copyrighted; normal licensing fees would have
been $220,000. Paley cut a deal for $50,000, but the budget for the
rest of the film was zero. So these fees are disproportionately large.
Patents
Baase §4.7
Do patents help advance progress? or hinder it?
Patents are pretty clearly a market
regulation
with the sole goal of improving innovation in technology. Inventors
don't "deserve" to profit from their ideas; we simply want to make sure
they are motivated to continue. In other words, this is purely
utilitarian.
Patents are intended to cover INVENTIONS rather than IDEAS.
If you have an idea to sell hamburgers with salsa,
or newspapers & beer together, or to create a website
where people can post their own stuff, that's an IDEA.
It can't be protected: everyone else is entitled to
copy it freely.
If you decide that a certain vertical market can use an XML-based word processor, is that an invention or is that a business idea?
- patents cover the idea, not the expression
- the time period is more limited
What do these have to do with computers? There are several issues about
whether the patent system for software
in fact helps anyone, and whether software patents fulfill their
constitutional mandate to benefit society as a whole. These relate to
the situation where patents are dealt with only by serious developers.
Currently in the US, patents last 20 years, and generally cannot be
renewed or extended (but see below regarding pharmaceutical patents).
During that period, the patent owner can enforce their patent, but
patent litigation is relatively expensive. Formerly US patents lasted
17 years from the date of granting,
but to comply with the WTO treaty on Trade-Related Aspects of
Intellectual Property Rights (TRIPS) the term was changed to 20 years
from application.
There is also an analogue to the copyright
situation, where individuals
can download software that may violate patents in some countries. This
creates a situation somewhat related to file-sharing: end-users make
the decision. Unlike file-sharing, there is no group analogous to the
RIAA that is going after infringers.
Look at ubuntu software installation? What about MP3 players?
35 U.S.C. §101 (patent-eligibility law):
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.
The meaning of "process" is critical here: does it mean any procedure or method? Or does it
mean "industrial process"? Historically, it pretty clearly was intended
to mean the latter.
Pharmaceutical patents
Pharmaceutical patents are sort of the poster child for Why Patents
Are Good For Us. Here the patent system IS effective at encouraging
investment:
- Development costs are HUGE (~200 million) (maybe 100 million for a
small, straightforward trial, but some trials need LOTS of patients,
and/or expensive tests).
- Copying is not much harder than for software
One weirdness: patents "for the use of";
someone can, if drug X is in the public domain, patent
the use of X to treat disease Y (this must be in some legal sense a
"new" use of X).
In practice this is not
much of a problem, because generic manufacturers can still make and
market X for its old purpose, and doctors can prescribe it for its new
purpose. Such prescriptions are sometimes said to be "off-label"; they
are an important way for drugs to get to people who will probably be
helped by them, but for which no company has yet done clinical trials,
and never will.
Some specific drugs:
cancer monoclonal-antibody drugs
These protein compoundss are antibodies that are highly specific to a
certain substrate; they have very narrow targets. From http://en.wikipedia.org/wiki/History_of_cancer_chemotherapy:
Another branch in targeted therapy is the
increasing use of monoclonal antibodies
in cancer therapy. Although monoclonal antibodies (immune proteins
which can be selected to precisely bind to almost any target) have been
around for decades, they were derived from mice and did not function
particularly well when administered to humans, causing allergic
reactions and being rapidly removed from circulation. "Humanization"
of these antibodies (genetically transforming them to be as similar to
a human antibody as possible) has allowed the creation of a new family
of highly effective humanized monoclonal antibodies. Rituximab,
a drug used to treat lymphomas, is a prime example. -- Wikipedia
The
point is
that some cancers can be specifically targeted by certain antibodies,
because they have specific antibody receptors not present in
non-cancerous cells. The receptors involved tend to be very
idiosyncratic.
None of
these drugs would exist in the US marketplace if it were not for
pharmaceutical patents.
On the other hand, the US Food and Drug Administration, which
regulates new drugs, is arguably a massive government intrusion into
the free market. Why shouldn't patent law intrude as well?
imatinib/gleevec: leukemias,
stomach cancers. It is used to treat cancers where the cells involved
have a specific receptor. Time magazine called it the "magic bullet
against cancer" in 2001, when it was approved, though that was an
overbroad assessment. It was also the subject of a patent lawsuit in
India in 2007; the case was referred by the Madras High Court to the
WTO.
It is the first member of a new class of
agents that act by inhibiting particular
tyrosine kinase enzymes,
instead of non-specifically inhibiting rapidly
dividing cells. -- Wikipedia
rituximab/rituxan: binds to
the WBC surface protein CD20. Used to treat leukemias/lymphomas, also
some autoimmune diseases such as lupus
cetuximab/erbitux: metastatic
colorectal cancer, head&neck cancers. Binds to EGFR receptor; it is
an EGFR-inhibitor.
trastuzumab/herceptin:
breast cancer. Monoclonal antibody that interferes with HER2/neu
receptor. In some breast cancers, the HER2 receptor is, as wikipedia
put it, "stuck in the 'on' position".
Antibiotics
nobody makes these, actually. The FDA requires not just proof of
effectiveness, but proof that the infection that was cured was in fact
resistant to existing antibiotics. This makes clinical trials very expensive.
Protein pump inhibitors
(PPIs): used for various stomach-acid problems, including ulcers
omeprazole/prilosec
lansoprazole/prevacid
esomeprazol/nexium
HIV: protease inhibitors moved HIV from a short-term acute illness
to a long-term chronic illness. This made drug development profitable
again. When AZT
(one of the first effective anti-HIV drugs) was first applied in the
early 1990's to HIV patients, though, it was an off-label use.
red/white-blood cell drugs:
filGRAStim/neupogen
makes more neutrophils/other WBCs. Used for cancer/chemo/BMT patients
erythropoietin
makes more RBCs: kidney disease, cancer, cancer treatment
diabetes
exENatide/byetta: this often means the patient can
avoid taking insulin. It is offcially for type-2 (non-insulin-dependent) diabetes. From byetta.com: Byetta
may also be used for other purposes not listed in this medication guide.
In 1984, Congress passed the Drug
Price Competition and Patent Term Restoration Act, also known as
the Hatch-Waxman Act. This allowed generic drug makers to use a patented
drug in their own
FDA application, so that approval would be in place as soon as the
original patent expired (normally after 20 years). However, it also
gave pharmaceutical developers a chance at a patent extension for up to five extra years,
subject to the following:
- The extension application must follow the date of FDA approval
(which of course is after all the clinical trials are complete).
- The maximum length of extension is five years additional from
the
time of patent filing, or fourteen years from the date of FDA approval
(whichever is less).
The idea here is that if it took a company fifteen years to bring a
drug from discovery (and patent) to market, they will get ten years of
patent-protected sales to recoup their investment rather than five.
Third-world issues with pharma patents
Basically, if a country is too poor to afford to treat all its
citizens with a new drug, many may die. This has definitely been the
case with some HIV drugs. As a result, the Third World has long argued
that it should be exempt from pharmaceutical patents.
In the mid-1990's, the WTO basically agreed, and allowed (I'm not
sure of the exact terms) third-world countries to manufacture generic
equivalents of first-world drugs for use within their own borders only.
The manufacturing must be for the government's own use (eg in
distributing to its people; the manufacturing can't be a for-profit
initiative of a private company in that country). Also, a good-faith
attempt must have been made first to negotiate for a reduced-rate
license to manufacture the drug, and such profits as are made must be
given to the patent holder. In practice, large US pharmaceutical
companies often enter into vastly-reduced-price licensing arrangements
with third-world companies.
In 2005, the WTO relaxed this rule to allow poorer nations to import
generics that would otherwise be covered by a patent. This is sometimes
described as a "compulsory license". The manufacturer would not be
prosecuted.
This is perhaps the foremost third-world patent issue.
Patents Generally
The fundamental justification for patents is to encourage advances in
technology. Their justification is purely
utilitarian; it is difficult
to give a deontological rationale for not using someone else's
invention.
Ethically, the scope of the utilitarian argument can be worldwide, but
national patent laws are generally intended for national benefit. That
said, treaties have led to fairly uniform patent laws in the
industrialized world, but there are serious concerns in the Third World
about certain aspects of patent law.
Also, a part of the patent process is the requirement that the inventor disclose
the idea to the world. You cannot protect something with both a patent
and trade secrecy. To put it another way, the patent grants you a
limited monopoly in "exchange" for publication.
Software Patents
These are meant to protect software inventions. They do notprotect
software applications as such; copyright is for that. Copyright
protects source code and executable code; it has been extended to user
interfaces but (recently) not
to APIs. Copyright protects only the expression and not the underlying
idea; when user interfaces are copyrighted, someone else must modify
the interface in some ways.
Suppose, however, that in developing your application you come up with
a particularly innovative algorithm, or innovative application of an
existing algorithm, or a novel user-interface gesture (think iPhone),
or new way of presenting data, or some other novel feature. You
may be able to patent it, as an "invention". You may even be able
to patent a new business method supported by
your software. Patents are
for certain features that you consider especially innovative.
If you have a patent, then nobody else can use your idea without your permission, even if they discovered and developed it entirely separately, for the lifetime of the patent.
Why are software patents even controversial? Here are four categories of
software-patent issues:
- problems with the patent system generally
- implementation problems with the patent office as applied to software
- problems with business-method patents, which until 2005
required
involvement of "technological arts"
- fundamental problems with software patents
One example of a fundamental problem might be that algorithms are can
be seen as mathematical facts, not inventions. While novel applications
of existing algorithms can be patented, "novel" is very subjective: one
developer's breakthrough idea might be a standard software-engineering
exercise to another. An
implementation-related problem might be that the USPTO seems to have a
hard time recognizing software patent claims that are trivial instances
of well-known general ideas.
As we consider the patents below, it will often be claimed that the
innovation is "obvious". In fact, there is sometimes (maybe even often!) evidence that the
idea was so obvious that prior publication (required to invalidate a
patent based on "prior art") would have been rejected by any reputable publisher.
Part of the problem, with aspects unique to computing, is that any
invention has two parts:
- realizing you need the invention
- actually getting it to work
In the physical world, the second often tends to be the much harder
component. But in the software world, once you realize you have a need
to do something, working out an implementation (at least at the
"invention" stage) is often
very straightforward. Not always, but often. Once the need becomes
apparent, finding a solution can be obvious.
What often seems to happen is that a patent is granted for an invention
at a time when the inventor had no clear application for the idea. Much
later, someone needed to get
something done, and found a quick obvious solution that turned out to
be the earlier patented one. The Eolas case (below) is a possible
instance of this. Should early inventors be able to lock out later
developers simply because they managed to patent a technique to solve a
problem that was completely obvious later to anyone else faced with
that same problem? Haven't they really patented the problem?
At the risk of being misleading about the term "obvious" as used in
patent law, I will call this the "obvious-in-context"
problem.
Another way to describe this situation is to say that many patented software solutions are ordinary, obvious applications of basic principles of software engineering. The problem may have been new, but the solution is still obvious.
In some cases, the obvious-in-context problem boils down to a general algorithm being applied to solve a specific problem. The Flook case (below) supposedly made such inventions nonpatentable. However, this isn't always what happens in practice.
It is examples of this kind that led me to formulate my (former) three-part test on when it is appropriate to recognize
software patents:
- The Supreme Court has turned down your last appeal
- Federal marshals surround your cabin in the woods
- You are out of ammo
This marks me in some circles as a software-patent moderate.
I am currently replacing it with a new theory: that a good patent system
can have a very positive effect on business and on investment in
innovation, but that a bad patent system can have a very negative
effect. Good patents reward innovation but bad patents actually punish it.
The smartphone wars may or may not be an example of a positive
use of the patent system. If Apple invented some breakthrough phone
features for the iPhone, and patented them, then HTC / Google should
perhaps not be allowed simply to copy them in HTC's Android-based
smartphones. But exactly what happened here is less than clear; we will
revisit it below.
Aeroplane Control
A classic "broad" patent is the Wright brothers patent on
"wing-warping" to control flight (to the Wrights, the wings were the
"aero-planes", planing the air, the rest of it was the "flying
machine"). The Wright brothers actually twisted the whole biplane
structure -- using cables -- to bank in a turn. This later led to the
development by others of ailerons, which achieve the same
effect but which mechanically are entirely different. A court ruled the
Wright patent still applied: what mattered was the concept of adjusting wing angles to
tilt the craft.
This is a classic "broad patent" for a major new innovation. The
courts have traditionally recognized "broad" patents, but somehow in
software this distinction is often lost.
History of software patents
For a long time, software was held to be unpatentable,
as mathematical algorithms are unpatentable. Any fundamental
mathematical or physical laws are unpatentable.
1972: Gottschalk
v Benson (wikipedia):
You can't patent a mathematical algorithm
(in this case a number-format-conversion algorithm). More below.
1973: ATT somehow manages to patent the setuid bit, claiming it's
hardware. This patent was dedicated to the public domain in 1979. This
patent is certainly a deep idea: if a certain bit is set in the
filesystem information node for a file (not in the file itself), then
when the file is executed,
it runs with the privileges of its owner and not the user. Before then
(and after; see what Windows does), there were complex ad-hoc methods
for running selected programs with elevated (or alternative) privileges.
1978: Parker v Flook: Algorithms in a patent must be treated as
prior art; the invention must contribute something substantial beyond
the application of an algorithm.
1981: Diamond v Diehr: computer + machine IS patentable. For a
long time after, software patents always described the software in
combination with some hardware device. This patent dealt with the
curing of rubber, using a computer to guide the process.
In the Diehr ruling the Supreme Court said that an invention isn't automatically unpatentable just because it
contains an algorithm.
But PTO & lower courts read in the converse: algorithms are
patentable.
Note that the current business-world baseline thus rests
on USPTO policy and lower-court case law, NOT congress or SCOTUS.
Problem of "non-obviousness":
the rules state that it's not enough to prove it's obvious today.
Uh oh. That becomes an extremely difficult burden.
To be patentable, an invention must be "novel". Novelty is usually
challenged by the presentation of "prior art":
did someone else discover it first? Often there are arguments about
this.
If prior art is published,
it can invalidate a patent. However, if it was used privately, those
users can continue to use their idea without paying royalties to the
owner of the patent, but the patent may still stand. The patent can be challenged on the grounds of
not being novel, but this is harder.
Broad patents for fundamental new ideas, narrow patents for improvements
compatibility issues: What if the default, standard implementation
is patented? Two cases where there was at least some movement away from a
patented format:
GIF => PNG
MP3 => ogg vorbis
software patent v copyright
Supreme Court cases limit the word "process" in USC Title 35, Chapter
10, §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.
Gottschalk v Benson, 1972
This case continues to be debated, although the Supreme Court has recently reaffirmed it. (Gottschalk is the
name of the patent commissioner; the one-word name for the case is Benson.) The court stated
that "the
patent would wholly pre-empt the mathematical formula and in practical
effect would be a patent on the algorithm itself". But that is
not
entirely clear. The algorithm was for converting so-called binary-coded
decimal (in which decimal digits are represented in sequence each by
four binary digits, so 157 = 0001 0101 0111) to true binary. The patent
was
for the use of this algorithm on a
computer, not universally (though the algorithm makes no sense
except on a computer).
In the decision, the court cited an earlier decision: "[w]hile a
scientific truth, or the mathematical expression of it, is
not a patentable invention, a novel and useful structure created with
the aid of knowledge of scientific truth may be", and "an idea of itself
is not patentable." The court also said,
Here the "process" claim is so abstract and sweeping as to cover both
known and unknown uses of the BCD to pure binary conversion. The end
use may (1) vary from the operation of a train to verification of
drivers' licenses to researching the law books for precedents and (2)
be performed through any existing machinery or future-devised machinery
or without any apparatus.
Applications of computer algorithms may indeed be general. In
retrospect, should this be an issue? The end-uses above are all for software using the algorithm; and
anyone could always use a different algorithm.
One interpretation of the decision quote above is that the Supreme
Court is willing to allow patents on algorithms that are an integral
part of an invention, but not
on algorithms that are in effect simply library routines. The Benson
algorithm was clearly in the latter category; if it had been closely
tied to a particular invention -- that is, if there had been a claim limitation -- perhaps it would have been patentable. Does that make any sense?
One school of thought is that a "process" is not patentable unless
there is a physical transformation involved, or unless the new
invention is necessary in carrying out the process; this is sometimes
referred to as the "Machine or Transformation" rule. The Supreme
Court's
Benson ruling was
narrower than that, however. Nonetheless, the court did
say
transformation and reduction of an
article 'to a different state
or
thing' is the clue to the
patentability of a process claim that does
not include particular machines. [emphasis by pld]
At one time, I might have put the emphasis differently: the clue.
However, the Supreme court backed away from that position in the Bilsky
case (below).
The Benson decision closes with an observation that lack of patentability
doesn't seem to have hurt the 1972 software industry any, and a call to
Congress to figure it out (which may have had its origins in an amicus curiae brief filed by IBM,
which was at the time against software patents):
"It is noted that the creation of programs has undergone
substantial and satisfactory growth in the absence of patent protection
and that copyright protection for programs is presently available."
If these programs are to be patentable, considerable problems are
raised which only committees of Congress
can manage, for broad powers of investigation are needed, including
hearings which canvass the wide variety of views which those operating
in this field entertain. The technological problems tendered in the
many briefs before us indicate to us that considered action by the
Congress is needed.
One possible way to understand Benson is that the patent claim limitation -- the application of the invention for which the patent was claimed -- was overly broad. Benson claimed a patent on any use of the algorithm on a computer.
In the 1980 Supreme Court decision Diamond v Chakrabarty, about the
patentability of genetically modified organisms, the following line
from a 1952 Congress report on patent law is cited
anything under the sun that is
made by man [is patentable]
How does this square with Benson?
The Benson decision is frequently cited as evidence that the Supreme
Court did not
intend to allow software patents; the language of the decision -- that
the algorithm was a fundamental mathematical fact -- can be read as
supporting this. Others use Benson as an example
of a case that, with the benefit of hindsight, seems more and more
strongly to have been wrongly decided; that in patenting an algorithm
on a computer, one is not patenting a mathematical idea. Or, at the
very least, Congress should simply heed the Court's call to address
this issue directly. It doesn't help any that the court seems to have
misunderstood the concept of widely varying applications.
Parker v Flook, 1978
In this case, the Supreme Court dealt with an invention that used
a computer to analyze temperature fluctuations within a catalytic
converter, apply a smoothing algorithm to discount transient
fluctuations, and raise an alarm when the averaged temperature was
outside of preset limits (the algorithm apparently also had something
to do with updating those limits).
The only novel feature of the method is a
mathematical formula. In Gottschalk v. Benson, we held that the
discovery of a novel and useful mathematical
formula may not be patented. The question in this case is whether the
identification of a limited category of useful, though conventional,
post-solution applications of such a formula makes respondent's method
eligible for patent protection.
The court ruled that the patent had to be judged as if the algorithm at
stake were prior art; that is, the algorithm cannot be counted as part
of the innovation.
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. [emphasis added -- pld]
One difference between Flook and Benson was that in the Benson case there was essentially no claim limitation, while in Flook the claim was limited to a specific application of temperature control.
There has been some criticism of Flook
because the Supreme Court was vague as to the distinction between §101,
on patent eligibility itself, and §103, on restrictions due to prior
art and obviousness.
Flook is arguably an important case, but alas often seems overlooked in
the real world. Consider, for example, a patent for the application of
a standard algorithm to a particular problem:
- Steir patent for overlaying a hairstyle on the image of a person
- Pardo & Landau patent for using "topological sort" to establish an evaluation order for formulas
Both of these patents were granted. Arguably, however, both are trivial applications
of standard algorithms. In fact, more often than not patents that use
general, well-known algorithms don't seem to be rejected on Flook grounds, even when there is essentially no inventiveness in the application of the algorithm.
Diamond v Diehr, 1981
On the face of it, the Supreme Court ruled here that just because an
invention incorporates a software component, this does not make the
invention ineligible for patent. The Diehr invention used a
thermocouple to monitor the temperature in a mold of curing rubber,
connected to a computer that read the raw temperature values and did
some computation to determine when the rubber was finished. While the
majority held that the invention was just patentable, Justice Stevens
(of Sony v Universal) wrote in dissent of three problems he had with
the Diehr patent [division into paragraphs added]:
First, there is not a word in the
patent application that suggests that there is anything unusual about
the temperature-reading devices used in this process -- or indeed that any
particular species of temperature-reading device should be used in it.
Second, since devices for constantly measuring actual temperatures-on a
back porch, for example-have been familiar articles for quite some
time, I find it difficult to believe that a patent application filed in
1975 was premised on the notion that a process of constantly measuring
the actual temperature had just been discovered.
Finally, the [PTO] expressly found that the only difference between the
conventional methods of operating a molding press and that claimed in
[the] application rests in those steps of the claims which relate to
the calculation incident to the solution of the mathematical problem or
formula used to control the mold heater and the automatic opening of
the press.
In other words, Stevens felt that the Diehr invention should not be patentable, because the only novel feature was the use of the computer, and algorithms should not be patentable.
Reading original patent descriptions
You can look them up online. Follow uspto.gov -> patents ->
patft (uspto.gov/patft). Or go directly to the search-by-patent-number
page:
http://patft.uspto.gov/netahtml/PTO/srchnum.htm
Some software patents
Here's an interesting list of some software patents, supposedly
"random" though some particularly famous ones are sprinkled in:
http://bat8.inria.fr/~lang/hotlist/free/licence/patents.html
Another list can be found at: http://www.textfiles.com/law/softpat.txt
XOR cursor, patent 4197590 (more below under Heckel's paper)
Method for dynamically
viewing image elements stored in a random access
memory array
The use of XOR here (using XOR to draw and also to erase) was
mathematically well-known. Is this an innovative application, or a
straightforward one?
cpu Stack Pointer register, patent 3794980, to George Cogar,
1971. Supposedly, though I can't find the source, this was purchased by
DEC [?] and eventually placed in the public domain. Or not enforced. Or,
possibly, it was in fact licensed by Intel/motorola/everyone_else.
ATT setuid-bit patent, # 4135240, invented by Dennis Ritchie,
applied for in 1972 and later placed by AT&T in the public domain.
British Telecom patent on the hyperlink, files 1976, granted 1989.
Patent number 4,873,662. In 2000 they attempted to sue a large number
of websites. The
patent itself apparently refers to a system in which multiple remote
users can access "blocks" of data on a central computer.
Here, the arguable problem is that BT's claims are much too broad and vague.
Altavista patents on "web searching". Altavista did have several
such patents on basic web "crawling". Most were predated by the
"archie" archive-searcher for ftp sites, developed by Alan Emtage in
1989. Altavista was purchased by CMGI, which some claim is a patent
troll.
RSA encryption: patent 4405829
Choose primes p and q.
Reveal n=pq
Find e and d so xed = x mod n (this is not hard)
Common values for e: 3, 5, 17, 257, 65537. Note (xe)d = xed.
(n,e) is the public key, d is the private key
RSA uses standard high-precision arithmetic in its calculations; the
underlying number theory has been well-known for centuries.
The patent was for the APPLICATION of these standard methods
to encryption. That application was certainly novel.
The RSA patents finally expired, after much controversy. Part of
that controversy was self-induced; the patent owner at one point appeared to grant a general license
for noncommercial use, but then backed away from that.
The RSA idea is not "obvious-in-context". In fact, RSA is, for many
people, the classic Good Example for why software patents are needed.
Compton 1989 patent on multimedia, despite Apple Hypercard in ~1987.
Steir patent 5,060,171 on artificially adding hair to a person's image
[Garfinkel article; obvious-in-context; Flook standard?]
Eolas v Microsoft:
About a way for running "applets" in a browser window. See below.
NTP v RIM: the blackberry patent. See below.
Lempel-Ziv / LZW compression, patents 4464650 [?], 4558302
This is the compression scheme in GIF file formats. The gif format was
developed by CompuServe in 1987. A year later, they noticed that the
algorithm was patented, and that the patent was currently held by
Unisys. Allegedly, Unisys told Compuserve at that time that they would
not need to pay royalties.
In 1999, Unisys demanded that some noncommercial websites pay a
$5000 fee for hosting files in the gif format (an interesting strategy,
given that the sites were not themselves rendering the images). Some
commercial sites
were asked for even more. It's not clear whether anyone paid it; most
affected sites rapidly switched to .jpeg or .png. Some observers were
especially offended by the fact that Unisys allowed the use of the GIF
format as a free standard until it became well-established, and then demanded fees.
There's some question as to whether this was the only or even the
dominant reason for the shift to PNG format; the latter does offer more
features (especially alpha and gamma) than GIF, and is a lossless
format unlike JPEG.
Note that LZW compression is not "obvious-in-context"; you can realize you need compression and still work very hard to develop LZW.
Newer compression techniques are even less obvious. These would
include the patents on the MP3 sound-compression strategy, and the
G.729 voice-compression algorithm. We will later look at MP3 in more
detail.
Natural-order recalculation in spreadsheets:
Patent 4398249
More below following Heckel's paper
Cell A depends on B if A needs B's value
in its formula
Rule: Before calculating A, calculate all cells A depends on.
Duh.
The algorithm is called "topological sort";
published in the CS literature in 1963.
Rene K. Pardo and Remy Landau filed for a patent in 1971: U.S.
Patent 4,398,249. This was an important case in allowing software
patents (initially their request was denied as an "algorithm")
Spreadsheets were a brilliant idea (Dan Bricklin, VisiCalc?),
but not order of recalculation.
MS has patented the FAT disk format. Here is a summary of the
events from the Public Patent Foundation, which had challenged that
patent:
In April 2004, the Public Patent
Foundation filed a formal request with
the United States Patent and Trademark Office to revoke Microsoft
Corporation's patent on the FAT File System, touted by Microsoft as
being "the ubiquitous format used for interchange of media between
computers, and, since the advent of inexpensive, removable flash memory,
also between digital devices." In its filing, PUBPAT submitted
previously unseen prior art
showing the patent, which issued in November
1996 and is not otherwise due to expire until 2013, was obvious and, as
such, should have never been granted. The PTO granted PUBPAT's request
in June 2004 and provisionally rejected the patent in September 2004.
In response to the rejection, Microsoft made amendments to the patent's
claims. The PTO proceeded to allow the
amended form of the patent.
PUBPAT had no right to appeal that decision.
The fact that PubPat can't appeal or even respond to the decision is
a serious procedural issue. If you are sued by Microsoft for using the
FAT format, you will be allowed
to respond to Microsoft's post-2004 amendments to the patent claims.
But you will probably not.
Microsoft is now actively licensing the format to flash-card
manufacturers. Why not switch to the free ext2 filesystem? Because that
just is impossible, that's why, if the device in question has embedded software to read the FAT format.
It is unclear which patents Microsoft is most interested in pushing.
While there are legitimate reasons for thinking that FAT itself might
not be patentable, Microsoft later introduced a strategy for supporting
both long filenames and also "8.3" filenames (8 char name, 3 char
extension). The patent that covers the dual-name strategyis less
vulnerable to "obviousness" or "prior art" challenges.
Microsoft sued the TomTom people (http://arstechnica.com/microsoft/news/2009/02/microsoft-sues-tomtom-over-fat-patents-in-linux-based-device.ars),
because TomToms, although they are based on linux, use the FAT
filesystem internally. The suit was settled
two months later, after TomTom agreed to switch to ext2.
FAT is a good example of an idea that is obvious to anyone presented
with the problem of how to
create a simple filesystem suitable for small devices. However, there is
the added problem of it's being standard
(although an unofficial one); you can't just implement a workaround.
1994: The Eolas patent on embedded applets, also known as the patent on "not clicking the mouse". More below
Photoshop and patents
It might seem reasonable that such a complex program as Adobe Photoshop
has been effectively protected by patents. However, I can find no
evidence that this is the case. I did
find the following:
Macromedia has sued Adobe for patent infringement over some
Photoshop options
(http://www.managingip.com/Article/1327272/Macromedia-claims-Photoshop-patent.html)
The leading open-source alternative to Photoshop, gimp,
may have had
more trouble with Microsoft patents than Adobe's. In general, there are
lots of notes out there from gimp developers discussing their patent
woes. (I lost my specific reference, though.) Gimp has had to struggle
with the LZW patent on the gif format (US expiration 2003, Europe
2004), and the possible jpeg patent.
PTO (Patent & Trademark Office) problems:
- researching "prior art"
- secrecy of the process
ignorance is no defense: "submarine" patents
The entire process is secret: you can be making good-faith effort
to be noninfringing and get hit with a huge verdict.
Infringement is considered willful
if you had advance notice of infringing. Your belief that
the patent was invalid is NOT a defense. Damages automatically triple.
Three groups of stakeholders:
- small inventors
- large corporations
- patent-holding companies
Where do we fit in?
Patent-holding companies are sometimes known as "trolls", as in
"the troll under the bridge, demanding tolls". They are often seen as
parasitic: they do not, for example, actually produce anything. Is this
a fair characterization?
How large corporations manage:
- patent banks
- legal departments
- cross-licensing
small inventors:
- market your invention yourself??
- sell to a holding company? (These are tricky places.
They produce nothing, they interfere with progress,
but they do produce a
market for new patents.)
Open source:
voip
From the flowroute.com FAQ (flowroute is a reseller of VoIP lines):
Most free or open-source PBXs are not packaged with the G.729 codec due
to licensing issues. We recommend that you install it for more efficient
bandwidth usage and route availability.
The nominal data rate for a voice call is 8kB/s (64kbit/sec). G.729
is an encoding/compression strategy that achieves excellent voice
quality at 1 kB/sec. From Wikipedia:
G.729 includes patents
from several companies and is licensed by Sipro Lab Telecom. Sipro Lab
Telecom is the authorized Intellectual Property Licensing Administrator
for G.729 technology and patent pool.
In a number of countries, the use of G.729 may require a license fee and/or royalty fee.
Legal advantages of small inventor: somewhat diminished with rise in
legal fees & increased ambiguity of patent claims
But small inventors can still
sell to patent-holding companies.
Legal situation of large corporations:
- hard for small inventors to sue them
- can cross-license
Patent infringement suits
Note that we do not generally
have much access to the judge's reasoning in these cases. There may be
a written opinion, but often not, and in any event we generally don't
have ready access to many of the documentsoffered in evidence.
(Some of the documents, though not all, are available from the Law Library.)
(In the link above, correct the spelling of "pdf")
Paul Heckel wrote Debunking the
Software Patent Myths for
the June 1992 Communications of the ACM. Heckel approaches software
patents as a small inventor who has sued Apple over Hypercard and is in
general very strongly pro-patent. He was actually faced with huge
software-development debts and no future market because Apple had
reproduced his idea. He makes several claims.
4197590
One is that the XOR patent, 4197590, is really about patenting what
Heckel calls "largely the invention of the frame buffer". However, the
concept of a frame buffer, or memory-mapped display (in which the video
screen is memory-mapped into a location in RAM, so that writing to the
screen is as simple as writing to memory) was apparently prior art. The
patent application claims that they invent a way for a small (eg
416x312) graphics window to allow viewing of a larger 2048x2048 virtual
display, and panning across. That is
a significant invention. However, there is a reasonable body of
evidence that Cadtrak attempted to enforce the XOR-cursor portion of
the patent alone.
From the patent abstract:
A computer graphics display system
including random access raster memory
for storing data to be displayed, a raster memory control unit for
writing
data into the raster memory, a video control unit for causing such
information to be displayed on a CRT display screen....An XOR
feature allows
a selective erase that restores lines crossing or concurrent with
erased
lines. The XOR feature permits part of the drawing to be moved or
"dragged" into place without erasing other parts of the drawing.
It seems to me that a major claim of this patent, and the only relevant
claim past the 1984 introduction of the Macintosh, is the XOR feature.
It is legitimate to try to enforce just a single claim; if the Patent
Office thinks any of your claims are too obvious, they are supposed to
say so. However, the XOR claim makes a lot of sense in the context of the original patent as a nonobvious part of the idea; it is more obvious as a standalone operation.
4398249
Another is the natural-order-recalculation patent, 4398249. This was an
invention of Rene K. Pardo and Remy Landau in 1970. Heckel claims that
what Pardo
and Landau really invented was the spreadsheet, although (apparently)
in primordial form not recognizeable by later spreadsheet pioneers such
as Dan Bricklin (VisiCalc); Bricklin is generally recognized as the
inventor of the spreadsheet. Heckel does not name any software product
Pardo and Landau produced. There was indeed an important legal case
regarding the
patentability of the idea;
initially their request was denied by the PTO as an "algorithm. It is
now considered to be an "early"
software patent. Here's the idea:
Cell A depends on B if A needs B's value
in its formula
Rule: Before calculating A, calculate all cells A depends on.
The algorithm is called "topological sort"; published in the CS
literature in 1963. The actual algorithm is:
Let Known_Cells be the set of all cells we can calculate initially, ie that do not depend on any other cells.
repeat
search the spreadsheet for cells which depend only on Known_Cells.
Calculate their value, and add them to Known_Cells
until there are no new Known_Cells
Spreadsheets were a brilliant idea (Dan Bricklin, VisiCalc?), but not
order of recalculation.
Pardo and Landau sold the patent to the company Refac, which Heckel
characterizes as "a white knight in the fight against the patent
pirates". However, note the following line from the appellate court in
Refac v Lotus, at
http://www.ll.georgetown.edu/Federal/judicial/fed/opinions/95opinions/95-1350.html:
The district court did not abuse its
discretion in holding that the '249 patent is unenforceable on the ground of
inequitable conduct. [emphasis added]
Apparently Pardo and Landau were told by the USPTO that their patent was
not fully disclosed; specifically
[T]he disclosure is not deemed of the
level which would enable one with ordinary skill in the art to make
and use the invention. The flow diagram which applicants represent in
figure 2 is not of the detailed level which a
programmer would need in order to write a program from.
They presented three supposedly disinterested witnesses who each
submitted an affidavit that, yes, they could implement the desired
program from the patent description. However, one of the three, Robert
F Bullen, had a previous business relationship with Landau, that
neither of them disclosed.
So much for "white knights".
There remains the broader concern that Pardo and Landau did not in fact
appear recognize that they had a "spreadsheet", and that Dan Bricklin
was the first to grasp that concept, and that what Pardo and Landau did have was just the idea of using
topological sort when evaluating a large number of expressions with
dependencies.
Here's the abstract of Pardo & Landau's patent, slightly edited,
for compiling a set of formulas when some formulas may depend on the
values of other formulas:
A process and apparatus (compiler
program) carried out on a digital computer for converting a source
program into an object program. The source program [consisting of a set
of formulas] is entered into a first storage area of a computer. ...
The compiler program then examines each formula to determine whether it
has been defined [that is, whether it has no dependencies on as-yet-undefined formulas]. If the
first formula has been defined, it is removed from the first
storage area;
placed in a second storage area; and marked as being defined. if
the first
formula examined has not been defined, it is retained in the first
storage
area. The compiler program repeats this process for each formula in
the
first storage area. After the formulas in the first storage area
have been
examined, the compiler program determines whether any formulas have
been
added to the second storage area. If so, the compiler program
repeats
the examination of the individual formulas still retained in the
first
storage area. The compiler program repeats the process until all
formulas
have been defined; added to the second storage area; and marked as
being
defined. The content of the second storage area is an object
program which
is executable by the computer.
2009 is a little later than 1972, and some of these ideas are now
somewhat standardized, but without being familiar with this specific
algorithm I was able to come up with it "on my feet" in class once. I
see
no evidence here of any
spreadsheet-like package; the application of the general
topological-sort algorithm to solve this particular problem seems to be
pretty obvious.
Heckel's own patent was 4736308.
It was described as covering the display of two or more strings
together on the screen (apparently scrolling with two or more
subwindows). The argument was made that if scrolling was prior art, and
subwindows were prior art, how could a trivial combination of them be
patentable? Heckel's claim is that his patent actually covers a
Hypercard-like product (hypertext plus button-activated scripts), though this is not clear from the patent abstract.
As in other software patent disputes, Heckel's idea to some extent fits
the model of the application of general software engineering principles
to solve a particular problem. However, Heckel's patent also has an
element of how to frame the programming environment for the user; this
would appear to be a genuine user-interface innovation. (Though note
that much of the innovation was done by Xerox in the development of the
Smalltalk environment.)