# Understanding Architectural Forms

You use the Information Manager to build a bookcase, a collection of books in an information library, from a set of SGML documents. For some of these documents, such as style sheets, the SGML document type is defined by SGML DTDs distributed with the Information Manager. For others, such as the content of your books, you may use any document type definition (DTD).

Many SGML applications face the problem of understanding the semantics that should be attached to elements in any arbitrary DTD. To handle this, the Information Manager provides architectural forms.

An architectural form is a name given to a class containing elements that are to be processed uniformly by some application. Architectural forms define base classes. The specific SGML element defined in a specific DTD is then treated as a subclass. To implement architectural forms, you annotate your DTD with standard SGML attributes corresponding to Information Manager architectural forms. In most cases, the architectural forms are defined using the `FIXED` keyword, setting a specific attribute value for all instances of the element in all documents.

## Simple Example of an Architectural Form

You must modify your existing DTDs so the Information Manager can manage the information correctly. For example, the Information Manager uses “titles” to determine the content displayed in various fields of the Information Manager Reading windows. Of course, in any specific DTD, the choices of a Generic Identifier for a title object are limitless. It could be called `head`, `h1`, `title`, `ti`, and so on. To allow the application to identify these title objects, we apply the attribute `DTINFO.Title` to our DTD. So, for example, if our specific element is named `head`:

    <!ELEMENT   HEAD  - - (PCDATA) >
    <!ATTLIST   HEAD
                   DTINFO.Title  NAME #FIXED "#CONTENT">

As the application is processing a document, every instance of the element `HEAD` will have associated with it an attribute named `DTINFO.Title`. The application can recognize this and process the content of the element as it would any title.

Applying architectural forms does not affect the validity of your SGML instances. For more information on applying architectural forms to your DTD, see Modifying your Existing DTD.

## How Architectural Forms Fit in the Toolkit Model

The figure Toolkit Model illustrates how different pieces of information interact during the build process. The shaded area in the figure represents the part of the build involving architectural forms.

### Toolkit Model

For information on developing a bookcase document under the DTD provided by the Information Manager, see Creating a Bookcase Document. For details on creating a style sheet document which conforms to the `dtinfoStyle.dtd`, see Creating a Style Sheet.