Norbert Bollow's Comments on Standards

2009-08-18: ODF is unaffected by patents on the kinds of extension mechanisms which are used in OOXML.

Brief context

The Canadian company i4i recently won a judgement against Microsoft which includes a permanent injunction barring Microsoft from selling, using, encouraging the use of, testing, marketing or supporting any copies of Microsoft Word which can open files containing a feature called "Custom XML", subject to a bit of leniency for supporting infringing copies already sold. "Custom XML" is considered to be a key feature of Microsoft OOXML document format, so this patent issue is certainly something that needs to be resolved somehow before OOXML can be recommeneded as an "open standard" in any country such as the U.S. where this kind of patent exists.

A lot of people are reacting by making claims about ODF (which is also an XML-based format for office documents) also supposedly having similar patent issues. Specifically, U.S. patent No. 5,787,449 (the patent of the Canadian company i4i) and U.S. patent No. 7,571,169 (a patent which was recently issued to Microsoft) are mentioned.

In the present article, I want to explain why these patents have nothing whatsoever to do with ODF, or with any straightforward implementation of ODF. When I refer to ODF here, I mean all versions of ODF which have been finalized up to now, i.e. up to and including ODF version 1.1; it is unfortunately less obvious whether the RDF-based Metadata Model proposal for ODF 1.2 is also totally unaffected. I believe that question requires a more sophisticated analysis than what is possible with the techniques described in the present article. (However, even if the result of this analysis should be that due to the i4i patent issue, nothing like the Metadata Model proposal can be included in an open standard, that wouldn't be a serious problem for the future of ODF, because the ODF world hasn't been built on the assumption that this functionality is available.)

What kinds of statements about patents can I make?

I am not a lawyer, and specifically not a patent lawyer. I have never spent a lot of time on learning about the intricacies of patent law. Therefore it certainly wouldn't be wise for me to comment on matters like whether or not the judge in the i4i vs Microsoft case erred when he found i4i's patent to be valid. I would have expected that kind of patent to be invalid as a matter of principle in view of Bilski, but that's a legal question, and I'll be happy to leave it to the lawyers and the court system to resolve that kind of questions. (If that leads to unacceptable results, I'll view it a moral obligation for the citizens of the U.S. to lobby Congress to get the statuary law fixed, though.)

On the other hand, some of the questions in relation to patents are questions of fact rather than questions of law. I feel competent to comment on this kind of questions when I understand the relevant subject matter.

For example, suppose someone had a patent on a multiplication algorithm and you have a program which counts the elements of a list of items by starting with zero and then incrementing by one for each item in the list. If you are concerned that the patent on the multiplication algorithm might affect you, I'll feel competent to tell you that you don't need to worry about that particular patent, because based on my knowledge of the subject matter I can tell you that what your program does is so totally different from multiplication that there is no risk of your program infringing the patent.

If on the other hand your program does multiplication, but by means of an algorithm which looks to be different from the one which is patented, maybe the issue needs to be considered as a potential legal risk. I would in such a situation refrain from making any definitive statements, and suggest to you to get advice from someone who specializes on dealing with this kind of legal risks.

Of course I write this because the difference between what the two patents in question are about and ODF can be compared to the difference between multiplication and counting.

Multiplication and counting have something in common: Both deal with numbers. In the same way, the patents in question and ODF have something in common: both deal with XML-based (or general XML-like) representation of "office document" data.

However, counting is not at all like multiplication. And ODF does not contain in any way anything like the kind of extension mechanisms which are described in the two patents.

How to read a patent

Before addressing the two patents specifically, I need to make a few brief remarks on how to read a patent: The most important part of the patent is the claims: If one of the claims matches a program, or an aspect of the program, then the patent is potential trouble. It might still be possible to prove that that claim is invalid: For example, it might be possible to prove that that was not a new invention at the time when the patent was filed. However, patent litigation is so expensive that even legally invalid patents pose a potentially letal business risk for all but perhaps the biggest of companies.

But if all the claims of the patent are about something which is clearly different from the program (or category of programs) that we are concerned about, then it will be reasonable to dismiss that patent as a non-risk, as something not to be concerned about. In this case we can call the bluff of those who spread FUD about the patent.

A typical style of how patents are often written is that there is a small number of so-called independent claims and then there are further claims (so-called dependent claims) which reference the independent claims and claim something more specific. For example, claim 1 of the patent might have a structure like "an A, which comprises B, C and D, where (some condition on B, C and D)". Then further claims might be for an "A as in claim 1, which further comprises E", or they might be narrower by having a further condition on B, C and D.

The above paragraph is probably difficult to understand for those who are not fluent in careful logical analysis as it is practiced, for example, in mathematics or computer science -- lawyers do careful logical analysis, too, but I think they do it without introducing variables like A, B, C, D.

What is essential for being able to see through the kind of crude patent FUD that this article aims to dispel, is just to understand the meaning of the verb "to comprise", which is simply as follows: "An A, which comprises B, C and D" is an A which consists of several parts which include B, C, and D. There may be further parts.

If you have a program which is an A that consists of B, C, D, and in addition E, that program might infringe the patent. However, if you can convince yourself that the program contains nothing like B, then you don't need to worry about that patent claim even if your program is an A and it contains C and D.

Furthermore, if a program contains nothing like B, you can usually also very quickly reach the same conclusion about the dependent claims which assert the existence of specific further kinds of components, or which otherwise impose further conditions.

Why the i4i patent doesn't apply to ODF

For the i4i patent it is relatively easy to analyse whether the claims apply in any way to ODF (in the sense of potentially affecting straightforward implementations of ODF), even though the claims of the patent don't explicitly refer to XML, using more general language instead.

A good starting point for this is the following explanation in the section "SUMMARY OF THE INVENTION":

"...in sharp contrast to the prior art the present invention is based on the practice of separating encoding conventions from the content of a document. The invention does not use embedded metacoding to differentiate the content of the document, but rather, the metacodes of the document are separated from the content and held in distinct storage in a structure called a metacode map, whereas document content is held in a mapped content area."

If ODF, the "metacodes" are embedded as XML elements into the character stream of the document. They are not "separated from the content and held in distinct storage in a structure called a metacode map".

If you're familiar with ODF, it is now easy to double-check the independent claims of the patent (claims 1, 14 and 20) to make sure that for this reason, the patent has nothing to with ODF. By contrast, OOXML uses a mechanism as described in the patent. It should not come as a total surprise that Microsoft was ordered to stop using that mechanism.

By the way, according to GCN.com, i4i has also stated that "it has looked at OpenOffice and found it doesn't infringe on its patents". OpenOffice uses ODF as its native format for storing documents.

Why the Microsoft patent doesn't apply to ODF

The Microsoft patent is a bit more difficult to analyze, because it doesn't contain such a good explanation of how it differs from the straightforward way of representing "office document" data as XML (which Microsoft wasn't able to get patented in greater generality, because the patent office was able to determine that some of the claims which Microsoft would have liked to get patented were in fact not new inventions.)

