XML 2003 logo

Dynamic Reusability: The Multiple Personalities of an XML Technical Document

Abstract

Technical information publishing is all about putting the right information in the hands of users at the right time and without a lot of clutter. But the problem is that each user is different, and one oyster’s pearl is another oyster’s kidney stone. The metaphor applies to computer-based training (one man’s important lesson is another man’s boring repeat), maintenance and performance support systems (one woman’s critical step is another woman’s insulted intelligence), and many other cases where technical information may need to be not only customized but individualized to be useful.

Recent models for technical information delivery are dynamic, providing data at an appropriate user level for every topic in the content, and even blurring the line between performance support and training by enabling software to interject training content “just in time.” To support this model, core ideas of reuse come into play because screen composition on-the-fly requires reusable content to be packaged in different ways for different users and different situations. Dynamic content selection, then, can be viewed as an extension of the common definition of reuse.

In this paper, we discuss the idea of a content pool (a generalization, for example, of the DocBook “Information Pool”) where collections of useful information float around sunning themselves until they are needed in a particular context or presentation. To make the dynamic content selection technique work, we use a combination of hierarchically structured content and automated links. Using an XML markup scheme that we will discuss, our applications ask members of the content pool to “speak up” if they are relevant. And of course, being extensible by nature, they are happy to oblige.

The key to dynamic reuse is defining how information applies in different contexts. Our technique gives authors a method for defining what an element of content is all about, but doesn’t require them to define explicitly how to package it. This gets authors out of the assembly and formatting business, and back to creating content.

Our markup strategy has two parts: identifying Object Types and defining Roles. Authors are not required to build explicit links, only categorize the content they create. And yet the occurrences of an Object Type reveal the relationships inherent in the document. The application software looks at related Object Types and identifies the Roles where they appear, then automatically builds a network of links to help users traverse from one context to another.

The benefit of dynamic reuse is that applications can quickly take on multiple personalities by changing how relationships are revealed and how content is packaged based on those relationships. It’s simply a matter of replacing XSLT scripts on demand at runtime, which we enable through the use of reusable software components. Thus, an application can change its look, its organization, its navigation, and it’s content to accommodate different situations, preferences, or users.

Keywords


Table of Contents

1. The Theory
1.1. Publishing Technical Information
1.2. A Pool of Reusable Content
1.3. Marking up Object Types and Roles
2. The Application
2.1. Generalized Authoring
2.2. Examples of Object Types and Roles
2.3. User Profiles
2.4. Multiple Personalities Rendered
2.4.1. Personalized Content
2.4.2. Personalized Navigation
2.4.3. Personalized Appearance
2.5. Programming Techniques
3. The Summary
Acknowledgements
Bibliography
Glossary
Biography

1. The Theory

In this section we will discuss the theoretical basis for an application that supports dynamic content reuse in XML-based electronic technical documents.

1.1. Publishing Technical Information

For purposes of this paper, we classify technical information into two broad categories: training (knowledge transfer) and performance support (procedural diagnosis, troubleshooting, maintenance, or repair). To some degree, the content that must be delivered to users overlaps these categories; but because the goals differ in each context, so does the presentation.

In developing and delivering custom SGML and XML publishing solutions to industry and government over the years, we have observed the recurring tendency to ignore this overlap of content, and to manage training separately from performance support. This tendency is sometimes to the detriment of users, who do not see continuity from the classroom to the field. It is also inefficient in every aspect from content development to management to delivery. As technology gives rise to enterprise management of technical information, products like IETM , EPSS , and advanced user interfaces supporting diagnostics and maintenance are under pressure to show cost savings as well as benefits to accessibility of information. So we examine reusability of XML technical data to see how it can be tailored dynamically to provide a smooth, two-way transition between training and performance support.

A model that emerged years ago was to identify content as suitable for a particular, discrete level of user; say novice, intermediate, or expert. Then the software would have to determine what level of user it was dealing with, either by asking the user directly or looking at some data source to categorize them. The early implementations of this approach were to create “tracks” through the data so that only data appropriate to your level would be available to you. A more dynamic extension of this method is to provide only appropriate data at an appropriate level for every topic in the content, using the XML markup to determine what content objects to collect and how to present them.

1.2. A Pool of Reusable Content

The idea of a content pool has been “floating around” out there for years. The ISO/IEC standard Interchange Standard for Multimedia Interactive Documents (ISMID)[ISMID] defines content objects that can be collected for presentation at runtime, in response to an event. And before that, the familiar DocBook DTD defined an Information Pool with a similar purpose. [1] In each case, pool elements have IDs or names that can be used to retrieve them, but software has to be smart enough to pick them up in the right order and at the right time.

