XPointer and the Patent
The issuing of patents on software has been an industry hot topic for a while. Now it's the XML community's turn to get burned. The XML-Deviant reports this week on a Sun patent causing consternation on XML-DEV.
In 1997 Sun Microsystems and Jakob Nielson, the noted web design and usability guru, were granted a patent on a "Method and system for implementing hypertext scroll attributes" by the US Patent Office. The patent describes the process of using a string to define an external anchor for an HTML document. The string is defined in the link to the HTML document, and the web browser, on loading the document defined by the link, will scroll to the first occurrence of the text string within the document -- hardly an innovation.
The first sign that this, like many similar software patents, was going to be an issue was in June 2000, when XPointer moved to Candidate Recommendation. At that time it was noted that the Sun patent may affect the XPointer specification.
The issue didn't resurface until December 2000 when Sun published the terms and conditions under which they would allow the community to develop XPointer applications. This appeared to remove one of the issues holding up progress on both the XPointer and XLink specifications, and so last week the W3C were able to publish a new revision of XPointer as a second Last Call Working Draft.
A notable addition to the specification are the following comments:
XPointer is affected by a technology patent held by Sun Microsystems. The legal terms and conditions offered by Sun to XPointer implementors can be found in the archives of the public comments list.
This would appear to be the first time that reference to such terms and conditions has appeared in a W3C working draft.. Not surprisingly it has generated some comment on XML-DEV.
Drawing attention to the comments in the new draft, Elliotte Rusty Harold called foul on both Sun's patent and their terms and conditions.
It's very questionable whether this is truly an original invention with no prior art. HyperCard and Xanadu both had capabilities like this. It's also questionable whether the patent as written really applies to XPointer. For instance, the patent mandates a certain behavior of browsers. XPointer doesn't. I also think that the proposed "XPointer patent terms and conditions" are unenforceable as currently published.
I recommend complete rejection of this specification until such time as Sun's patent can be dealt with more reasonably.
Other XML-DEV members echoed Harold's observations with regard to prior art: Len Bullard pointed out work carried out by Unisys and the US military in applications available in the early nineties. Bullard also expressed surprise that the W3C had not contested the issue more firmly with Sun:
I guess I am mystified that something this basic could have been allowed for so long. Why has the W3C not made more trouble for Sun on this one? It isn't a resource issue as the same resource (the Internet community) is available to them when they need help on a fundamental such as this one. We haven't run out of torches and pitchforks out here although we don't like to burn down yet another windmill just to get rid of some mad scientist's egoMonster hiding inside.
Posting to the XMLhack comments board, Rick Jelliffe believed that Sun should feel ashamed.
I find it very frustrating to see simple uses of standards subverted in this way. When we make standards (ISO, IETF, even W3C) surely it is to make technology available to people, not to merely provide a fresh crop of ideas for bandits to plunder.
Tim Bray went as far as to pronounce XPointer "Dead On Arrival" if Sun did not relax their terms.
The responsible thing for Sun to do would be to issue an official declaration that the patent has no standing in respect of XPointer, and that to the extent that it does, Sun grants an unrestricted, free, license to anyone to implement and use it without incurring any obligations of any kind on account of the patent. Were they to do this, they'd deserve our praise.
Without this, if you happen to be a competitor of Sun, can you implement XPointer and be confident that you won't be subject to expensive product-delaying litigation? Could I, as an executive of such a company, responsibly place any nontrivial bets on XPointer? I don't think so.
It quickly became apparent that several aspects of Sun's terms and conditions were proving particularly contentious. Firstly the terms state that
By receiving and/or implementing the XPointer Specification, You acknowledge and agree to be bound by the following terms and conditions...
In other words, having simply browsed the W3C site you are seemingly bound by Sun's terms. Secondly, the terms specify that if you implement proprietary extensions to XPointer, then you are required to provide documentation on these extensions to the W3C (emphasis added).
You agree to provide documentation of any Modification to W3C no later than the first date on which such Modification is made available to others, including but not limited to the first date on which such Modification is made available to others through alpha distributions or distributions under obligations of confidentiality (the Available Date). You agree that W3C may publish documentation of such Modifications and make them part of future versions of the XPointer Specification on a worldwide, non- discriminatory, royalty free basis for members and non-members of W3C with such rights extending as of the Available Date. You agree to use reasonable efforts to promptly provide clarifications and corrections of Your Modification of the XPointer Specification to W3C upon discovery of an error.
While publication of these kinds of modifications may not raise an eyebrow in the open source world, it's sure to cause problems for closed source application vendors. Extensions and modifications to the core specification are sure to come, and these need not be of the "embrace and extend" variety. XSLT 1.1 will include some extension functions which the community found to be a useful addition to the specification, it's feasible that the same may occur with XPointer. However the terms are heavy-handed in their approach.
Ann Navarro also believed that Sun's terms are inappropriate, reiterating the call to reject the specification:
The W3C has made calls for prior art to fight patent assertions in the past, I wouldn't expect that policy to change. With all respect ... Sun's "offer" for the licensing is inappropriate in an consortium-based standards body, and should not attempt to force submissions of what otherwise could be true IP of other companies into the open-source space.
I would certainly lobby for a rejection of any document containing such a clause.
All told Sun has taken a great deal of flack in a debate which has, at times, devolved into fear and uncertainty over Sun's intentions. Not everyone has been caustic in their criticism of Sun however. Uche Ogbuji thought that Sun's intentions were honorable but badly executed.
In fact, I'm pretty sure Sun has good intentions here. It looks as if they are trying to eliminate the possibility of "embrace/extend/extinguish". The open source community has long discussed the measure of "white hat" patents. But this idea is not mature, and I believe Sun has made a few mistakes in its attempt to do the right thing once it claimed a frivolous patent.
Later commenting on the ambiguities in the terms and conditions, Ogbuji believed that Sun should clarify their position.
I think some clarification of the licensing terms would help those whom I guess it's designed to protect. I think also that it needs to be more clear what one is getting into just by viewing the XPointer spec. Then the W3C should clarify that they don't intend to bully the developers of competing hypertext systems using this patent.
But all this is not to admit that the patent is valid. I think it's rot, but then it's no more rot than almost every software and business-process patent in existence. I do give Sun some credit for trying to do the right thing. If they can get it right, it might be the first significant "white hat" patent in the books.
Clarifying the language of the terms and conditions would certainly provide a better focus on the issues. Terms couched in legalese are not the best way to present a message to the development community. While the technical and legal communities may share a love of dense prose, this doesn't mean they always understand the other's jargon.
The Way Forward
While there appears to be prior art to invalidate the Sun patent, unfortunately just collecting this evidence is not in itself enough to overturn it. Legal action would be required to achieve an overturning. And it seems unlikely that the W3C has the resources to carry this out.
If the issue is to be resolved it will be through well-applied community pressure. Firs on the W3C to disavow the applicability of the patent to XPointer. This is arguable on the fact that the patent specifically relates to HTML and web browsers, whereas XPointer has wider applicability. Second, pressure can be directed at Sun to loosen their terms and conditions.
Both results are required to properly resolve this issue. As John Cowan observed during the debate, overturning the patent is not enough.
...[N]ow the W3C is going to issue XPointer with a restrictive license that *forces* people who so much as download the spec to return any XPointer modifications to W3C. Even if the patent were ruled invalid, those people would still be bound by the W3C license! Furthermore, one need take no affirmative action to accept the license: just being sent the XPointer spec purports to bind the recipient to the terms.
There is some light at the end of the tunnel. Daniel Veillard, a member of the XML Linking Working Group, suggested that the W3C did not intend to bolster the patent claims.
I don't think W3C did intent to endorse the patent validity, but unfortunately the text signaling the claim seems to present it as accepted. I'm pretty sure this will be corrected.
Eve Maler, the Working Group co-chair and a Sun employee, has also indicated that comments on the terms and conditions would be welcomed.
Alongside XLink, XPointer is a key component of next generation web technologies, and as such is too important to suffer "death on arrival." Len Bullard summed up the potential outcome in his own inimitable style.
We have to take this very seriously. We are being drawn toward an event horizon of a black hole of singular patents that can paralyze the evolution of infrastructure of the Internet for decades. This is very real, very bad, and must be propagated to as many lists where technical discussions are held quickly. Sun may be asserting what they consider to be a valid patent. Que bueno. We know for a fact there is prior art. We know the patent covers a vital part of the web document design. This must be overturned and a case made clear both to corporations and individuals that work for these corporations that pursuing such patents will face patient and persistent opposition and may cost them considerable business.
It has to stop...