There are two independent claims: claim 1 and claim 12. Both of them are pretty long lists of conditions. The only way in which any of these claims can be infringed is by fulfilling all the conditions listed in the claim. Therefore, if we can convince ourselves that one of these conditions is clearly not fulfilled by a given program, that suffices for concluding that the program does not infringe the patent claim. However, most of the conditions are for what appears to be standard features that one would expect to be included in any reasonably full-featured "office documents" editing program. Any reasonably complete implementation of ODF will of course have to include all the basic features. However, Microsoft didn't invent the idea of expressing "office documents" as XML, so they cannot get a patent unless it includes something that is special, which differs from how "office documents" have previously been expressed as XML. The Microsoft patent just differs from i4i with regard to not pointing out equally clearly just what is the new aspect of their claimed invention. (This is probably the result of the patent office having accepted only a subset of the claims in the original patent application: It is quite typical that in such a case, the descriptive text of the patent is simply not updated to accurately reflect the new, narrower scope.)

However, when going item by item through the list of conditions in the independent claims of the Microsoft patent, it quickly becomes clear which of the conditions is the non-obvious one. It is this:

a hints element that is interpreted according to a hints schema that includes information to assist an external application in displaying text of the of the document

Since this is the only non-obvious aspect of the Microsoft patent, it is what I will consider the heart of the patent. Hence, like the i4i patent, also the Microsoft patent is about particular ways of making an "office documents" format extensible beyond what is specified in the document format specification itself, and beyond the inherent extensibility properties of XML. Since the maintainers of the ODF standard believe these inherent extensibility properties of XML to be sufficient, and they have not included additional mechanisms (which might potentially infringe this patent), ODF is safe from this patent also.

Conclusion

The analysis shows that both patents are relevant to ways of making an XML based "office documents" format extensible beyond what is specified in the document format specification itself, in ways which go beyond the inherent extensibility properties of XML.

ODF doesn't provide this kind of extension mechanisms, while OOXML does.

I conclude that there is absolutely no reason to be concerned with regard to ODF in the context of these two patents.

Maybe one key difference between ODF and OOXML is that the maintainers of the ODF specification try to keep it as simple and straightforward as possible (as long as it meets the needs), while Microsoft wants to "innovate". Such innovation is dangerous in a world which has software patents.

Notes on feedback from readers

I linked to this article in reply to a slashdot story which claimed that the Microsoft patent means trouble for ODF. In response, makomk pointed out an argument to show that the Microsoft patent not only isn't any trouble for ODF now, but also isn't going to be any trouble for future versions of ODF either, even if something like the "hints element" described in the Microsoft patent were added to a future version of ODF. This argument however isn't quite of the "that's a totally different kind of thing" type of argument presented in this article, so for that kind of argument I would be interested in the opinion of an knowledgeable patent lawyer who can explain the precise legal standard based on which a court would decide whether the difference in content models is significant enough to make a difference legally, and what in his opinion the outcome of that determination should be.
Note: I aim to create a leading blog on the need for standards which are truly open standards and technically of excellent quality. More blog postings will come soon, but first I'm looking into choosing blog software which meets my needs well. As soon as that is installed, there will be at least an RSS feed, and possible also an Atom feed. If you would like to be informed when that is available, please drop me an email with this request.

Homepage

Benefit- oriented consulting

Golden mean between open source and profit oriented software

Norbert Bollow's Comments on Standards

Contact Adaptux

Adaptux GmbH (Zurich, Switzerland) / Tel 044 972 20 59 / Fax 044 972 20 69 / Email info2009@adaptux.com