I’m just heading off to Thailand for a week: I am speaking at a seminar on Monday “Interoperable ICT Systems
Seminar” with speakers from NECTEC, CompTIA and Microsoft, with me as Dr Strangelove. James Clark has threatened to be there and ask hard questions: scary! He lives in Thailand has been promoting open source software there for several years.
Going over the
Open Office schemas to prepare for the seminar, the I’ve been struck with the similarity with early 90s SGML “big system” similarities: the HyTime era. Interesting to see old approaches reborn: the HTML generation of systems went a different way…small documents, no link integrity control, no reuse of links, no semantic labelling, indirection handled by servers not documents: MIME, HTTP, REST, the WWW was about how you could take lots of small dumb documents and build a big dumb eco-system, which turned out to be a fine and practical approach for many things.
I remember Dave Peterson suggesting that tables as we know them (HTML-style, CALS-style) were bad because they mixed presentation with content, for example: instead the data should be maintained in a separate semantical structure, and included by reference; so in SpreadsheetML, data and strings can be maintained separately.
Elliot Kimber has often argued that there are many “difficult” problems with handling large dynamic document sets that go away with a suitable, simple indirection method: hence his XIndirect, and indeed OASIS SGML/XML catalogs and even ISO DSDL’s Document Schema Renaming Language (DSRL) which comes through Martin Bryan; the relationship system in the Open Packaging Conventions seem similar.
It is an interesting thought, though: at what point of complexity/maintainability does it become a requirement to add extra levels of indirection? I can see that both extremes are appealing: the one that says “just make do with simplicity” and the other that says “build in moderate indirection because it is easier to have it there when you need it and impossible to retrofit.”