This section presents the basic principles of operation of the Thot system. The rest of the manual describes the functions provided to the user. Further details on the system itself and its operation can be found in [GrifEP86], [EPodd], [Quint92a] and [Roisin94].
In Thot, a document is represented by its logical structure, which refers to its organization in terms of elements such as titles, chapters, sections, paragraphs, notes, figures, etc. These elements constitute tree structures which account for inclusion and order between elements, as shown by the example of Figure 1. The text and other basic elements (symbols, graphics, pictures) constitute the terminal elements of these tree structures.
Figure 1 - the logical structure of a document
The logical structure is constrained by a structure schema which mainly specifies the types of usable elements and the relationships that can relate them. Each document type is defined by a structure schema and new document types can be defined using the S language (see section 24.1 and the document The Languages of Thot).
The logical structure of a document is built by the Thot editor, under the user's control. The editor ensures that each document being handled complies with the model of its structure schema. Thus, it only allows operations which lead to a logical structure consistent with the structure schema. It also uses the structure schema to guide the user or to generate automatically certain parts of the document structure.
By way of example, this document belongs to the Report type whose structure schema is given in Figure 2.
STRUCT Report = (ATTR First_page_number = Integer) BEGIN Header = BEGIN Title_head = Content Author_head = Content; ? Reference = Content; ? Status = Content; ? Date_of_update = Content; Title = Content; Authors = LIST OF (Author); Affiliations = LIST OF (Affiliation = Content); Abstract = LIST OF (Paragraph) ? Keywords = Content; END; Body = BEGIN Preamble = Seq._of_paragraphs; Sequence_of_sections; END; Back_matter = AGGREGATE Last_sections = LIST OF (Section) - (Sequence_of_sections); Bibliography = LIST OF (Biblio = RefBib); ? Appendices = LIST OF (Appendix); END; END; Sequence_of_sections = LIST [2..*] OF (Section); Section = BEGIN Section_title = Content; Seq._of_paragraphs; ? Sequence_of_sections; END; ...
Figure 2 - an extract from the Report structure schema
The structure schema shown in Figure 2 sets out that a Report document contains, in that order, a Header element constituted by a Title_head, a Author_head, a Reference, etc., followed by a Body and a Back_matter element (elements preceded by a question mark are optional: they are not automatically created by the editor). You can check that the tree presented in Figure 1 is consistent with this structure schema.
In the rest of the manual, most editing functions will be illustrated with examples of Report documents. Other document models are available with the editor (Slides, Bibliography, Sheet, File, Tree, Draw, etc.). These models are described in sections 12 to 20.