How do you feel about software patents?
Microsoft is having some difficulty with a particular patent that is being widely reported as having something to do with XML. Back in 2009 Microsoft lost a jury trial over the patent and as a result it was ordered to remove an XML editor from Word 2003 and 2007 and to pay $290 million in damages to i4i.
Microsoft's first reaction was to appeal but the original verdict was upheld. Now Microsoft has just lost its battle to have a patent held by i4i revoked. Microsoft hasn't quite given up just yet and according to a spokesperson is considering a number of options including a petition to the supreme court.
What you think about this situation does very much depend on what you think about the whole idea of a software patent.
If you think that patenting the idea of a loop or some novel sorting method is just plain silly because most algorithmic inventions are too obvious to be patentable then you might think that even when the small firm wins it is still an injustice.
Yes, it is difficult to have any sympathy for Microsoft who, if the tables were reversed, would have no hesitation in enforcing its legal rights. However the whole issue really does hinge on the validity of the patent and not on any sympathy for the "little guy".
The first thing to say is that if an inventor has a good and new idea then without doubt there should be some protection from others simply using it without recompense. On the other hand we all know that the patent office isn't always the best judge of what is novel simply because it often requires a lot of very specialized knowledge to determine the validity of an idea. It is also possible to make the common place look like something very special by wrapping it up in complex jargon.
So what is the i4i patent all about?
First it is important to know that you can actually read the patent without charge at http://www.google.com/patents. To look it up all you need to know is that it is patent 5787449 - simply search for the number.
While most reports of the legal goings on are stating that the patent covers something or other to do with XML the truth is that it is about something rather wider.
The whole idea of a markup language like XML is that you embed codes or metatags within a document and the position of the code generally determines the text or in general the data it modifies. That is, the metacodes are embedded.
The patent seems to cover the very basic idea of taking the tags or codes out of the document and storing them in a separate location. The areas that the codes refer to in the document are then given by storing an address along with the tag.
The patent, titled Method and system for manipulating the architecture and the content of a document separately form each other, gives a step-by-step account of how to take a document with embedded codes and by scanning and extracting the codes one by one, how to create a separate "metacode" map complete with pointers to where the codes had been positioned and hence to which part of the document they apply to.
The editor that Microsoft had to remove from Word implemented custom XML tags by storing them separately from the document. Now if you try to open a Word document the result is that the tags are just lost. However i4i have an add-in called x4w that will process the document and saves the tags.
So the patent is all about the difference between storing metacodes either embedded with locational meaning or separately with pointers.
So for example,
XML is about <bold>TAGS</bold>
is not covered by the patent but
<bold the fourth word>
XML is about TAGS
is most certainly covered by the patent.
Is this an idea worth a patent?
Is it an idea that had no common use before 1994 - the date the patent was applied for?
What is more surprising is that if the patent is indeed valid it covers a lot more than an out-of-line storage of XML tags but to any system where metadata is stored separately from a document and applied to parts of it using an address or pointer.
Notice that the patent doesn't restrict itself to formatting tags but to any sort of coding you care to think of. For example, the TIFF file format can store a clipping path separate from the image data - which could be regarded as a metacode applied to the document. I'm sure you can think of additional examples.
So are software patents a good thing?
This is a debate we really need to engage in.