Another fine patent mess
Last week I ran across US Patent #6,687,897, "XML Based Script Automation",
which was patented by Olivier Guinart and assigned to Microsoft. Reading this
patent brought to the forefront of my mind the reasons why I am getting
increasingly cranky about software patents.
In the lovely language of patent claims, this one starts out:
1. In a computer system that includes one or more scripts that can
be selected for execution by a user, a method for facilitating the
identification and selection of the one or more scripts for execution, the
method comprising the acts of:
- incorporating the one or more scripts into a file, wherein the file is
formatted in such a manner as to enable the one or more scripts to be associated
with different scripting languages;
- presenting a list of scripts to a user for selection, wherein the list
includes an identifier for each of the one or more scripts, the identifier
comprising a descriptive name and functional description of each corresponding
- upon receiving a user selection of a particular identifier that is
with a script from the list, executing the script that is associated with the
It goes on from there, through 27 claims and much description, but when you
cut through all the legal language, this patent is really pretty simple:
Microsoft has patented the format used by scripting to store multiple scripts in
a single file. Here's an example of a file that the patent covers:
<name>Directory and tree commands </name>
<description> Directory command under the DOS prompt
followed by the Tree command</description>
<name>Hello World !</name>
<description>Inputs the user name and displays greetings</description>
'**** Get the Username
StrName=InputBox("Please enter your name:", "Name")
If StrName=" "Then StrName="World"
MsgBox "Hello" & StrName,, "Hello !"
So, why does this make me cranky? Well, here's a chunk of Section 101 of the
Patent Act, which is supposedly the controlling law in this area:
"Whoever invents or discovers any new and useful process, machine,
manufacture, or composition of matter, or any new and useful improvements
thereof, may obtain a patent, subject to the conditions and requirements of this
The courts have generally held that this means four things must apply to any
subject of a patent. It must be:
- Statutory (that is, one of the things that the act says can be
So, how does this XML patent stack up?
Statutory: I personally don't think code is a "process, machine,
manufacture, or composition", but the courts have held otherwise. My own feeling
is that patenting code and algorithms is more akin to patenting truth, beauty,
or the idea of green than airplanes or combines, but that may just be the
pitfall of a layman reading legal language.
New: How can this be new? Has no one ever thought of combining a
collection of things in a single XML file? Clearly that's not the case; any XML
book on my shelf will display examples of collections in XML. So it must be that
combining scripts is the novelty. Does this mean I can run out and patent
combinations of all sorts of other things in XML? Seems nonsensical to me, and
an invitation to carve out more and more parts of our common coding heritage
behind patent barriers. As it stands, with this patent in place I can't use an
XML file to store multiple scripts for my own application, even if that makes
perfect coding sense.
Useful: I'll give them this one. XML is useful. Storing things in XML
is useful. No argument.
Nonobvious: You've got to be kidding. How is this nonobvious?
Isn't an XML file with CDATA sections the first solution any developer would
come up with for storing multiple text-based scripts in a single file these
days? This is, I think, the point that makes the current patent system a farce
when it comes to software; the examiners have no idea what is and isn't
I have no doubt that I'll hear from patent supporters explaining to me how
software patents are really doing us a lot of good. But all I see is utterly
arbitrary decisions about what can and cannot be patented, and large
corporations (Microsoft is hardly the only one) building up patent portfolios
that they'll be able to trot out against any handy business rival in the future.
As far as I'm concerned, we should go back to the days when the Patent Offic
refused to allow patenting software at all, and reverse several decades of bad
Mike Gunderloy has been developing software for a quarter-century now, and writing about it for nearly as long. He walked away from a .NET development career in 2006 and has been a happy Rails user ever since. Mike blogs at A Fresh Cup.