Developing software applications using the Standard Generalized Markup Language (SGML)[GOLD] involves making many design and implementation choices. These choices are driven partly by end user requirements and partly by the availability and functionality of third party SGML parsers, authoring tools, search engines, browsers, and data converters. Capabilities of Hypertext Markup Language (HTML) and the World Wide Web should factor into these decisions as well if the application's users are geographically distributed or have diverse computing platforms. Since choices made early in the development effort often have implications throughout the life of the application, it is important for application developers to be well-informed about their users' requirements and also about available software tools and technologies.
The National Institute of Standards and Technology is building an SGML environment for creating, storing, accessing, and publishing documents related to international standards[PHIL94]. This environment is part of an integrated software tool suite for accelerating the development and deployment of international product data exchange standards known collectively as ``STEP'' (the Standard for the Exchange of Product Model Data)[STEP1]. When complete, our environment will include document type definitions (DTDs) developed for STEP, tools to convert existing standards into SGML using our DTDs, a STEP-tailored authoring environment, and a tool for converting SGML-tagged documents into PostScript conforming to STEP's documentation guidelines[WELL]. The environment also contains a repository of SGML and non-SGML STEP documents indexed for efficient retrieval and accessible through the World Wide Web. Some portions of the SGML environment are already in place and are being used by developers of STEP standards.
The life cycle of a STEP document begins with the document's
collaboratory development
and culminates in its being submitted to the International Organization
for Standardization (ISO) for publication and added to the indexed
repository for access by other standards developers. The SGML
environment for STEP supports this entire life cycle and, therefore,
makes a good case study for SGML application development. STEP (as
well as standards development in general) is a good place to apply
SGML for the following reasons:
The rest of this paper discusses the tradeoffs and choices inherent in building an SGML environment, using our SGML environment for STEP as an example implementation. We begin by describing some general SGML application development concepts. Then we discuss the various design and implementation alternatives available for each component in an SGML environment, the approach we choose for our SGML environment, and our rationale for choosing that approach.