The author

The Hidden Pearls of ODF

Steven Pemberton, CWI, Amsterdam


ODF Technologies

ODF is an XML Application. And XML was designed to be able to combine various markup languages into a cohesive whole.

ODF uses amongst others MathML, Dublin Core, SMIL, XLink, and SVG

However, there are more, and I want to talk about two lesser-known pearls: RDFa and XForms


In the early days of the web, the message was "if you have information, it should be on the web". It was surprising how many people didn't understand that.

Now, especially with the coming of the Open Linked Data movement, that call has become "If you have data, it should be in machine-readable form on the internet".

An Example: Tube Trains

Transport for London released live data of where its Tube Trains are.

And before you knew it, there was this, built at a Science Hackday:

A live tube mapuo

An Example: The UK's Electricity Use

Live data was released for all energy sources attached to the UK National Electricity Grid. Which enabled

UK Live Electricity Usage

Big Data

Open data is often mentioned in the same breath as big data.

And indeed, many applications of Open Data is on large data sets.

But, the Cinderella of open data is Small Data.

And a technology that can be used to take Cinderella to the ball is RDFa.


RDFa is a layer of attributes on top of XML markup that makes documents machine readable.

For instance, it allows you to indicate what certain parts of a document are. That "London" is a city; that a certain string is a date; and so on.

The data can be extracted as RDF (as the name suggests), and is as a result fully compatible with the meta.xml part of ODF.

It adds DRY to ODF (Don't Repeat Yourself). If a piece of text is changed in the document, it changes in the extracted RDF.


My homepage is marked up with RDFa.

If you extract the data from it, you can find data such as my telephone numbers and an image of me (and you can also actually see that this is my home page):

<> foaf:img
    [ foaf:name "Steven Pemberton"@en;
            foaf:phone <tel:+1-617-395-1252>,
            foaf:primaryTopicOf <> ] .

An Example of Government Use

The London Gazette is one of the official journals of record of the British government.

First published on 7 November 1665.

Published daily.

Data published in a reusable form.

London Gazette


As the name suggests, XForms was originally designed to markup Forms (in XHTML).

However, since version 1.1, it has been far more general than that, and now allows general interactive functionality.

It allows you to import XML, export XML, calculate values, and display values. It is like a spreadsheet, but more general, and with more general output possibilities.

And it still allows you to input form values, but with far more control.


One of the strengths of XForms is that it gathers all details of the data and the relationships between and restrictions on the data together in one place (the model). It is then possible to bind controls to particular pieces of data.


The main advantage of XForms is the ease with which you can create functionality. Our experience is that it is about an order of magnitude less work than with traditional programming methods.

Now is not the time to do a tutorial, so here are a few examples of the savings.


"I was working on a project with real-estate transactions that had many associated complex real-estate forms. Traditional methods required approximately 40 inserts into separate tables within a relational database. The use of XForms and eXist resulted in one line of XQuery code:

store(collection, file, data)

That was it. Simple. Elegant.

I was hooked. After spending over 20 years building applications with a variety of procedural languages I found my preferred architecture. I have seen the power of XForms and eXist and can't conceive of returning to my procedural programming ways."

XRX: Simple, Elegant, Disruptive (Dan McCreary, O'Reillynet, 2008)

Data point: Big machines

A certain company makes BIG machines (walk in): user interface is very demanding — needs 5 years, 30 people.

This became: 1 year, 10 people.

Do the sums. Assume one person costs 100k a year. Then this has gone from a 15M cost to a 1M cost. They have saved 14 million! (And 4 years)

Data point: applets

A company was producing many small XForms applications based on previous Javascript versions.

They reported that the code was less than 25% of the original size (so a tenth of the work).

"[The designers] are really happy to not have to use javascript by the way: they like that if things don't work, it's not their fault"

Data point: application (true story)

Manager: I want you to come back to me in 2 days with estimates of how long it will take your teams to make the application

[2 days later]

Javascript man: I'll need 30 days to work out how long it will take to program it

XForms man: I've already programmed it.


XForms is actually widely used.

Many UK and NL local government sites for instance.

The entire Dutch weather service.


These are technologies that are more widely applicable than just ODF (principally also the web).

ODF has many good features, but some of them are under-valued...