The opening session was a cool moment, both for the location (the Hungarian Parliament) and for the content. We started in the very hall of the Parliament. Incidentally, the first thing I noted there has nothing to do with OO.o but is a general problem of the FOSS and programming worlds: of about 150 people in the hall, no more than 10% were women, even if OO.o and FOSS users aren’t certainly 90% males, are we? But I digress.
The second day of the Plugfest followed the same general scheme of the first one (covered in a separated page): a non-technical introduction followed by lots of hacking, feature analysis and product anticipations.
A representative of the Spanish Ministry of Presidency, Miguel Angel Amutio Gomez, started the day explaining the crucial points of the Spanish law 11/2007: the right for everybody to use whatever digital technology they like best and the obligation for all Public Administrations to avoid discrimination of citizens based on their technological choices. In order to make this possible, the law stresses the importance of open standards, setting the goal that all e-government services and documents become available at least through such standards. In this context, Amutio said, the Spanish National Interoperability Framework (NIF) that A. Barrionuevo presented in the first day becomes an essential legal test for all Spanish organizations.
Besides the law itself, the most interesting part of this presentation were the results of an analysis made using the NIF: it turns out that 30% to 40% of the about 400 digital standards already used for e-government in Spain comes from (in decreasing order): IETF, OASIS, W3C, ISO, and Microsoft.
After this stimulating factoid, the conference went back to strictly technical topics. Michiel Leenars of the Opendoc Society, showed us all you can do with OfficeShots. This is a rendering farm for office documents, primarily aimed to developers and power users but useful for everybody. When you upload your file to the OfficeShots server it will show you how it will look with many combinations of office suites and operating systems. If needed, an anonymizer kindly provided byt the lpOD folks (see Day One report) scrambles all the text to avoid online dissemination of sensible data. The most advanced use cases for OfficeShots include:
- check before buying which ODF software works better with the kind of documents you actually need
- design styles for corporate templates that render correctly on all office software products
- (for developers) testing the interoperability of your program with other office suites
There is also a test suite gallery to help developers to test new versions of their products quickly. Of course, OfficeShots is an Open Source project to which everybody can contribute.
Microsoft and OpenDocument
Before lunch, Mario Wendt summed up the current status of Microsoft support for OpenDocument. Here are the main points:
- Office 2010 will include over 1000 odf related bug fixes
- Implementer notes for Office 2007 and Office 2010 requested by the community already available (even if only as single PDF files)
- Study of the differences between ODF 1.1 and 1.2 in order to provide appropriate feedback
- Ongoing work to contribute to finish OpenFormula
- Commitment to support ODF 1.2 nine months after its formal approval by ISO
Opendocument on Android!
Using ODF documents on the road becomes easier and easier every year, at least for text ones. Oliver Mas presented the Android port of ODFMovil, a J2ME ODF viewer developed by Cenatic under an Apache 2/GPL2 license. The port, which was also intended as a pilot to estimate the complexity of porting bigger applications, was relatively easy due to the four-layer architecture of ODFMovil: core utilities, file management and compression, XML parsing, GUI. As it turned out, only the first and third layer could be ported. File management and graphical interface had to be rewritten from scratch. More details are available in Oliver’s ODFMovil slides.
OpenDocument for financial firms
There is a part of the OpenDocument standard that is really critical for its adoption, at least in some markets: the financial formulas that are used to calculate things like interest rates, mortgage payments and similar amenities. As Rob Weir put it, “an economist whose predictions aren’t wrong more than 10% is a genius, but a banker making a 1% error is a criminal”, so it’s essential that the formulas in OpenDocument don’t make any mistake. This is more complicated than it seems, to the point that a whole session of the Plugfest was reserved to this topic.
There are at least five ways to calculate the number of days between two dates that can in real life you can find mixed in different ways, depending on the traditions and regulations of every country (not to mention leap years): sometimes all months are assumed to last 30 days, and the year can be 360 days instead of 365. Since this changes how much you still owe to your bank after a few years of mortgage, it is absolutely necessary that all ODF compliant applications are 100% interoperable from this point of view. This means that each of them must declare without ambiguities what method it uses for day counts and how it handles (at least) the YEARFRAC() formula, even when it appears in a spreadsheet generated by another application.
Change tracking and handling of unique features
Another important moment of Day Two was the hacking session on management and interoperability of change tracking. Mario Wendt presented a test case that all developers could create and test on the spot, reporting the result on a common wiki: a text document with a fixed layout mixing a table, several paragraph and numbered list, on which everybody had to perform a well defined series of edits.
Saturday morning, instead, was “unique features” time. There are functions of some ODF capable suites that are simply absent from other programs: notable example are music shapes in KOffice or SmartDraw graphics in Microsoft Office. What must happen when you use such features in an ODF document that you want to share with users of other software? The session theme was that developers could, as a minimum, guarantee that:
Careful readers of my ODF Day One report will immediately notice the intersection of this issue with the topic of my own talk and with what Rob Weir said about metadata interoperability. For the record, Rob also pointed out that the problem presented in my talk could also happen in another way: what if you insert into an OpenDocument file a macro in an open programming language (e.g. Python) that implements a patented algorithm? It will be really interesting to see how Public Administrations and other large organizations will handle all these issues in the medium/long term (if they see them in the first place, of course).
Converting wikis to books in OpenDocument format
The last cool thing I’d like to report from the Plugfest is a cool use of lpOD that Louis showed us on Friday: it turns out that you can use this software to export a whole wiki, or selected parts of it, to a book in OpenDocument text format. Besides a flexible templating system, the software gives you automatic generation of the Table of Contents and support for footnotes, tables and images. This could be a very handy publishing tool for schools writing their own textbooks or any other organization that creates text content working through the Internet!
The ODF Plugfest is a Conference whose goal is to to achieve the maximum interoperability between competing applications, platforms and technologies in the area of digital document sharing, and to promote the OpenDocument format (ODF). This page, as the others that will follow on this website, is a short technical summary, primarily aimed at developers, of what happened during the first day of the conference. Later next week I’ll also post a non-technical summary of the whole event at the Stop.
My own talk, which you can dowload at mfioretti.com, was about a problem I first saw in 2006/2007: how do you prevent proprietary components from “polluting” open container formats like ODF?
Alberto Barrionuevo explained how Opentia contributed to the Spanish National Interoperability Framework (NIF). This is a very interesting work, that could and should be replicated in other countries: Opentia took the full text of the 2007 Spanish law about e-government and translated it in mathematical format in order to match, in the most unambiguous possible manner, each legal requirement to equivalent technical ones.
The result is a huge spreadsheet that implements a finite state machine and tells you if and how ammissible each of about 550 protocols, file formats and programming languages is for e-government usage in Spain (for the record, about 80% of them pass the test, at least partially.
Rob Weir of IBM summed up the status of the next version of the standard. ODF 1.2, which is almost done, will be divided in three parts: one for the core schema, one for the container and one for OpenFormula (do you remember that the first generation of ODF compliant spreadsheet suites lacked formula compatibility? This should fix that problem for good). New features will include digital signatures, support for RDF capabilities (see below) and native tables in presentation slides. An Interoperability demonstration of ODF 1.2 will take place at the OOoCon Conference in Budapest next September. Rob also mentioned that everybody can send in suggestions for the next version of the standard, that should include things like modularization, web profiles, enhanced SVG support and Xform integration. You can either answer OASIS calls for public comments, join the OASIS ODF TC or implement ODF 1.2 and send feedback.
Later on, Rob also introduced another theme that could and should get a lot of attention in the next years, and that is also somewhat related to what I said in my own talk: ODF metadata and interoperability. What should happen if your editing software loads and ODF file containing metadata that that software doesn’t understand? Should it preserve or ignore those metadata?
In some cases the answer is easy: metadata that behave like visual attributes, eg the bold tag (where the attribute (boldness) is separated from the data or content it applies to) can be removed or ignored without any real damage. Go beyond that, and interoperable metadata are much harder to achieve.
What if, for example, a document is pasted into another one that has a different value for the same metadata, for example the one indicating who in the organization is responsible for approving that text? An even more interesting case is “Should I digitally sign a document that contains metadata I can’t see?”
Another interesting moment of the day was when Jos van den Oever presented the work for RDF support for ODF 1.2 in KOffice. Generally speaking, RDF should help to add to the text enclosed in a document information about the meaning of that text, in a format that is directly and easily readable by a computer. Consider, for example, a sentence like “Paris is hot”. If it’s in plain text, for a computer it’s very difficult to understand, even by looking at the rest of the document, if it means that temperatures in the French capital are high or that Paris Hilton (or the mythological Trojan prince???) is sexy. Adding an RDF data triple to the Paris string, that labels it as a city, would eliminate that ambiguity. RDF could deeply change our definition of “document”. If all your files were tagged in this way, it would become much easier (and portable) to ask your computer questions like “find me all the cases discussed by my law firm that involved unemployment law, but not in its home town”.
The end goal is to get to a whole desktop that can use RDF, where the user can read and write docs with RDF, directly cut and paste them between applications. The current work on KOffice will allow it to show the user all the RDF triples and the corresponding text strings in a document, and to use those data to check and show locations on digital maps, or export appointments or phone numbers straight into calendars or address books.
Day one of the ODF Plugfest ended with a presentation of several interesting tools that generate, convert or analyze automatically all kinds of ODF files:
- ASPOSE.WORD a .NET and Java library for document processing in ODF and many other formats in cloud,
single server or desktop environments
- lpOD, an even more interesting (for my personal use, that is) library to create ODF documents. lpOD is already usable in Python (Perl and Ruby will follow) and comes with an online cookbook
- ODFDom Library, another library, in Java this time, to library, written to create, access and manipulate ODF files, without requiring detailed knowledge of the ODF specification
(note to all Plugfest participants and all other readers who want to comment or add something to this page: I’ll enable comments from anonymous users as soon as I can configure the corresponding spam filters, but in the meantime please register or send me an email at mfioretti, at nexaima dot net. And if you want to translate this page, just let me know)