News

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 script; and
  • upon receiving a user selection of a particular identifier that is associated with a script from the list, executing the script that is associated with the particular identifier

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:

<?xml version="1.0"?>
<collection>
<file extension="bat">
<name>Directory and tree commands </name>
<description> Directory command under the DOS prompt
followed by the Tree command</description>
<code><![CDATA[
dir
tree
]]></code>
</file>
<file extension="vbs">
<name>Hello World !</name>
<description>Inputs the user name and displays greetings</description>
<code>
<![CDATA[
option explicit
dim StrName
'**** Get the Username
StrName=InputBox("Please enter your name:", "Name")
If StrName=" "Then StrName="World"
End If
MsgBox "Hello" & StrName,, "Hello !"
]]>
</code>
</file>
</collection>

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 title."

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 patented)
  • New
  • Useful
  • Nonobvious

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 obvious.

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 law.

About the Author

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.