So there needs to be more to a content pool than just elements floating around bumping into each other. This is where our XML dynamic reuse application gets interesting, because by using a combination of direct, hierarchically structured content and creative linking techniques, we can invoke the magic of software to build a technical document by grouping topics that can change their content and their presentation on-the-fly.

An adaptive information prototype [ADAPTS] developed for the US Navy proved that delivery of XML technical information can be dynamically adjusted to a complex user model. The system provides data at an appropriate user level for every topic in the content, and blurs the line between performance support and training by enabling software to interject training content just when it is needed. To support this model, core ideas of reuse come into play because runtime screen composition requires reusable content to be packaged appropriately for each user and situation.

In developing the details of implementing this dynamic reusability model, we find that reuse occurs at multiple levels:

  • Between applications;

  • Between variants of a specific application (i.e., related applications that produce different content in a similar structure); and

  • Within an application, between training and performance. (Or, to put it in terms we will describe later, between the “personalities” of an application.)

1.3. Marking up Object Types and Roles

The key to reusability in the dynamic content selection application is defining how the same information applies in different situations. The idea is to give authors a method for defining what an element of content is all about so that automated processes can determine its applicability in a given situation. This approach is 180 degrees out from the traditional authoring process that requires authors to define explicitly the content that applies in each situation that they write about. By the traditional method, authors had to think of every situation that users might encounter. With the new method, content is applied automatically to any situation, even ones that the author didn’t know about. This enables authors to focus on the business of creating complete, accurate content and leaves the audience-driven compromises until presentation time.

One of the most difficult problems keeping us from making reusability a reality in electronic information systems is the handling of links. It is a requirement in most authoring environments that authors build explicit links to content elements that should be pulled into a topic at a particular placement. Yet when reusable content is moved to a new context, the link might need to point elsewhere, or links added or deleted. The alternative method we have developed enables the author to define rules for linking, and rely on the markup to determine how the rules are applied.

There are two parts to the markup strategy: identifying Object Types and defining Roles. Objects obviously can be defined throughout any document, but in technical maintenance documents, for example, they can usefully categorized into Object Types such as subsystems, equipment, or components that are mentioned throughout the document in many different contexts. For example, an Object Type for equipment could define the AN/PSC-5 radio set that supports DAMA SATCOM functions in a military communications suite. The technical document might contain a description of the AN/PSC-5, as well as a photo, a parts breakdown, a storage procedure, and a small training clip illustrating the radio frequency (RF) signal flow for voice and data use. Each of these data chunks plays a certain Role in describing the AN/PSC-5, because references to this equipment appear in these contexts.

To generalize the definition of Roles, we drew from the science of Information Mapping™. [Information Mapping] Based on research in cognitive science, human factors engineering, task analysis, display technology, and effective writing styles, the Information Mapping™ method provides structure for the effective representation of information. Its categorizations of information derive from research-based findings on how individuals process and understand information most efficiently.

With this strategy, reuse is supported because software can automatically look for Object Types and identify the Roles where they appear, then build a network of links to help users traverse from one context to another. Authors are not required to build explicit links, and yet the Object Type enables that content to be revealed. You can think of it as reusable linking, because the links go in all directions and bring content into relevance from places not predicted.

2. The Application

Authoring of technical content to support the dynamic reuse strategy requires some tradeoff decisions in the markup. Given the choice between an explicit and a generalized markup strategy, we have opted to describe a generalized approach that would support the widest possible range of applications.

2.1. Generalized Authoring

A generalized authoring capability, as with any product designed to serve a wide audience, comes with compromises. The generalized system enables use of a common DTD and runtime engine for a variety of applications, but requires some additional work to enable the automation we need for dynamic reuse. Our choice of the generalized approach hinges on two decisions. First, we wanted a single DTD to support multiple applications (see Figure 1); and second, the goal was to enable an author to easily identify and reuse pooled content at many levels. The authoring system enables authors to:

  • Import, create, modify, or clone reusable content elements;

  • Build multiple applications from a common set of pooled content (reuse between applications);

  • Build multiple, hierarchical navigation structures for a single application, each providing an alternate view into the application data set (reuse within an application);

  • Identify Object Types that occur throughout the content, and define the Roles of content with customizable attributes (to support dynamic content reuse); and

  • Automate linking within the document set.

Overview of the Generalized DTD

The generalized DTD identifies a pool of topics in contentPool that are referenced by nodeItem in the organization hierarchy.

Figure 1. Overview of the Generalized DTD

2.2. Examples of Object Types and Roles

