Sethworks Mooseum Annex Exhibit: EGS Standard - Bracketing Terms


BRACKETING TERMS

There are four types of bracket symbols used in EGS.  These are "{}" or curly brackets, "[]" or square brackets, "<>" or angle brackets, and "()" or parentheses.  Each of these bracketing symbols are used for different purposes.  Generally bracketed areas may not cross.  For example the following bracketing is ambiguous '{[}]' in any context and should not occur in EGS text.

{} brackets.
These are used for vector grouping or complex statement structures.  A vector is a collection of words or phrases that are used interchangeably as a part of the grammeical structure of the sentence.  It is a shorthand method of telescoping many statements together into one where the basic form of the statements are the same but the specific words are different.

An appearance of a vector where the terms are collected for the first time is the "defining instance" of that vector.  Each vector only needs to be defined once.  Vectors can be used to create specialized meanings and terms that can be reused in other statements in a group.  These restatements of the vector can be abbreviated by specifying only one term of a defined vector.  These additional appearances of the same vector are called "abbreviated instances" of the vector.

The defining instance of a vector:.
The curly brackets indicate the beginning and ending of the vector, and the "/" is used to separate the "terms" of the vector.  A space appears after each term seperator for visual clarity.


The abbreviated instance of a vector:.
In an abbreviated instance of a vector any of the terms in the defining instance of the vector may be used.  Where an abbreviated instance is used the form is as follows:
         - left curly bracket.
         - one forward slash.
         - the specific term of the vector [with no leading or
            following spaces].
         - one forward slash.
         - the right curly bracket.

Vector scope rules:
Vectors are to be defined in such a manner that there are no common terms in any vectors already in scope.  The scope of a vector begins at the point of the defining instance in an ITEM group and ends at the end of that group.  The scope of a given vector may be extended into another ITEM group by making an explicit reference to the statement containing the vector using the referencing indirection protocol defined above.  Where a reference is used the scope of the vector in the ITEM group where the vector is referenced begins at the point of reference and ends at the end of the ITEM group.  It is customary when making a scope extension of a vector with a reference to indicate that in the description of the reference.


Vector nesting:
Occasionally vectors are nested within one another to form "superset vectors."  A vector defined in this manner contains all of the terms of all of the included vectors.

Implicit vectors.
Implicit vectors are similar to curly vectors except all of the terms are single words and no additional instances of the vector are needed again.  These single words that are grouped together to form a vector by the use of the "/" term seperator but appear without the explicit appearance of the curly brackets.  Also the terms and term seperator have no internal spaces.  The terms of the vector and their seperators appear as one single line of characters.

Where an implicit vector appears within a curly bracketed vector it is separated from the parent vector be the use of parentices around the implicit vector.

<> brackets.
The use of angle brackets is to indicate words or phrases that are "potential" or "optional".  These are similar to an implicit vectors of zero or one terms. They indicate parts of sentences or phrases that could be removed from the original statement and still make sense.
() parentheses.
These characters are used for one of two reasons, within vectors to clarify logic structuring or as needed to correct prefix and suffix specifications of vectors.  The use of parentices within vectors has been explained above.

 Usually when the terms in the defining instance of a vector are defined they appear in the form most convenient within the statement where that vector was defined.  Most often the terms are defined as being singluar and in simplest form, with a minimum of prefixes or suffixes.

In an abbriviated instance of the vector the terms may not be in the correct "plurality" or "gender" for the current statement. The terms need to be corrected to fit within the new statement by adding the appropriate prefixes and suffixes.  Where it is necessary to use the terms in the vector as corrected the parentheses and the specific correction appear immediately before the vector for a prefix or immediately after the vector as a suffix.  Any prefix or suffix can appear as a parenthetical vector correction as long as the the vector modifier actually works with each of the terms in that vector. "Near fits" of the vector terms and the correction are allowed and tolarated where unavoidable.

Example where assuming the EGS vector of {make/ create} as an instance, of the suffix correction;
       "Mark {make/}(s) dinner".
       "Mark {/create}(ed)  chairs ".

[] brackets.
This form of bracketing is used for absolute references as defined above and is also used for "parenthetical comments". Where parentheses would be used in conventional text, brackets are used in EGS text.  (the reason for this difference is not arbitrary but results from the need of EGS scanning software to distinguish the various uses of the different bracketing.)


From here, you can:

Return to the EGS Introduction.

Return to the EGS Definition Beginning.

Return to the part on Grouping and Modularization

Return to the part on Statement Type Codes

Return to the part on Statement Specifications

Return to the part on Context Specifications

Return to the part on Referencing Statements

Return to the Top of this part (Bracketing Terms)

Move to the next part on Control of Special Characters

Return to the entrance of The Sethworks Mooseum Annex.

Return to The Sethworks Mooseum.

Send questions or comments to:
Jimbo9@aol.com (Web page editor),
or to:
F_landry@bbs.tka.com (Content Author),