SGML FOSI

SGML FOSI -- What is FOSI? (by Bob Agnew)

Newsgroups: comp.text.sgml
Path: msunews!uwm.edu!spool.mu.edu!howland.reston.ans.net!news.sprintlink.net!news.bluesky.net!news.mathworks.com!mvb.saic.com!ast.saic.com!news
From: agnew@sgml.saic.com (Bob Agnew)
Subject: Re: Link Process Definition vs. FOSI
Message-ID: <1995Apr11.180215.22821@ast.saic.com>
Sender: news@ast.saic.com
Organization: SAIC
X-Newsreader: Forte Free Agent v0.46
References: (none) <lgasser-1004951444190001@m251-66.bgsu.edu>
Date: Tue, 11 Apr 1995 18:02:36 GMT
Lines: 81

lgasser@bgnet.bgsu.edu (Leslie K. Gasser) wrote:

>I am still in the SGML learning process, and I have a question that I hope
>you will be able to answer.  Is there a difference (or differences)
>between an LPD and a FOSI?  If so, what?  If not, why do both exist?

<included>

I'll repost a little of an old article as I don't believe that I've
posted this yet this year. Make sure you view this with a fixed pitch
font.

<old-post>

The FOSI is an SGML tagged document. It stands for Formatting Output
Specification Instance and is an instance of the DTD called the
"outspec" which appears in appendix B of MIL-STD-28001. The relation
of an instance of a DTD, (e.g. an SGML tagged document) to its DTD is
similar to the relation between a FOSI and the outspec dtd.
This is illustrated in the following diagram:


                                            _______________
                                           |               |
                                           |  Optional     |
                                    _______|  Applications |==>?
                                   |       |               |
          __________________       |       |_______________|
         |                 |       |    _________________
         |  Tagged SGML    |       |   |                 |
         |    Document     |==========>|                 | Conforms?
         |                 |  |        |                 |==> Yes
         | ( DTD Instance) |  |        |     Parser      |    or
         |_________________|  |    |==>|                 |    no
                              |    |   |_________________|
                              |    |
                              |    |
                              |________
          ____________________     |   |
         |                    |    |   |
         |                    |    |   |
         |        DTD         |>===|   |
         |(Tag set definition |    |   |
         | and context rules )|    |   |
         |____________________|    |   |       |==>Formatted Document
                                   |   |    ___|___________
                   |============<==|   |==>|               |
                   |                       |  Formatting   |
                   |                       |    Engine     |
                   |                |=====>|               | 
          _________|________        |      |_______________|
         |      FOSI        |       |    _________________
         |  (Tagged SGML    |       |   |                 |
         |    Document)     |       |   |                 | Conforms?
         |                  |>=========>|                 |==> Yes
         |(Outspec Instance)|           |     Parser      |    or
         |__________________|       |==>|                 |    no
                                    |   |_________________|
                                    |
                                    |
                                    |
          ____________________      |
         |                    |     |
         |                    |     |
         |    Outspec DTD     |>====|
         |(Tag set definition |
         | and context rules )|
         |____________________|

Note that the tagged SGML document is also the input to the formatting
engine. The FOSI is written using Element tag GIs (Generic
Identifiers) from the DTD. The element GI is specified as the GI
attributein the EIC (Element In Context) of the FOSI. Also note that
all EICs in the FOSI must have a GI which is an element name defined
in the DTD against which the FOSI is written; otherwise, an EIC with a
GI which does not correspond to an element of the DTD is a
"PsuedoTag".