Recall that the basic problem to be solved is, how to assemble subtrees of instances of one DTD (the content-oriented DTD), into instances of another DTD (the presentation-oriented DTD), where those subtrees are valid in both contexts. Two strategies for accomplishing this were explored. The one tier method was a high-end method relying on major off the shelf processing software. The two tier method was a low-end methodology available to small organizations with little or no SGML knowledge.
One Tier Transformation
The following diagram illustrates the one tier transformation approach used in one trial. The following series of papers presented at CALS Expo 96 provide different perspectives on the results of this field trial. Copies of these papers can be found in the Library at the DND CALS Web Site.
The one tier transformation process was based on Microstars Information Product Assembler (IPA). The IPA uses Omnimark as the base transformation engine. An IPA "Fetch" language was designed for the specific application along with application specific DTDs. These DTDs would include a fetch element for each subtree which was a target for re-assembly.
To use this "fetch" language, an author for a specific information product, builds an "information product plan" that is itself a valid SGML instance. The plan would contain textual material unique to the information product as well as the "fetch" instructions for an appropriate subtree or subtrees from the EBS. A fetch instruction is enabled by the author including a fetch element which has attributes which totally identify the specific sub-tree to be fetched. Textual "glue" around the subtrees could be included by the author for readability and navigational purposes.
The DTD for the information product plan was presentation-oriented. If a maintenance task was to be included within the overall structure, the DTD will allow the direct authoring of a maintenance task or the "fetching" of a pre-written maintenance task from the EBS. The "fetch-maint-task" element was replaced during processing by the IPA with the maint-task subtree it references. Hence the instance parses both before and after subtree replacement. Additional IPA features such as "Fetch and Translate" handle transformations such as the transformation from troubleshooting hierarchy into standard CALS table model.
One Tier Transformation
Two Tier Transformation
Single tier processing required access to powerful, reasonably expensive software products. This tended to make the process inaccessible to lower end suppliers of equipment. Yet the overall publishing architecture had to be scaleable to support not only very large SGML knowledgeable engineering shops, but also the very small sub-contractor shops with little or no SGML knowledge.
Significant effort went into development of a process that required nothing other than a simple text editor and freeware SGML parser and DND provided tools and applications to implement. The final result was a two tier process. The following diagram illustrates this two tier process mapped into the overall publishing architecture.
Two Tier Transformation
A Tier 1 DTD supports the functions of select, sort, and augment. "Select" chooses which subtrees would be selected from the assembly structure for inclusion in the Information Product. "Sort" specifies the order of these subtrees. "Augment" allows the author of the information product to author any text required by this specific information product that is not part of the assembly information. This includes text required for effective navigation and consumption of the information product . All information to be included in the final information product must be present in the Tier 1 instance since the Tier 1 to Tier 2 conversion only involves information transformation. There could be multiple Tier 2 transformations for a single Tier 1 instance. Each transformation could be for a different final output product.
DND CALS Tier 1 DTD
The author responsible for the final information product authors the Front and Rear material, and organizes the body of the document under topics within parts. "Topic" is recursive so it may be nested to any required depth. Examination of the model reveals that the "select" function is accomplished by the author by including a reference to a building block, "sort" is accomplished by ordering these references in the required order, and "augment" is accomplished by authoring text in the Tier 1 instance ("glue" text) or referencing some "augmentation" or "boilerplate" text available in the repository but not part of the assembly structure..
The Tier 1 instance represents an information product plan. To resolve the plan, all references must be replaced with the subtree being referenced. The current implementation uses entity references to accomplish this task. We will explore this topic later in the discussion.
The next step is transformation into a standard Tier 2 or presentation oriented DTD. Information in this form can be easily published on paper via standard FOSI or DSSSL processes.
The complexity of these transformations govern the tools to be used to carry out the process. These might involve PERL scripts, Omnimark Scripts, or custom programming. Some common transforms have been developed for the DND application and distributed with the DTD.
DND CALS Tier 2 DTD