The terms used in describing a Thinker document have other meanings in other environments. In order to clarify the following discussion of Thinker, the most common Thinker terms are defined here.


The statement that appears at the top of the window is sometimes referred to as the anchor statement of the window. The user navigates around in a document by changing the anchor statement. The anchor statement is changed with Jump commands. The scroll bars are used as shortcuts for various Jump commands.


A Branch is a statement with subordinate statements. When a statement is inserted into a document, it may be inserted at any level relative to the other statements in the document. A branch is a statement at any level that has statements below it. A branch may have a branch subordinate to it. A Statement with no subordinate statements is sometimes referred to as a Branch. Figure 2 illustrates the relationship between statements and branches

    Branches and Statements

Clipping Level

Clipping level refers to the number of document levels that are displayed in a window. A window with a clipping level of 2 will show only the two highest level statements. Clipping can be used to view a hierarchical document at different levels of detail. The document can be manipulated with clipping levels that exclude much of the document from the screen. All of the invisible text is moved with the visible text.

The clipping level can be chosen for a window that applies to the entire document. The Clip tools ("+" and "-") at the top of the screen or the Clip menu sets the clipping level that applies to the document as a whole for a given window. Clip tools ("+" or "-") in front of statements manipulate the clipping level applied to the single branch for all windows displaying the document.

External Link

Statements of the form [filename,offset,length] are known as external links. These links cause the display of text from the named file and can be used to treat non-Thinker files as hypertext documents. These links are expanded when the "Enable See-Thru" option is selected and appear with a "." in front of them when expanded. External links may have labels and the labels will appear to be attached to the extracted text. The extracted text may not be changed but words and phrases in the extracted text can serve as links which are resolved in the document containing the external link. There are two forms of external link.

    (label)[filename,start-byte,length] additional text

      When "Enable See-Thru" is selected the data from the file "filename" starting at byte "start-byte" for a length of "length" is displayed on the screen.

    (label)[filename,start-byte,length,search-string] additional text

      In this form the file is searched from "start-byte" until the string "search-string" is located in the file. The result is displayed for length "length"

    Here is an example of an external link. Select "Enable See-Thru" to see the effect. Note that the Link is to a Thinker document which is treated as a flat ASCII file by the External Link.


It is possible to edit the External Link either with the "Enable See-Thru" option off or with it on. With "Enable See-Thru" off the link is edited just like any text on the screen. With "Enable See-Thru" on the Edit menu item "Edit XLink" is used. When this is selected an XLink Edit dialog is brought up. This dialog is explained in the section that explains the Edit Xlink menu selection (in the Edit men). After the link is edited using the "Edit XLink" dialog the text of the External link is changed. If you disable the "Enable See-Thru" option after using "Edit XLink" you will see that new values have replaced the originals.

One use of External Links is in generating a Hypertext Dictionary or Hypertext Encyclopedia from a CD-ROM version. While it is best to write a program to scan the CD-ROM file and build a list of links, it may be done by hand.

    Start with a new Thinker document and add a statement of the form (aardvark)[CD-ROM:dictionary,0,100,aardvark]. Now select "Enable See-Thru" and wait for the first appearance of the word "aardvark" to be located in the file. Use the Edit Xlink to scan the CD-ROM file until you find the definition of "aardvark" and extend the length to display the entire definition (you may have to use multiple statements).

    Do the same thing for the statement of the form (mammal)[CD-ROM:dictionary,0,100,mammal]. Now when you double click on the word "mammal" in the definition of "aardvark" you will be able to jump to the definition of "mammal". When you have added a statement to the Thinker document for each word defined in the CD-ROM dictionary, you will have a hypertext dictionary.

    A suggested form for the hypertext dictionary might be:

     (a) A words
         [CD-ROM: ....]
     (b) B words
     ... etc
    This form makes it easier to include multiple statements under the definition of each word. Poor Person Software may distribute such a dictionary in the future at a very nominal cost.

    Phrases in the extracted text can be used a links by using the Jump Link Selected command which treats selected text as a link definition.

File Prefixes

