Friday, December 11, 2009

The Days of Christmas - Number 2 - DDDC

That's right, today I want DDDC! Of course you know what that means. Oh you don't, OK, it means Dynamic DITA Delivery of Content.
Think about these, features of web content:
  • It's fragmentary. Meaning most web content is brief and about a single thing. The best web content is fragmentary. The more verbose it gets the worse it generally gets;
  • It's atomic. Again most web content is the smallest thing you can say about something;
  • It demands re-usability. Think about it, the News on your homepage is probably the same news that you want on your News page, along with other stuff. The company address is likely to be used in multiple places;
  • Content is presentation free. When we create web content we leave it to the stylesheet and the browser to sort out how it appears on the screen;
  • Web content is rapidly changing and version sensitive. New and fresh is the catch-cry where web content is concerned. But we also want to be able to manage versions and roll back when necessary;
  • Think of others...and tell me about them.
Now let's think about DITA content:
  • DITA topics are fragmentary and atomic. Just the same as web content really - a single idea, the simplest thing you can say about that idea;
  • DITA content is designed for re-usability. Each topic is designed to be plugged in with others and re-used;
  • DITA content is presentation free but semantically laden. It's ideal to apply a stylesheet to and to deliver according to the needs of the site. The elements allow for fine-grained presentation detail;
  • DITA content is easy to change and most shops use some sort of version management system.
So my argument is that DITA is ideal for the web. I know that you can use the Open Toolkit to process to HTML. That's not what I'm talking about. I'm talking about render at runtime. So here's what a DDDC solution will deliver:
  1. A simple set of tools that allow me to reference topics and maps and to plug them into a WYSIWIG style page designer;
  2. A very simple, I repeat very simple, but powerful template/stylesheet system. Preferably GUI driven;
  3. Connectors to a file system based DITA collection, to a version control system and to my favourite CCMS, XDocs;
  4. Lightweight, probably in Java, did I say lightweight?
The principles here are that we don't need an in-line editor, you've already got all you need with your existing DITA editor; we don't need version control - you have that with your existing tools; we don't need a database - you already have a repository with your current system, be it file system, version control system or your CCMS.
We want to offload everything that we can from the DDDC system. It has a set of simple jobs which are about placing existing content, applying stylesheets and serving the whole lot to the web. If you want to change a topic you do so in your DITA editor, and the result appears on the web. The address changes for your Hong Kong office, well you just change the DITA topic. If you don't like a new version then you use your DITA version control system to roll back and the rolled back version appears on the web.
Simplicity above all else is what's needed here. I'd far rather use a simple set of DITA authoring tools and a light weight DDDC engine than some of the big, ugly monolithic Web CMSs that are out there now. They just seem to get bigger, more complex and often buggier.
So tell me what you think. Anyone for an open source project? I'm serious about that. I'll do the BRS for a start.

No comments:

Post a Comment