September 2, 2007
Standardization
No Comments
Regardless of the result in today’s vote on OOXML, ISO needs reform. The fact that there is no standard for the standardization process is shocking. Each voting country has its own way of determining its vote. Most of the countries’ voting procedures are open to manipulation or even corruption. And on the ISO level itself, there are obvious flaws.
In a few days I will post my set of suggestions in the form of an open letter to ISO. Stay put.
August 31, 2007
Standardization
1 Comment
After a tough race and much debate, the organization responsible for Norway’s vote in ISO has decided to vote “No, with comments”.
Standard Norge has been under much pressure during the last week and came out with its decision today. The comments accompanying the No are these:
Summary: The Scope clause in Part 1 is inappropriate for an ISO standard. Justification: The Scope clause is self-referential, does not convey any useful information, and does not conform to JTC1 and ISO Directives for the scope of a standard or NP (ref. JTC1 Directives, 6.2.1.6; ISO Directives, Part 2, 6.2.1 Scope). In the absence of an appropriate Scope clause it is not possible to resolve a number of issues arising from the current text.
Summary: Rework into a multi-part standard. Justification: As currently drafted, DIS 29500 covers many areas that are not directly related to one another. This makes it difficult to review by National Body experts, difficult to implement, and difficult to assess compatibility.
Summary: Rework into a much more concise standard. Justification: The text of DIS 29500 is too voluminous to be reliably reviewed by National Body experts, or for implementations to be assessed for compatibility. It appears to be unnecessarily long, combining normative text with copious examples and containing a lot of redundancy.
Summary: The information model is unnecessarily complex. Justification: The XML information model described is unnecessarily complex. Given the example in the Overview at page 13 (§5.6)
<w:p>
<w:r>
<w:t>Hello, world.</w:t>
</w:r>
</w:p>
Could - and should - be represented as:
<p>Hello, world.</p>
Summary: All examples should conform to the XML specification. Justification: More than 10% of the examples are not valid XML. This will cause confusion and could lead to differences in implementation that will inhibit interoperability.
Summary: DrawingML should be a separate standard Justification: DrawingML has general applicability as an XML vocabulary for vector graphics. It should therefore be a standard in its own right that can be referenced in isolation by other ISO standards, such as ISO 26300.
Summary: OPC should be a separate standard Justification: The Open Packaging Conventions could support a much broader range of applications than OOXML. It should therefore be a standard in its own right that can be referenced in isolation by other ISO standards, such as ISO 26300.
Summary: The specification should not include binary notations. Justification: Unspecified (or underspecified) binary notations, especially those with operating system dependencies, inhibit interoperability and do not belong in an ISO standard. Even well-specified binary notations, such as bitmasks used to encode multiple boolean values, are inappropriate in an XML-based interchange format. Nonstandard text-based encodings of control characters, such as ‘bstr’ (basic string) are also inappropriate.
Summary: The specification should not contain underspecified features. Justification: Underspecified features and settings, such as “autoSpaceLikeWord95″, “footnoteLayoutLikeWW8″, “lineWrapLikeWord6″, “mwSmallCaps”, “optimizeForBrowser”, “shapeLayoutLikeWW8″, “supressTopSpacingWP”, “truncateFontHeightsLikeWP6″, “useWord2002TableStyleRules”, “useWord97LineBreakRules”, “useWord97LineBreakRules”, “wpJustification”, “wpSpaceWidth”, “sldSyncPr”, “securityDescriptor”, and “revisionsPassword” preclude uniform implementation and thus inhibit interoperability.
Summary: Option sets should be extensible and should avoid cultural bias. Justification: Options to features such as border styles, enumeration styles, list styles, the function NETWORKDAYS(), Clipboard Format Type, etc. should not exhibit cultural bias or be unduly restrictive, since this will inhibit adoption internationally.
Summary: OOXML should reference, use, and conform to existing standards where applicable. Justification: It has been claimed that the current standard conflicts with other ISO standards, such as ISO 8601 (Representation of dates and times), ISO 639 (Codes for the representation of names of languages) and ISO/IEC 10118-3 (Hash functions). If this is the case, the specification should be brought into line with these and other existing standards. The problem is especially apparent in the case of the ‘date1904′ attribute. The ambiguity regarding the status of the year 1900 should be resolved by using ISO standard dates everywhere.
Summary: Lack of consistency in notation of values and dimensions. Justification: There is no coherent dimension notation throughout the specification, for instance the relative dimension “87,5%” is sometimes represented by “pct87″, sometimes by “87500″ or even by “4375″. This will cause confusion and could lead to non-interoperable implementations.
Given these comments, it may be hard for Microsoft and ECMA to turn around and fix this and convince Norway to change its vote to “Yes” in the Ballot Resolution Meeting in February.
The full document that Norway will send to ISO is at Standard.no
I will thank the work of all my allies in this process.
It’s time for a sip of champagne.
August 24, 2007
Standardization
8 Comments
On the 22nd of August, a meeting was held in the Norwegian committee responsible for voting on OOXML as an ISO standard. About 30 people showed up. A slight majority was against approval. Microsoft, their partners and paid consultants were supportive.
OOXML was first approved as a standard by ECMA International at an impressive speed - 20 times faster than any other XML format. Early this year it was sent to ISO through their Fast Track. People have been busy working through the 6500 page specification and give comments before their national deadline - in Norway it was the 26th of June.
The organization representing Norway in ISO, Standard Norge, has collected the comments and structured them into a summarizing document for the committee (the SN/K 185). All the comments were negative. Many were devastating and suggested an outright refusal of the standard.
Before the meeting I had the strategy laid out:
- As you may know, there already exists an ISO standard for document formats, the ISO 26300, better known as the ODF (Open Document Format). This format is used by a number of office suits such as OpenOffice and Google Docs and Spreadsheets. Having competing and overlapping standards contradicts the ISO Global Relevance Policy, the ISO Strategy 2005 - 2010, and the WTO’s Agreement on Technical Barriers to Trade (Annex 3H). Arguing that there exists other competing standards does not make it any better - or cheaper for the industry to comply with.
- It is not an open standard. Microsoft’s covenant not to sue covers the OOXML, but not referenced technology needed to actually implement the format in applications. A full implementation would be synonymous with tap-dancing in a patent minefield. The covenant not to sue also doesn’t cover future versions of the standard.
- It is incomplete and full of technical shortcomings, errors and blunders that puts the ECMA quality assurance into perspective.
Apart from all that, there is no application that has fully implemented the format. Not even Microsoft has done that. For standards to pass through the IETF, they require two independent reference implementations. OOXML, on the other hand is a theoretical exercise. But lack of reference implementations are no problem for ISO.
I had read the essay by Jon Bosak (SUN Microsystems) on why SUN voted as it did in the US. He lays out a very different strategy. His view is that the battle is lost to completely reject OOXML as an ISO standard. ISO can only reject it with comments, and that is equivalent to giving Microsoft a todo-list on how to fix the draft so as to get it approved. Microsoft has sufficient manpower to easily tackle that.
Most of us had missed what Mr. Bosak saw: OOXML promises interoperability with earlier closed binary formats (the Word Doc, older Excel file formats etc.). But it doesn’t deliver. How on earth could someone be able to convert old binary files to the new format without having the specification of the old formats and a mapping to OOXML. If you are to translate some text from Chinese to English, it doesn’t much help to only know English.
Now here is where you can tell the old hound from the little puppy (me being the puppy). Jon Bosak gets Microsoft to admit that the interoperability with legacy documents are only marketing speech. He further gets an agreement in the comments to suggest an amendment:
DIS 29500 be amended to include a reference to a mapping from the Microsoft Office 97 - 2003 formats, to OOXML.
By forcing Microsoft to comply with their very own promise in the standard, he puts pressure on them to release a full mapping of the old legacy formats to OOXML. By this he gains market access for SUN and everyone else.
Nevertheless, I wanted a complete rejection of the standard due to points 1 and 2 above. I thought “Ah c’mon Bosak, you are chickening out, we must stop this dead in the track”. And I entered the room adamant to get this stopped on principal grounds. I learned much in that meeting, apart from being very disillusioned on the process of standardization.
The formal committee work in each country is very different. In some countries, the committee responsible for the nation’s voice in ISO is voting on the matter. In other countries like Norway, the process is determined by consensus. And here consensus is defined as unanimity. Yep, that’s right. What Norway will say to ISO has to be agreed upon by all the committee’s members. No voting, only consensus. Before the pile of 6500 pages of OOXML specification was placed in the lap of the Norwegian committee, they numbered 4 members. Half a year later we count 46. The matter does indeed engage people.
The meeting started out with the Vice President of Standard Norge trying to lay down the rules of the game: We are here to go through the documents with comments to the standard and only those comments that we agree on will be passed on to ISO. He took up the first point (mine) and asked: “Are there any disagreement to this point?“. Unsurprisingly, a lady from Microsoft replied “We disagree“. He went on “Ok, so we have a disagreement on this point” and was ready to move on to the next. I and many with me dropped our jaws. “Are you seriously telling us that if Microsoft here says no to a point, it’s pulled from the list?“. “Yes, that is how the process works“. “And they can do that without even giving an explanation as to why they don’t agree?“.
After some back and forth on this, Microsoft was forced to at least give an explanation as to why they say no. But when they came up with an unfounded reason, it was not allowed to challenge it as that would make it impossible to get through the 45 points in two hours. They could simply manufacture a reason and the point was culled. Much because the VP could not possibly know if the reason given was valid or not - he had no knowledge of the standard. Or XML. Or file formats.
Now sit down and grab hold of your chair: He is the one deciding what Norway will vote in the case of no consensus in the committee!
He seems to be an excellent VP. But the process needs someone in the know.
A suggestion to make a vote to see where the committee stood came up a few times. It was met with a resolute “NO“. Standard Norge was not interested to see how many was for or against an approval.
It was hard for him to hold the format for the meeting. Discussions ensued - about the standard as well as the format of the meeting itself. I said a lot in the meeting, and I am sure that Microsoft think I said far to much. I objected to the fact that Microsoft had Liberum Veto. But my objections did not change the process. It wasn’t until Håkon Wium Lie (the father of CSS) became aggravated enough and pressured the VP on the point of removing comments that Microsoft disagreed with. He pulled no punches and the VP then said that “No, they will not be removed, but rather softened, perhaps“. He was making it up as he went along.
The farce kept on for about 4½ hours. An interesting exercise leading to a few observations:
- The standards process in Norway needs an overhaul. The process is not suitable to handle disagreements.
- This may not be news, but Microsoft will label opposition as “religious” to discredit arguments.
- I should put more trust in old hounds.
During the meeting, Steve Pepper suggested that OOXML be split into two distinct standards - one for backward compatibility with legacy formats and one modern standard catering for current and future document needs. I have never heard that idea before. It is very interesting as Microsoft’s best argument for OOXML not contradicting ODF is that it offers the interoperability with old binary formats. To pull those parts out and crafting a separate legacy interoperable standard would give the IT world real value. The rest should be used as input to improve the existing ISO 26300 (ODF). That to me seems the best of all solutions.
Microsoft’s move to put OOXML through ECMA and perhaps through ISO is a move that would impress Gordon Gekko. To put such a daunting task of keep-up-with-the-market-leader into the lap of so many competitors is very smart. While Microsoft works on new product features, their competitors will be busy implementing the unsurmountable (and legally dicey) standard into their products. And the monopolist’s own variations to the format.
ISO is to vote on the faith of the Draft International Standard, ISO DIS 29500 (OOXML) on September the 2nd. Each of the countries involved in ISO’s Standard Committee 34 will cast their votes latest that day. The votes may be either a “No with comments”, a “Yes with comments” or a “Yes”. A country can also choose to abstain from voting, and no comments will then be given to ISO. Netherlands ended up with the latter.
Votes are cast by the Participant Members of ISO’s JTC1. DIS 29500 needs at least a two thirds positive majority to be accepted. With Microsoft and their partners busy in every national committee, and as new and rather curious were countries added to the list of P-members (the Ivory Coast…), they just might pull this off. If not, they will come back and try again. And again. And again. Resistance is futile. If you so believe.
I should mention that I am certainly not opposed to Microsoft getting a standard approved. But I do believe that competing standards is a very bad idea. I believe that anything that sanctions unfair competition is bad. I believe in a world where the threshold for competition is low and where everyone are free to easily innovate.