When a large number of documents on multiple volumes comprise a Thinker information base it becomes difficult to maintain the text based document names in imbedded links. A file prefix is a mechanism to aid in this process. When a character string at the beginning of a link contains a ":" character, a substitution is possible to replace the prefix (before the ":") with a true volume name. In this fashion the volume that contains a document can be changed without having to change the document text. Simply changing the file prefix changes all of the links to designate the new volume.


A group is a selected contiguous sequence of branches at the same level.



Thinker supports Import and Export of HTML documents. The translations are explained in the sections on Import and Export. The intent was to use Thinker as a hypertext editor and translate the results into HTML not to provide an HTML editor. As a result some HTML things are not expressible in Thinker and are lost in translation. Any HTML tags that Thinker does not know about are preserved during translation so it is possible to use Thinker to prepare full HTML documents and to view generally produced documents.

To see how an HTML document is imported into Thinker and translated do the following:

    Create a New document.
    Select IMPORT
    Select the file "htmldoc.html"
    Select the HTML option on Import

It turns out that it is not possible to translate from HTML to Thinker and Back while maintaining the same structure. There are enough differences between the two representations of a document that just a little bit of information is lost going each way. The problem is with the interaction of lists and headers.

Thinker wants to use headers to define Hierarchy and HTML uses headers as a font selection technique.

In general a Thinker structure with Multiple levels of headers and paragraphs will result in a "flat" (no lists) HTML document. However, statements which are not "headers" which have subordinate statements generate lists of some sort.


When the anchor statement of a window is changed, a different portion of the document becomes visible in the window. This is referred to as a jump. Jumps can be made relative to a statement visible on the screen or relative to a statement named in a link.


Any textual statement in a Thinker document may have labels (Picture statements may not have labels.) A label is a name by which the statement is known and is like a key in an indexed file. Thinker recognizes a statement that begins with "(" as its first character as being a labeled statement. The labels are substrings of all of the non-punctuation characters (including blanks) between the initial "(" and a trailing ")" separated from each other by commas. "(These,are,labels)" is a label string with 3 labels. The case of letters in a label is not significant and only the first 19 non-punctuation characters of each label in the string are significant. There is an option to make some of the punctuation characters significant in labels.

Labels in a Thinker document need not be unique. Any request to jump to a label that is not unique will cause a dialog box to appear which displays the first characters of all statements with the non-unique label. The user points at and clicks on the desired statement to select the target of the jump.

Each statement has a default label which is its block number in the file. This block number does not change when the statement is moved but will change if the statement is deleted and then re-inserted. Links may specify the block number of the statement (which may not have an explicit label string) but some care should be used as the block number might refer to a different statement (or not statement at all) in the future. This form a label designation is particularly useful with static files.

A numeric label is specified as 0nnnB with the nnn between the "0" and the "b" specifying the block number (which is displayed with the "Show Date" option). An example of a numeric label appears below.

    This link is to this statement <Thinkerdoc,02762b>.

Numeric labels are particularly useful if one wants to republish a document in slightly variant form. Use See-thru links with numeric labels to extract a document into your new document (This process may some day be automated) and then with the "Make Local Copy" and "Enable See Thru" options selected edit the visible document. The unchanged portions will reflect the original document without taking up disk space and the edited sections reflect your changes.


Statements are arranged in a hierarchy. The most important statements are at level 1. Level 2 statements are subordinate to level 1 statements as in an outline. Thinker does not limit the number of levels in a document but the display on the screen will be less than satisfactory for more than about 30 levels.


A "link" is the appearance of a label in the text. A link is either a single word or a string of characters delimited by "<" and ">" (An option exists to delimit links with changes in text style.) A link consists of three parts.

    Part one is optional and names a Thinker document or file.

    Part two is separated from part one with a "," and names a branch.

    Part three is optional and is separated from part two with a ".". The string that follows the "." is a sequence of single character commands that continue the Jump relative to the target label ([U]p, [D]own, [S]uccessor, [P]redecessor, [T]ail of the Plex, [H]ead of the Plex, and [O]rigin.) The link <example,insert.dt> is an example of a link to a statement with the label "insert" in the file "example", then moves "Down" to the first subordinate statement, then moves to the "Tail" of the plex.

Links may by typed into dialog box edit strings as the address of statements when certain operations invite the user to designate a statement. Links typed into dialog box edit strings do not have the surrounding "<" and ">" characters. Links can be activated by putting the cursor over the link in the text and double clicking the mouse button or by using the Jump Link command.

    Link typed into dialog box without <> characters.

