| Overview of XML Family of Standards | Table of contents | Indexes | TMS' History in Web Syndication | |||
| Brannon, Matthew Columbus Lucent Technologies USA ![]() | Matthew Lee Brannon |
| SGML Applications Architect |
| Lucent Technologies |
| 6200 E. Broad Street
Columbus
(Ohio)
USA
(43213)
Email: mattbrannon@lucent.com |
| Biography |
Dallas ![]() ISOGEN International ![]() James, Zarella USA ![]() | Zarella James |
| Senior Applications Engineer |
| ISOGEN International |
| 2200 N. Lamar St. Suite 230
Dallas
(Texas)
USA
(75202)
Email: zarella@isogen.com |
| Biography |
Overview |
| context sensitivity | As customers began to get more savvy in their requirements, they started requiring context sensitivity to what was being delivered as on-line help. They also began requesting that on-line help delivered to support cross-platform products look, feel, and operate similarly across the platforms. Although a large number of new "industry-standard" help designs were emerging, none seemed to fill all of the needs that were required by Lucent. In April of 1998, a team of information architects were assembled to investigate a standard in-house design for a system that could provide screen and/or object level context-sensitive help to a user, access to an overall library of on-line documents, as well as access to technical support information. To avoid terminology confusions with other help schemes, a term was coined to identify this overall system; - a"User Assistance System" . |
Reasons for Development and Implementation |
| help authoring systems | Prior to making the decision to create an in-house system, studies were performed to determine the benefits and drawbacks of several "off-the-shelf" help authoring and production systems. In addition, technological aspects of how to integrate existing help systems with graphical user interface designs being developed within Lucent were examined. In the end, the decision was made to create the custom User Assistance System for use within Lucent, using an SGML publishing platform that was also under development as the authoring and production system. These decisions were ultimately made in the interest of implementing a single system capable of providing the necessary features in the absence of a truly-flexible cross-platform industry standard. |
| Additional events and facts that supported the decision to create an in-house help design include the following: |
|
| It is important to note that if a truly open industry standard for cross-platform on-line help emerges, it is considered in Lucent's best interest to implement an off-the-shelf toolset that supports such a standard, so long as the signature look, and basic information architecture of the User Assistance system described in this document are allowed to be retained. |
Overview of User Assistance System Functionality |
| The Lucent User Assistance system has a number of technical and functional characteristics that help provide solutions for the issues previous described. |
Output file format and technical details |
|
User Assistance system invokation from a GUI |
| The architecture of the User Assistance system is optimized for use with GUIs that provide four access objects per screen, but may be used with GUIs that are limited to providing three, two, or even a single access object. In the "new-look" Lucent GUIs, the four triggers are buttons which are presented in a frame that is anchored in the lower-left-hand portion of the GUI window. Each button connects to a different component of the User Assistance system. These connections are implemented using Javascript functions invoked as the result of HREF declarations that surround each button. The resulting content files are displayed in a specially-constructed window that is separate from the GUI itself. |
| In legacy GUIs, or those built with proprietary technologies, the access objects may be pulldown menus, static help access objects within the window, or any other control that allows an external function to invoke a browser and load it with a predetermined URL. |
|
| The integration of the GUI with the User Assistance components relies on a set of referenced Javascript functions in an external file. These functions control the User Assistance window creation and teardown, as well as the construction of full paths to the specific HTML files which are the targets of each button's HREF action. |
| The "Button" frame may be populated using stand-alone HTML files, or the content may be dynamically generated by the parent GUI. Regardless of how it is manifested, the contents of the frame must possess a reference to the User Assistance system's controlling file; - a file containing Javascript functions specific to the User Assistance system called "help.js". |
| The HREFs to the target help files may be coded in a number of ways, including: |
|
Major User Assistance components |
| The system is divided into five main components. Two of the components are context sensitive, and are the items most typically associated with a traditional "on-line help" systems. |
Help (task) component | |||||||||||||||||||||||||||||||||||||||||||
context sensitive ![]() procedures | This component contains thetasks that can be performed from each page or object within the GUI. When selected, a list of tasks that can be performed from the GUI page or object is presented in the User Assistance window, with a "common functions" toolbar visible at the bottom of the window. |
|
| Selecting one of the tasks from the list will display a procedure that the user would follow to complete the task. |
|
| In the event that the User Assistance is being developed to support a GUI that does not have four access objects on each page, options are set at the point of production which add links to the bottom of Task List pages that connect to the other components of the User Assistance system. This allows continued support for the task-oriented paradigm, even in the worst-case scenario in which only one access object is available on a GUI page or object. In this situation, that object is labeled "Help", and provides the user access to the list of tasks as the primary choice, with access to the other components available at the bottom of the page. |
|
Description (descriptive) component | |||||||||||||||||||||||||||||||||||||||||||
|
Support (technical support) component | |||||||||||||||||||||||||||||||||||||||||||
| technical support | This component is not context sensitive. It contains information about how to obtain technical support while using the product or system that the GUI supports. The content of this component may be a Tech Support organization's home page, or may be another set of "documentation-like" pages which contain FAQs, lists of known problems, etc. When selected, a separate, custom window is invoked, and loaded with the technical support content. |
Interface Tips component | |||||||||||||||||||||||||||||||||||||||||||
| common GUI functions | This component is not context sensitive and can only be accessed from within an invoked User Assistance window, not from the GUI itself. It is called "Interface Tips", and is available as an icon within the Help and Description window toolbars. The resulting file contains details about common interface conventions and behaviors, such as common color coding conventions for the GUI, object behaviors, etc. |
Library component | |||||||||||||||||||||||||||||||||||||||||||
HTML, Hypertext Markup Language ![]() on-line documentation on-line library | This is a separate type of information product, as opposed to a legitimate HTML UA component. The information that underlies the "Library" button is a collection of on-line product documentation in HTML format. These documents contain a significant amount of information about other areas of the system besides those functions accessible by the GUI. When selected, a separate, custom window is invoked, in which the Library frameset is displayed. Users can then choose individual documents to read from within the library. |
| While considered part of the overall User Assistance system, it is important to note that the development and processing of the Library component (and the on-line documents within it) is a separate function from that in creating the other User Assistance components. The Library documents are a separate form of output supported by the Lucent publishing platform. The combination of the standard HTML UAcomponents , with the HTML Online documentationlibrary result in the overall HTML UAsystem . |
|
Toolbar components |
| When a user selects the "Help" or "Description" buttons, a User Assistance window is invoked in which the List of Tasks or Description content is displayed. The toolbar at the bottom of the window connects the user to the following items: |
|
Overview of SGML Publishing System |
Adobe Frame+SGML ![]() Arbortext Adept editor ![]() | Lucent's User Assistance system is created using an enterprise-wide SGML-based authoring system. It relies on source documents written in SGML which conform to Lucent's reference authoring DTD. |
HyTime ![]() Xlink ![]() | The DTD and all SGML markup authored within the system rely on SGML concrete syntax. No extensions such as HyTime or Xlink have been implemented. |
DTD, Document Type Definition ![]() DynaText PDF ![]() PostScript output formats | In addition to producing HTML User Assistance, source documents authored with the reference DTD are also capable of producing the following types of outputs in the formats listed: |
| The following illustration provides an overview of the publishing system |
|
Description of Source Information Content Models |
| The help system described here is authored using Lucent's reference authoring DTD. The DTD has some distinct characteristics that allow such task-oriented presentation models to be obtained. |
|
| It is the ability to explicitly identify source data as a procedure, through the use of the"Procedure Map" that allows the automated collection and segregation of tasks from descriptive information upon output. |
SGML Source Files and Context Associations |
SGML source file requirements |
| The User Assistance system can be created from one or more complete document instances, depending on the needs of the authoring community. In many cases, a stand-alone source instance is created to contain all of the content necessary for inclusion in the User Assistance deliverable. In other cases, the content is already embedded within source instances that have been used to create formal technical documents. In this latter case, several source documents may be required in order to prevent rewriting. |
| In both cases, only the content explicitly identified as pertaining to context-sensitive User Assistance components, through the use of help attributes and cross-references, is culled from the source documents and passed through to output. All other content is ignored. |
Attribute values and allowed positions |
attributes ![]() | The Lucent DTD possesses two unique attributes which are available to mark data as being targetted for inclusion in the context-sensitive User Assistance components upon output. In addition to using these markers to identify containers of information associated with User Assistance, any content that is pointed to from those marked containers by a cross-reference or link is also included upon output. |
| The User Assistance-related attributes are: |
|
Attribute processing rules |
| The User Assistance attributes have specific usage rules regarding where, when, and how often they can be used. In addition, there are a number of processing rules that dictate how and where elements tagged with these attributes will appear upon output. |
Task Components and the UA-Page-ID attribute | |||||||||||||||||||||||||||||||||||||||||||
attributes ![]() | All tasks that are accessed from the "Help" button are contained within <Procedure-Map> elements in the source instance. Any task that is intended to be output for User Assistance must possess a "UA-Page-ID" attribute. This attribute may have one or more values provided in a space-separated list. |
<proced-map ua-page-id = "401 402 1012"> |
| This ability to have multiple values on the UA-Page-ID attribute allows a single procedure to have context-sensitivity established with many different pages or objects within the GUI. These associations also allow the information to be presented as needed within the User Assistance system by referencing a single copy of the task file. |
| Output processing involves a search of all of the input document instances for <Procedure-Map> elements that have a <UA-Page-ID> attribute, which indicates that they are associated with one or more GUI pages or objects. Upon finding such <Procedure-Map> elements, their contents are converted to HTML and saved as individual files. All other Procedure-Map elements are discarded. Once the map conversions have been done, the titles of tasks that have identical UA-Page-ID values are grouped together in a single HTML file, and presented as list hyperlinks. This "Task List" page is what is presented to the user when they select the "Help" button for a given GUI screen or object. |
Description components and the UA-Page-ID attribute | |||||||||||||||||||||||||||||||||||||||||||
attributes ![]() | All content that is accessed from the "Description" button is contained within <Chapter>, <Appendix> or <*-Map> elements (except <Procedure-Map>) that possess a "UA-Page-ID" attribute. UA-Page-ID attributes on these elements may only have one value, as it is assumed that any description will only apply to one unique GUI page or object. |
<chapter ua-page-id = "401"> |
| Output processing involves a search of all of the input document instances for all elements except <Procedure-Map> that have a <UA-Page-ID> attribute. All other elements are ignored. Once the element collection has been done, the content of each element is then converted to HTML. The resulting files are what is presented to the user when they select the "Help" button. |
Interface Tips and Support components and the "UA-Type" attribute | |||||||||||||||||||||||||||||||||||||||||||
attributes ![]() | All content that is accessed from the "Interface Tips" icon or the "Support" button is contained within <Chapter> or <Appendix> elements that possess a "UA-Type" attribute. The value of the UA-Type attribute is allowed to be either "interfacetips" or "support". |
<chapter ua-type = "interfacetips"> |
| Output processing involves a search of all of the input document instances for any element with the <UA-Type> attribute. The first occurrence of an element with a "UA-Type" attribute set to one of the two values above results in that element's content being used. Only one occurrence of each type can be available within the source documents being processed. If multiple occurrences of the same "UA-Type" attribute value are encountered during output processing, the job is stopped and warnings are issued. |
| This results in one chapter being allowed to contain content for Interface Tips, and another being allowed to contain Technical Support information. |
Output Processing Options |
| output processing options production | In order to create a flexible production system, a number of user-controlled options are available at production time. These options allow users to suppress the creation of certain User Assistance components, if they are making updates to an already-built User Assistance system. It also allows users to adjust certain linking parameters to support non-standard GUIs or unique installation environments. The options that can be selected are: |
|
Output Processing System |
design ![]() processing system | A number of design decisions were implemented in the HTML User Assistance output processing system in order to make the overall components easy to maintain. Such modularity allowed more flexible invocation of each module based on the production parameters previously described, and also resulted in reusable code that could be applied to other types of outputs. |
|
| The most important case of reuse in this system involved the core SGML to HTML element mappings. These mappings were handled in a single OmniMark® routine that is reused in its entirety within the HTML documentation conversion programs. This allowed a single set of Cascading Style Sheet class names and definitions to be applied within the HTML User Assistance and HTML Documentation outputs, and prevented the OmniMark routine from being duplicated. |
Graphics Handling |
PNG ![]() TIF formats graphics ![]() | Because of the wide variety of output media and file formats that can be produced by Lucent's SGML publishing platform, a number of toolsets are employed to perform output production. Because graphic format limitations exist in nearly every toolset, a relatively small number of common graphic formats are supported by each tool. These facts limited the number of supported graphic formats to the two listed below: |
| Because the User Assistance files are HTML in nature, and displayed using a browser, all source graphics require conversion to a "browser-compatible" format during the User Assistance production process. |
| In addition, a unique thumbnailing mechanism was established for graphics that were larger than a predetermined threshold, in order to prevent illustrations from severely overrunning the limited boundaries of the sized User Assistance window. |
Standard inline presentation of graphics |
| The source graphics are converted while they are still part of the overall SGML source document instance as part of a "preprocess" routine. During this conversion, a utility is executed that reads the dimensions of each graphic from within the graphic iteself, and those values are written as "Rendered-Height" and "Rendered-Width" attributes of the <Graphic> element in the source instance that references the illustration. |
| When the User Assistance conversions occur, all <Graphic> elements are queried to determine their heights and widths. If both dimensions of the graphic are smaller than a predetermined threshold (currently 400 pixels), the illustration is placed inline in the appropriate HTML output file with "Height" and "Width" attribute values of the <IMG> element in the HTML file set to the same "Rendered-Height" and "Rendered-Width" attribute values that were present within the source file. |
Large thumbnail presentation of graphics |
| graphic dimensions height width | If either of the "Rendered-Height" or "Rendered-Width" dimensions are larger than the threshold, the illustration is still included inline, but a number of processing functions are invoked so that the inline illustration is a scaled-down version whose largest dimension is that of the threshold value, which is currently 400 pixels. This scaled version is called a "large thumbnail" because it is hyperlinked to invoke a larger version of the graphic. The additional processing to do this involves the following: |
|
|
|
Cross-Reference and Link Handling |
Link ![]() Xref cross-reference hyperlink ![]() hypertext ![]() | Cross-references and links are vital elements in determining the relevant information from a source document to output during HTML User Assistance production. The Lucent DTD allows two types of cross reference elements: the standard <Xref> element, as well as a <Link> element. |
Xref element authoring and processing rules |
| A very strict set of processing rules regarding cross-references with the <Xref> element have been established within the Lucent publishing system. Cross-references are only allowed to target the top of specific hierarchical container elements, and certain lower-level structures, such as <step> elements inside of <procedure-map>. All cross-references result in automatic return of strings that are contained within the target, in order to establish context for the <Xref>. In the simplest case, a cross-reference to a chapter, illustrated in the code listing below, will autoreturn the title of the chapter: |
<chapter id="123"><title>Title of Chapter 123 </title></chapter> . . . <para>For further info, see <xref linkend="123">.</para> Results in: |
For further info, see Title of Chapter 123. |
| Valid target elements for cross-referencing using <Xref> include: |
attributes ![]() | As stated earlier, all cross-references from a container that is identified with either a "UA-Page-ID" or "UA-Type" attribute will be followed, and the contents of the target container will be processed for inclusion in the User Assistance system. The two files will be connected with a hyperlink, in which the autoreturn string is used as the hyperlink text string in the referencing file. |
| Since the level of file granularity in the HTML User Assistance system is established at the Map level, if a cross-reference exists to a Block, Subblock, or lower-level object within a map that is not already tagged with a "UA-Page-ID" or "UA-Type" attribute, the entire map that contains the object which is the target of the cross-reference will be output to HTML, and the hyperlink will be targeted to an anchor placed at that low-level object. |
| This treatment is done to prevent individual HTML files from being created which contain a small amount of information, such as an individual step, or a single paragraph, for example). |
Link authoring and processing rules |
| In order to support the more flexible cross-reference presentation options that on-line media offers, an alternative to using <Xref> exists. An author may choose to use the <Link> element to create cross-references. In this case, the author is allowed to enter the text that they wish to use as the hypertext link string, and also allows authors to create hyperlinks to outside documents by referring to them by URL. |
Output Directory Structure and File Naming Conventions |
| directory names directory structure file names | The HTML files that are created during the processing run are output to a very specific directory structure. This structure allows the HTML User Assistance files to be easily combined with an HTML Documentation set, and subsequently integrated with a GUI. The directory structure is as follows: |
|
Future System Enhancements |
| enhancements | As with any complex system, enhancements and extensions are always planned. The list of items that are currently being developed to make the User Assistance system more functional are listed below: |
Production system enhancements |
Adobe Frame+SGML ![]() Arbortext Adept editor ![]() | Additional features are planned to be added to allow the production system to be even more flexible for other types of GUI integrations. These features include: |
|
Authoring system enhancements |
| Custom development to Arbortext and Frame+SGML authoring systems is planned to allow users to more easily manipulate the "UA-Page-ID" values across document instances. These improvements are needed because the attribute value is a single NMTOKEN that contains several values that are only recognized by their space delimiters. Additonal functionality includes: |
|
| Overview of XML Family of Standards | Table of contents | Indexes | TMS' History in Web Syndication | |||