Automating Content Aggregation and Document Assembly. How DITA Can Help Generate Documents Automatically

It’s a well known fact that DITA can significantly improve content reuse, single sourcing, consistency, multi-channel publsihing, and dramatically reduce translation costs.

In addition, online delivery platforms, like DITAWeb, SuiteShare, and Fluid Topics, make content written in DITA more attractive for content consumers (who probably even don’t suspect that DITA works under the hood) by providing rich and flexible capabilities for navigation, search, and personalization of information.

But there is another quite interesting area which is probably being less discussed so far. It’s an ability to automatically retrieve various pieces of content and assemble them into new contexts. Of course, the idea of aggregating and re-arranging content is not new. Databases provide powerful features for manipulating well-structured content which can be represented in a tabular form. However, when you work with a regular text, the possibilities are quite limited.

DITA brings the best of two worlds. One one hand, it allows you to keep writing a regular text flow (it’s true that DITA does enforce a certain structure, but still, it’s not as limited as database fields). On the other hand, thanks to the semantic markup, you can flexibly manage content virtually on any level of granularity.

Suppose a project manager who is writing a requirements specifications document. Right in the document, using DITA metadata, the project manager can specify metadata that describes management information about each requirement: estimate, who is going to implement it, when it’s supposed to be delivered, and whether the requirement has any dependencies on other requirements.

Once it’s done, a whole set of new documents can be automatically generated based on the metadata retrieved from the requirements. For example, it a cost estimate document can be generated with a list of requirement titles, estimate for each requirement, and automatically calculated total estimate. Similarly, a plan of deliverables can be automatically built with a list of requirements implemented in each deliverable, delivery dates, and automatically calculated estimate per deliverable. Moreover, different variations of the same document providing a different level of detail can be created depending on the target audience. For example, a cost estimate for the project manager should include the estimate for every single requirement while a proposal for the customer can include only the estimate for big requirements.

If a requirement is taken out of the scope, it would be enough just to re-run the automatic document generation, and all the documents will be created with the updated information.

It’s quite common to change priorities or the scope in the middle of the project. Since requirements have dependencies on other requirements, it’s important to track and control these dependencies. For example, a feature described in Requirement A is based on a feature defined in Requirement B and thus, can be implemented not sooner than Requirement B is done. If Requirement B is taken out of the scope or its implementation is moved to a later stage, the scheduling of Requirement A has to be updated accordingly. In this case, the project manager should be able to get a report that demonstrates whether any conflicts exist.

I think this side of DITA is yet to be explored by DITA adopters. An ability to automatically aggregate, integrate, and re-assemble content into new contexts has a lot of potential and might be interesting far beyond the technical communication industry.

It’s not just a theory. For our internal needs, to manage requirements for the DITAToo development and our custom projects, we’ve built a solution that does what I described above. The solution involves a customization (not too extensive) of the DITA OT and some XSL coding. At the upcoming DITA North America conference, which will be held on April 20-22 in Chicago, I’m going to present the case study that explains how exactly we’ve done this. If you want to see it in action, I’ll be happy to see you at the presentation and at our stand.

You can read more about the conference and see the agenda here:

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Post Navigation