Using an explicit markup strategy (a more straight-forward case in the XML), we would define an XML content element to represent each Object Type. However, because we have chosen a generalized strategy the Object Types are defined in metadata associated with each generalized element. Possible Roles for each type of content should be customizable, and are defined by attributes in the XML.

The core content elements of the generalized DTD might have these Role attributes for an EPSS application:

Content Description XML Element Role Attribute Values
Topic (default) topic Process, Structure, Concept, Principle, Fact
Topic (child of procedure) step Prep, Action, QA
Topic Sequence (default) topic_seq Knowledge, Test
Topic Sequence (procedure) step_seq Setup, Troubleshooting, Repair, Remove&Replace
Paragraph para Introduction, Description, Summary
Multimedia multimedia Photograph, Locator, Icon, Animation, ImageMap
Table table Layout, Enumeration, TestPoint, Interface, Connection
List randlist, seqlist MoreInfo, Parts, Materials, Tools
Alert alert Warning, Caution, Note

Table 1. Role attributes for an EPSS application

Appropriate keywords to identify Object Types for each instance of a content element are stored in metadata, because they depend on the specific subject matter of the technical document. So we can get a meaningful data set via an automated query by requesting a generalized content element (e.g., a topic) of a specific Object Type (e.g., keyword = “HF-SSB subsystem”) and Role (e.g., Role attribute = “Fact”). Or to put it in plain English, our software can ask for topic elements that provide Facts about the HF-SSB subsystem.

The ability to query for content of a specific Object Type and Role offers a way to identify sharable content objects for e-learning systems (e.g., Sharable Content Object Reference Model [SCORM] ), to define XSLT for display of the content, and to individualize the presentation based on experience, preferences, or skills of users.

2.3. User Profiles

Reuse, in a nutshell, is the ability to use the same source content to provide different types of products. The type of product you need depends on who you are and what you are doing. So we have defined seven possible products that suit different users in different situations.

  1. First time training

  2. Refresher training

  3. Quick Tour training

  4. Instructor’s lesson plan

  5. Student study guide

  6. Procedures

  7. References

Here is a description of potential users and the situations where they may use these products (see Figure 2).

These are some of the characteristics defining potential users that would benefit from a customized presentation of technical information in both a training and performance context.

Figure 2. User Profiles

2.4. Multiple Personalities Rendered

The personality of an application, which is dictated both by its user interface and its behavior (i.e., software functions), is usually tied closely to its audience by design. That might seem like stating the obvious—of course the application is designed for its users. Yet we often find that a single application is built for more than one audience while sporting a single user interface! The application we are considering here is a perfect example. We defined seven different user profiles, and now we are faced with providing an interface that is meaningful to each of them.

We can use a general categorization of the purposes for using the product—training or performance—to broad-brush the interface design. But to stop there would miss the point and the power of reusable content. We have the opportunity, using the markup strategy defining Object Types and Roles, to customize content and presentation at runtime.

So initially, we can we can break down the seven user profile types into two interfaces as follows:

Training Interface
  • [1] First time training

  • [2] Refresher training

  • [3] Quick tour

  • Self-arranged training content

  • [4] Customizable lesson plans

  • [5] Customizable study guides

Performance Support Interface
  • [6] Procedures (scenario builder)

  • [7] References

Table 2. Interfaces for User Profiles

Then, like the speakers in a high-fidelity music system, it all comes down the rendering. The speakers have to reproduce the original sound faithfully, but we also like to have some control to adjust it to our personal tastes. Likewise, the user interface has to reproduce the information content accurately, but our markup gives us the controls to personalize it. We can personalize:

  • The content, to individual backgrounds and learning styles;

  • The navigation, to hide and reveal details according to preferences; and

  • The appearance, to indicate modes of operation and provide the most intuitive controls for each mode.

2.4.1. Personalized Content

In technical documents, it’s all about the content. Whether the purpose of the system is teaching or performance aiding, clear instructions and accurate information are paramount. In a printed document, the organization and the level of content detail are compromises, aimed at the average or expected user. In an electronic document, we don’t have to make that concession.

For training data the content is focused on gaining knowledge, so we could display topics that have Role attributes of Process, Structure, Concept, Principle, or Fact. Then we could further refine the list of topics to those dealing with the Object Types deemed important for the individual (e.g., based on their experience, or need for remediation or skill development based on testing).

For performance support the content is procedural or reference information. We might customize it to a specific scenario, offering the user a set of instructions tailored to a situation.

2.4.2. Personalized Navigation

Navigation refers to the sequence and interactivity of the presentation. In a training context, we can show one topic at a time so that the student is forced to review prerequisites in the correct order. In performance support, users have more flexibility in browsing to an area of interest, coupled with a rigorous step-by-step presentation once they arrive at the desired procedure.

