SGML relies on the principles of descriptive markup - where the markup is used to indicate the nature, function or content of the data in a file, rather than saying how that data should be processed. SGML can be used to encode semantics rather than syntax. Using SGML, a heading will be identified as a "heading" rather than a piece of text that has to be printed or displayed in "20 point Times Bold".
SGML is rigorous. The markup schemes that you write using SGML declare a set of rules which unambiguously state how the data must be marked up in order to be correctly structured. SGML-aware software can ensure that any markup in a file confon-ns to the appropriate set of rules thereby guaranteeing that the data in that file will be structured in a known way. If the set of rules you are working with declares that text labelled as
a "sub-section" can only occur within text labelted as a "section", SGML-aware software will ensure that this rule is obeyed during text creation and editing.
SGML makes it possible to re-use and share information. People working at different sites, using different editors on different machines can produce SGML files that can be easily combined to produce a single document. Provided that you know the markup scheme which was used to create it, you can take any SGML file and process it however you see fit. Thus, several sites could down-load a copy of a document from an archive and each print if off in their local house style.
SGML encourages you to think of any file you create as a container of rigorously structured information - rather than as a word processing text file, or an on-line help screen, or a database file, or a hypertext document. Your concern will be to ensure that a file contains well-written content, structured according to the appropriate markup scheme, rather than worry about how that file will subsequently be processed.
With SGML, data files are processed in a consistent way. To impose a "house-style" on all your printed documents, it is only necessary to ensure that all your SGML files go through the same translation process to map their contents into, say, a file of LaTeX commands, or into a word processor's style sheet.
You only need to write one translation process. If your house-style changes, you simply need to alter the translation process and pass all your old files through the amended version to give them the new look. You do not need to edit the old files themselves, because they never contained any formatting instructions in the first place!
And remember, you can use exactly the same source files for your printed output as the source for your on-line (hypertext) documents or mapping to or from your text database.
Within academia, the Text Encoding Initiative (a major international project), recommends SGML for the coding and interchange of any electronic text intended for scholarly analysis. The American Chemical Society and American Mathematical Society will be using SGML for all their electronic publishing needs. CERN and the publishing wing of the Institute of Physics have also adopted SGML.
SGML can be created using any editor which can produce files which do not contain application-specific codes (i.e. plain ASCII or EBCDIC). Dedicated SGML software is availlable for virtually every platform or environment - with high-quality commercial software available
for all the major machine types and operating systems (PC, Mac, UNIX etc.)