An answer to a question doesn't have to be just for the surrounding text. True 'document logic' allows that answer to be carried forward to multiple locations throughout the document.

   Pathagoras handles carry-forward and 'memory' via the use of !Groups! and !GroupNames! (actually these two terms are essentially identical and may be used interchangeably).

   !Groups! are used in several different areas of the program and have been discussed in other contexts before now. See, e.g., !Groups! and the Instant Database.

  A !Group! is any set of <<*Options/Optional*>> or {Options/Optional} blocks which carry a common !GroupName!. A !GroupName! is simply a word or short phrase inserted at the begin of the Options/Optional block between two exclamation marks.

   Here are two examples, using the same text as the samples provided on the previous page:

  <<*Optional*!minors!Are there Minor Children?*I have [NumMinCdn] children who are still under the age of 18 years.>>

. . . elsewhere in the document

<<*Optional*!minors!*I direct that any funds otherwise due to my minor children be placed in an account established under Uniform Gifts to Minors Act.>>

   If there are other Options or Optional blocks else where in the document with the same !GroupName!, they will be processed identically.

   Read more about !GroupNames! at this link.

  A reminder about the 'standard' document assembly sequence of events is appropriate at this stage. After a document is created via the Clause Selection Screen or inserted onto the screen via a DropDown List, Pathagoras will automatically search for each <<*Options/Optional*>> block in the document, starting from the top and working down to the bottom. Once the end user makes a choice regarding each block, Pathagoras processes the choice throughout the document. If !GroupNames! are used, the decision regarding that text block is applied against each member of the !Group! wherever located in the document. Then, Pathagoras returns to the top of the document and searches for another <<*Options/Optional*>> blocks. It processes it, returns to the top, etc.

   When there are no more <<*Options/Optional*>> blocks to process, Pathagoras 'stops', presenting to you what is hopefully a perfectly tailored initial draft of your document.

  Here is another (more self contained) example. (You can copy and paste any example provided in this Manual into a document. To  process the text, press <Alt-P>.)

Thank you for selecting us as your interior design team. We suggest that the color for the living room be <<*Options*!colors!*red/yellow/burnt orange>> and the contrasting trim color be <<*Options*!colors!*sea green/purple/royal blue>>.

So in the above example, if 'yellow' is selected for the answer to the first encountered <<*option*>>, then purple will be automatically selected when Pathagoras processes the second block. (The selection is positional. Yellow and Purple are in the second positions of their respective <<*Options*>> blocks.

   Using "<<*Options*>>" text blocks to pull external text into present document.

   The examples above contain the actual 'results' text as an integral part of the <<*Options*>> text block. But you are not limited to just internal text. Pathagoras lets you provide as one or more of your "options" references to external documents or Glossary terms. So instead of having to type in each piece of your target text, just type in its reference.

   Here is an example where text from a referenced document will be returned to the screen. (The assumption here, of course is that 'cntr105', 'cntr155', 'cntr197', etc., actually exist. The example is intended to convey that enclosing a reference to a term or document within "<<" and ">>" will cause Pathagoras to seek it out and insert it when called for.)

<<*Options*Are the facts A?/Are the facts B?/Are the facts C?/Are the facts D?/Are the facts E?* <<cntr105>> /<<cntr155>> /<<cntr197>> /<<cntr200>> /<<cntr205>>>>

  See Calls to Other Documents for more examples.

informationInstead of presenting 'static' choices as shown in the above examples, you can use [variables] and <<*Options*>> text blocks to cascade a series of progressively narrower choices of clauses for selection by the end user. See Cascading for more information and a set of real world examples which you can copy and modify

informationThe techniques discussed above allow the administrator to create questions and 'responses' which lead to the creation of a specific kind of document. Of course, this is a more complex application.  It will take some 'real' time to create. But once done, the 'logic' built into the program frees the end user from having to select actual clauses. Rather, the end user need only answer the questions posed. The administrator has 'pre-ordained' the actual text that is brought into the document based on the answer. The result is that uniformity in document production is assured.