For an example, consider the typical hierarchical outline control containing a Table of Contents. We can use software control to either adjust this navigation interface automatically (e.g., by showing only nodes containing information pertaining to questions that were answered incorrectly in an online quiz), or give users the ability to adjust it manually (e.g., create a self-arranged content hierarchy).

2.4.3. Personalized Appearance

Icing on the cake is to change the overall visual appearance of the application to correspond to each interface mode. This personalization makes the mode readily identifiable, and can adjust the location, size, and appearance of interface widgets to give a different feel to the application. A good example of this is the use of application “skins” to give the application a unique look and feel for each personality.

2.5. Programming Techniques

With all this personalization, there are some tricks required of the runtime application tasked with playing back the rich content. Fortunately, there are some techniques that make even the software reusable (hey, once you have a theme, stick with it). By simply swapping out XSLT scripts we can go a long way to creating individual personalities. By isolating the rendering in its own module we gain flexibility in deployment; and a separate linking module handles the application of linking rules both to automate the creation of links and to respond to link events from the document.

Overview of the major software components developed to support dynamic reuse and application personalities.

Figure 3. Code Modules

3. The Summary

What we have here is a strategy for reuse at many levels. A generalized XML DTD is supplemented with keyword metadata and standard attribute values that enable meaningful filtering of content in each instance. Filtering gives us the ability to personalize the content presented to users, pulling reusable elements from a content pool based on judgment of their applicability. The generalized DTD is coupled with a flexible authoring environment that gives authors tools for categorizing and locating reusable content. The flexible authoring environment, in turn, requires an equally flexible runtime application. Ours are built using XSLT that runs in reusable, packaged components for navigation and content rendering in multiple display formats.

Reuse abuse? We don’t think so, and here is why.

The benefit of all this reuse is that applications that can take on multiple personalities to suit a wide audience. The oyster always has a pearl; the application can change its look, its organization, its navigation, and it’s content so all users get something close to what they need.

You need training? Load up the training XSLT and you’ve got a pearl.

You need performance support? Load up the tech manual XSLT and you’ve still got a pearl.

Want to walk users through a procedure one step at a time, acknowledging each warning as you go? Want to give experts free reign to randomly browse the content? Want to minimize the navigation controls and enforce sequential access? Nothing but pearls.

With dynamic reuse, the presentation viewed by a technical document user can indeed provide the right information at the right time. As long as we are careful not to go too far in dictating what users can and can not see in their technical information, the techniques presented here can assist in both providing more relevant information and in avoiding overload by staying out of way.

Acknowledgements

Mary Clifford (Antech Systems) provided definition of the user profiles and the interactive training approach.

Frank Cooney (Antech Systems) is lead developer of the software components used to render the XML content.

Bob Keeney (Smartronix, Inc.) is lead developer of the generalized authoring system.

Bibliography

[ISMID] ISO/IEC 13240:2001 Information technology -- Document description and processing languages -- Interchange Standard for Multimedia Interactive Documents (ISMID). Published by the Joint Technical Committee for Information Technology (JTC1) of the International Organization for Standardization (ISO) and the International Electrotechnical Commission (IEC), Subcommittee SC34.

[ADAPTS] Cooper, Veitch, Anderson, and Clifford (Antech Systems, Inc.): Adaptive Diagnostics and Personalized Technical Support (ADAPTS). Proceedings of the IEEE Aerospace Conference, Aspen, Colorado (1999).

[Information Mapping] Participant's Manual for Developing Procedures, Policies, and Documentation. An Information Mapping™ Seminar by Robert E. Horn.

[SCORM] Sharable Content Object Reference Model (SCORM). ( http://www.adlnet.org/index.cfm?fuseaction=scormabt )

Glossary

EPSS

Electronic Performance Support System

IETM

Interactive Electronic Technical Manual

ISMID

Interchange Standard for Multimedia Interactive Documents

Biography

David Cooper is a software developer, researcher, and consultant in commercial and defense publishing industries. He develops application architectures for technical information delivery, including Interactive Electronic Technical Manual (IETM) and Electronic Performance Support System (EPSS) specifications, authoring systems, and browsers. He is editor of ISO/IEC 13240:2001, Interchange Standard for Multimedia Interactive Documents (ISMID).



[1] Overview of the DocBook DTD, Section 2.5 DocBook Architecture; Description of module dbpool.mod. “This module contains the declarations related to the information pool of DocBook documents, such as paragraphs, command names, and index terms. Here is where most of the parameter entities for element classes (such as lists ) and mixtures (such as the component mixture ) are set up, as well as the entities for common attributes. It is stored in a separate module in order to ease the process of reusing the information pool with a completely different document hierarchy.”