Microsoft has today published our first set of document-format implementation notes, for the ODF implementation in Office 2007 SP2. These notes, which are available on the DII web site, provide detailed information about the design decisions that went into our implementation of ODF 1.1. See the press release for more information.
The implementation notes can be found under the "OASIS ODF 1.1" option on the Reference dropdown on the DII home page. The site is structured to allow for multiple standards and implementations to be covered, and in the coming weeks you'll find an option on that dropdown for ECMA-376 as well, which will cover how that standard is implemented in Office 2007. We'll also release implementation notes for IS29500 when we get closer to the release of the next version of Office, code named Office "14." Other implementers of these standards are welcome and encouraged to post their own implementation notes to help achieve a level of interoperability that will benefit users around the world. Assistance is available to those who are interested.
Each Implementation is Unique
Every implementer of a large standard such as ODF or ECMA-376 needs to make decisions about how to approach implementation of the standard. Application limitations and application design come into play, as well as more subtle factors such as support for optional constructs, default values for missing attributes, and bugs. The cumulative effect of all of these factors can cause behavior that was never intended, or behavior that can be difficult to understand in the abstract without detailed information about the myriad details that make up each implementation.
A simple and instructive example can be seen by opening a document in multiple implementations of the same standard, and then checking the total page size of the document. If you download the OASIS ODF 1.1 specification, which is publised as an ODT file, and open that file each of the leading implementations of the ODF standard, you'll find different page counts in each of those applications.
Is this a problem? Is one implementation "right" about the number of pages in the ODF 1.1 spec, and the other implementations "wrong" about the page count? Not at all. Rather, the page size is a symptom of underlying differences in the architecture and approach of those implementations.
Open Standards + Transparency + Collaboration
So how can vendors work towards maximum interoperability between their implementations? The answer rests on three guiding principles: adherence to open standards, transparency of implementation, and open dialog between all interested parties, including implementers, users, and the standards community.
In the case of ODF 1.1, we've been working on this three-pronged approach to enabling interoperability for some time now. We've been participating in the standards maintenance process, and we're contributing what we've learned through our own implementation of ODF, while listening and learning from the perspectives of other implementers. We've engaged with other implementers through DII workshops, 1-on-1 discussions, the standards maintenance process, and other activities. And we're beginning today the rollout of ultra-transparent documentation about exactly how we've implemented key document format standards in Office.
Implementation Notes: Examples
Let's take a look at a few examples of the information that is provided in the ODF implementation notes. Before we get started, it's worth noting a few basic concepts:
As an example of how the implementation notes work, here's what you'd see if you were to drill down into section 8.3.4 (Shapes) and then click on the Implementation Notes link:
Note the small capital N next to some of the sections in the treeview control on the left. Those indicate that you'll find information about Office's implementation under that section. Here are a couple of other things to note about the example above:
Here's another example of an implementation note, from section 8.2.1 (Column Description):
As you can see, this tells you that Word is limited to 63 columns in a table. This is an application limitation of Word, and by documenting this limitation we are allowing other implementers to accurately predict and understand Word's behavior.
Similarly, the implementation note for section 15.2.1 (Page Size) explains that Word has an inherent application limitation regarding page size:
The standard allows for much larger page sizes, which is a good thing. Future improvements in display or printer technology may make much larger page sizes feasible, and the standard should not limit that type of innovation. But Word has a specific constraint for page size, and that constraint is documented here so that other implementers can interoperate with it as they see fit.
Here's an example of a more complicated implementation note, from section 15.4.23 (Text Formatting Properties - Language):
As you can see, this topic is more complex: how to map Word's two language IDs for a text run (primary and secondary) to the three language IDs supported by ODF (for latin, Asian, and complex text). We're documenting exactly what Word does in this case, so that other implementers can make informed decisions about how to interoperate with Word's implementation.
This level of transparency is something that all implementers will benefit from, and we're hopeful that other implementers will also share these kinds of details about their design decisions. It's useful to understand the guiding principles that each implementer uses to make such decisions, but implementers also need to understand the specific details. With this information in hand, an implementer can make informed decisions about how to provide users with the best possible interoperability experience.
Thanks to everyone who worked so hard in recent months to write, edit, review, organize and publish these implementer notes. The Office PM team has once again done a huge piece of work to help improve interoperability, and people from many other teams within Microsoft have also contributed to this effort. Great work, everyone, and I hope you all enjoy a much-deserved holiday break soon!
have just been published on the Document Interop Initiative (DII) site :- Welcome to the Microsoft Office
Do you have some numbers at hand?
- How many implementation notes in total?
- How many of them are descriptive (document how MS Office creates compliance)
- How many of them contain notes on non-compliance?
Can we download the implementation notes in some form? For offline use mainly, to allow for reference when one is not in the Matrix ;-)
Today, Microsoft published our first set of document-format implementation notes for the ODF implementation
This is really impressive, and a good answer to all the naysayers! Looking forward to that SP2 now.
Jan, we've not tried to characterize the quantity or type of notes because that can be debatable in many cases. As for an offline copy, we don't currently have plans for that. The web-site structure allows for threaded conversations on each post (which will go live soon), as well as additional notes for other standards/implementations, and we feel that will be most useful to implementers going forward.
"Is one implementation "right" about the number of pages in the ODF 1.1 spec, and the other implementations "wrong" about the page count? Not at all."
Well, I think ANY Document File Format correctly implemented not giving the same page count with different computers, software products or printer drivers has a deficit in the specification!
Those deficits are the main reason why PDF got so successful!
Just because naturally everybody wants his document at the recipient to look the same way he sees it...
dmahugh: Thanks for the info. When will Office 2007 SP2 hit the market, BTW? I know many people are eager to try the ODF implementation ASAP ... ;-)
"As for an offline copy, we don't currently have plans for that. "
could you tell us why don't you plan to do that? you have produced more than 15000 pages to "off-line reading" iy we count DIS29500 + corrections
It is hard for Microsoft to dump in a PDF all this info?
Thanks in advance
Stefan, I agree that precise rendering is a key benefit of fixed layout formats such as PDF and XPS. Flow-oriented formats like ODF, OOXML and HTML usually don't specify rendering/layout details, however, so that's up to each implementation to decide. (This is why specs are typically published in a fixed layout format, such as the PDFs used by ISO.)
Jan, Office 2007 SP2 will be out in the first half of 2009.
Carlos, I don't think there's any particular reason, it just hasn't been a top priority. We're working on getting the ECMA-376 notes out next. If there's specific info you're trying to find, let me know.
The list of elements and attributes "not supported in core Word/Excel/PowerPoint 2007" is quite long. Can you tell us what will happen, when Office 2007 encouters an unsupported element.
Will it simply be ignored?
When roundtripping - will it be deleted or preserved?
On load, Office 2007 SP2 will simply ignore the unsupported elements and attributes in ODF files. We do not attempt to round trip unsupported elements and attributes, they will be removed from the ODF file if you resave it using Office 2007 SP2. This is consistent with our implementation principles and our desire to provide predictable behavior. We considered trying to roundtrip elements and attributes that we do not understand or support, but we found if we did this that we could not be sure the resulting files were internally consistent and conformant ODF files.
As an aside, there are some cases where we write elements or attributes on save that we do not support on load, for the sake of better interoperability with other applications that use ODF. Those cases are described in the implementer notes as well.
Dernier post Open XML sur mon blog avant les fêtes de fin d’année, avec les liens qui ont marqués cette
Interoperability Challenges I've started testing interoperability between various document-format implementations,
Today we've published another set of document-format implementation notes, this time for the ECMA-376