There is a name after all for the DITAmap-based layout mechanism I’ve been testing: treemapping.
In the early 90’s, Ben Schneiderman, the well-known UI and visualization expert and contemporary of Edward Tufte, came up with the general algorithm for converting hierarchical lists into ordered boxes in a grid by traversing a level while creating horizontal structures, then recursing to create vertical structure at the next level, and so forth until all the nodes (leaves, topics, widgets) are placed as stylized boxes. The technique is a type of bin-packing algorithm, and of course has been highly adapted since then for visualizing many kinds of complex data (http://en.wikipedia.org/wiki/Treemapping).
So the application of the technique to a nested series of DITA maps turns out to be very natural, except that instead of force-fitting the content into a fixed-size square, we’d let the user resize the browser and scroll as needed. In some cases, a “chunk renderer” might add a slider control as way to make some presentations more compact.
This revelation is intriguing to me because it basically opens the door for new ways of visualizing DITA data, particularly for map specializations that represent complex relationships. For example, the new DITA 1.2 SubjectScheme capability should adapt readily to a graphical rendering of the relationships expressed in such a map. I’ll leave that exercise for others to ponder–I’m focused for now on how the algorithm generalizes to general Web page layouts–DITA maps as an IDL!
My first connection to this information came through this project description. The CSS used on lists by this programmer is basically the very foundation of the map-to-column layout used in WordPress layouts, and which I emulated my transforms:
Here is the link for the original monograph by Schneiderman on the technique. This image from the paper is nearly a perfect analog to the column-ordered layout in the DITAmap-as-IDL demo!
Now, what if we applied treemap rendering for a Table of Contents? Ah, this is one of those times when I’m reminded that “just because you can doesn’t mean you should!”