Links may designate labeled statements in the same or different Thinker document.

    Anatomy of a Link

A link may designate a PICT file. The PICT file will be displayed in a separate window properly proportioned but scaled so that the maximum width or height is 300 pixels. The window may be moved and sized to meet the user's needs. Below is a PICT file link.


Links that designate and ASCII file cause the first 32000 characters of the file to be displayed in the current window (replacing the Thinker document) or in a new window. If a label is present the ascii file is searched for (label) in the text. This makes flat ascii files structured like Thinker documents behave similarly to read only Thinker documents as long as the files are small.

Level Number links

    Links of the form "0n.n.n" are links to the statement numbered "n.n.n". After printing a document with level numbers, it is convenient to use links of this form to go directly to statements which require updating.

      <02.2> is a link to the statement "What is Hypertext" in this document.

    Level numbers do not show on the screen.

Link Macro

Some characters sequences that begin with '@' that appear as part of a link are expanded by a macro process before the link is evaluated. The current macro processor recognizes the following sequences to be part of the current date.

@MO - Month as in Jan,Feb,...
@D  - Day as on 01,03,22,...
@H  - Hour as in 01,12,23 (24 hour format)
This allows a single "see thru link" to pull current calendar items from a calendar file or branch. Below is an example of a "see thru link" that extracts daily calendar information.


NOTE: Early Beta releases of Thinker did not treat the '@' as significant characters in links and labels. Files created by these beta releases with the '@' character included will need to be edited.


Thinker uses a custom mail system utilizing shared files to communicate among multiple users for collaborative editing. This mail system does not interact yet with commercial mail packages. However, this mail system is integrated with hypertext documents and does allow mailing links. While reading a mail message, the reader can double click on any mailed link to see the referenced material. More discussion exists in the chapter on Groupware.


Thinker sometimes invites the user to designate a statement as the target of an operation such as "delete" or "move". The user may elect to mark the statement on the screen or type in a link that designates the statement. A statement is marked by moving the Pointing Cursor (a hand) such that the hand points to the statement and pressing the mouse button.


The first statement in a document is referred to as the origin statement. The origin statement may be moved or deleted in which case some other statement becomes the origin statement.


A complete group of statements. All of the subordinate statements in a branch constitute a plex. All the first level statements in a document constitute a plex. A plex is designated by pointing to any member of the plex.


See Through Link

Links can be used to extract statements from one document into another. The statement named in a "See Through Link" can be displayed on the screen in place of the link. This allows a Thinker document to be a composite of other Thinker documents. Details about the nature of "See Through Links" are found in the section of the manual describing the "Enable See-Thru" menu selection (under "Options").


A statement is a block of text or a picture. Textual statements are like paragraphs in many word processing programs. Thinker does "word wrap" within a single statement. Text selection (by sweeping the cursor over text with the mouse button held down) is limited to text within a single statement. Statements may contain up to 2000 characters of printable characters including all the optional characters on the keyboard. The <ESC> and carriage return characters are also allowed. The <ESC> key is used to indicate a print formatting command when printing the document. The carriage return can be used to improve the formatting of a statement.

View Sets

A View Set is comprised of 4 items:

    A global clipping level

    A global spacing

    A global number of lines displayed with each statement

    A collection of local clipping expansions

A View Set represents a selective view of a document based on the readers needs. The preparer of a View Set sets a clipping level appropriate to the intended reader and then selectively expands branches (by selecting the "+" clipping tools) in areas that are of particular importance to the reader. This View Set is then saved using the Save ViewSet menu selection under the Behave Menu. The reader uses Fetch ViewSet, also under the Behave Menu, to recover the appropriate View Set.

Saved View Sets are also useful for printing documents in views appropriate to selective readers as the printing and exporting processes respect the View Set specifications.

View Specifications

The appearance of the text in the window is controlled by three parameters that together are called the view specifications. These parameters are "Clipping level", "Spacing", "Number of Lines" and are each explained in the Options Menu section.


Only a small portion of most Thinker documents can be displayed on the screen at any time. Up to 8 windows may be open at any time. Each window may display a portion of a different document or different portions of the same document.

Previous Next