Abstract:
The invention features computer-based methods and apparatuses to automate document generation. The methods include user interaction to identify a collection of available modifiable text segments and user interaction to identify customization data. The identified text segments are used to form the package of interrelated documents and the customization data can be used to complete the identified text segments. The customized package of interrelated documents is automatically assembling based on the identified collection and customization data. The method may also include identifying a collection of information element questions that will be used to request information element data from a user. Interacting with a user to identify associations being between the collection of information element questions and a collection of available modifiable text segments. Interacting with a user to identifying a collection of document structure questions that will be used to request document structure data from a user, and identifying associations between the collection of document structure questions and ones of the collection of available modifiable text segments. The invention also features a computer-based apparatus for generating documentation. The apparatus includes means for identifying a collection of available modifiable text segments. The identified text segments can be used to form a package of customized interrelated documents. The apparatus also includes means for identifying customization data needed to complete the modifiable text segments, and means for automatically assembling the customized package of interrelated documents based on the identified collection and customization data.

Description:
BACKGROUND INFORMATION 
     This invention relates to computer-based systems for document generation. 
     Computer software applications are commonly used for text editing and document production. One category of applications, represented by word processing and text editing software, assists a user with the input and editing of text-based documentation. Typically, word processing applications provide a blank entry form in which document text is entered and edited. Alternatively, word processing applications allow previously completed documents or document templates to be retrieved and re-edited to form new documents. 
     Word processing applications are commonly used to edit and produce documentation required in business transactions. Complex business deals, such as commercial financing and real estate transactions, can require hundreds of pages of documentation specifying rights and obligations of parties to the transaction. The expertise needed to determining the terms of such transactions and to correctly generate and edit the complex documentation accompanying such transactions can require a significant commitment of personnel, time, and cost. Consequently, an automated document production is desirable to reduce costs, delays, and personnel involvement in the document production process. 
     SUMMARY 
     The present invention includes a document generation system that can collect information describing a transaction and assist in the generation of transaction-specific documentation. The invention can be used to generate documentation that reflects terms of a negotiated transaction. For example, a loan agent can interact with a loan applicant to negotiate terms of a loan. Information describing the loan terms and the nature of the negotiated deal can be provided to the document generation system. The loan agent may also indicate which standard documents and which clauses within those documents are required for the transaction. A collection of documents may then be generated by the generation system. Further editing of the produced documentation may be performed using conventional word processing and text editing tools. 
     In general, in one aspect, the invention features a computer-based method of producing a customized package of interrelated documents. The method includes user interaction to identify a collection of available modifiable text segments and user interaction to identify customization data. The identified text segments are used to form the package of interrelated documents and the customization data can be used to complete the identified text segments. The customized package of interrelated documents is automatically assembling based on the identified collection and customization data. 
     Implementations of the invention may include one or more of the following features. A knowledge base can be used to automatically assemble the documents. The knowledge base can include data associating the modifiable text segments with document structure questions, and data interrelating document structure questions. Identifying the collection of available modifiable text segments can include presenting document structure questions in accordance with the knowledge base, receiving data from a user in response to the presented questions and including as members of the collection the text segments that are associated with the received data. The knowledge base may include data associating the available modifiable text segments with information element questions. Identifying customization data may include presenting information element questions in accordance with the knowledge base and receiving customization data from the user. 
     In general, in another aspect, the invention features a computer-based method of producing a customized package of interrelated documents. The method includes the following. Identifying a collection of information element questions that will be used to request information element data from a user. Interacting with a user to identify associations being between the collection of information element questions and a collection of available modifiable text segments. Interacting with a user to identifying a collection of document structure questions that will be used to request document structure data from a user, and identifying associations between the collection of document structure questions and ones of the collection of available modifiable text segments. 
     Implementations of the invention may include one or more of the following features. Data representing associations may be stored in a knowledge base. Modifications to associations may be identified and stored. Identifying a collection of information element questions can include receiving information element question data from the user. Modifiable text segments may be received from a user and stored as members of the collection of available modifiable text segments. 
     In general, in another aspect, the invention features a computer-based method of producing a customized interrelated collection of documents from a body of available document text segments. The method includes displaying selectable document structure elements. Each structure element is associated with information content of the collection of documents. Response data selecting document structure elements can be received. The method also includes displaying document information element requests and receiving information element data from a user. Information elements may be associated with document structure elements. The method also includes identifying a collection of document text segments by traversing a knowledge representation structure and assembling the text segments to produce a customized collection of interrelated document text segments by including the received information element data at predetermined locations in the collection of the document text segments. The knowledge representation structure associates the collection of document text segments with the selected document structure elements. Assembling the text segments is in response to the selected plurality of documents structure elements. 
     Implementations of the invention may include one or more of the following features. Selection of a first one of the document structure elements may cause the display of a second selectable document structure element. The second selectable document structure element may be displayed subordinate to the first document structure element. Displaying the second element may include displaying at an indented position relative to the first element. The document structure elements may include a first group of structure elements. Selection of a member of the first group may inhibits selection of remaining members of the group. Information element data may include a text string used to replace a text pattern stored in a document text segment. 
     Implementations may also include one or more of the following features. Document structure elements may be arranged in a sequential listing Traversing a knowledge representation structure may include processing structure elements according to their position in the sequential listing. Document structure elements may include parent structure elements and child structure elements that are logically subordinate to associated parent structure elements. When a parent structure elements is selected, display of its child structure elements may be enabled and when the parent structure elements is not selected, display of the child structure elements may be inhibited. 
     In general, in another aspect, the invention features a computer-based method of interrelating document text segments. The method includes providing a question editor interface to receive document structure questions and storing the received questions in database records. Additional, an interface to receive interrelationship data is provided and the received interrelationship data is stored in database records. The interrelationship data defines interrelationships among selected document structure questions and defines associations between selected document structure questions and selected document text segments. An interface can be provided to receive information element associations. Each information element association defines a data item to be received from a user and designates a document text segments associated with the data item to be received. The information element associations can be stored in database records. 
     Implementations of the invention may include one or more of the following features. Each document structure question may include a text string. Interrelationship data may be stored as structure records in a database. Each structure record may include pointer data to a question record. Selected ones of the structure records may also include pointer data to other structure records. Database records storing the received structure questions may be stored in a first database and database records storing the interrelationship data may be stored in a second database that is separate from the first database. 
     In general, in another aspect, the invention features a computer-based apparatus for generating documentation. The apparatus includes means for identifying a collection of available modifiable text segments. The identified text segments can be used to form a package of customized interrelated documents. The apparatus also includes means for identifying customization data needed to complete the modifiable text segments, and means for automatically assembling the customized package of interrelated documents based on the identified collection and customization data. 
     In general, in another aspect, the invention features a computer based apparatus for generating documentation. The apparatus includes means for identifying a collection of information element questions. The information element questions can be used to request information element data from a user. The apparatus also includes means for identifying associations between the collection of information element questions and a collection of available modifiable text segments and means for identifying a collection of document structure questions. The document structure questions are used to request document structure data from a user. Additionally, the apparatus has means for identifying associations between the collection of document structure questions and the collection of available modifiable text segments. 
     In general, in another aspect, the invention features a computer program residing on a computer-readable medium. The program includes instructions for causing a computer to interact with a user to identifying a collection of available modifiable text segments, and to interact with the user to identify customization data needed to complete the modifiable text segments. Additionally, the program includes instructions to automatically assemble the customized package of interrelated documents based on the identified collection and the customization data. 
     In general, in another aspect, the invention features a computer program residing on a computer-readable medium. The program includes instructions for causing a computer to interact with a user to identify a collection of information element questions. The information element questions can be used to request information element data from a user. Additionally the program can cause the computer to interact with a user to identify associations being between the collection of information element questions and a collection of available modifiable text segments. The program can also cause the computer to interact with a user to identify a collection of document structure questions that will be used to request document structure data from a user and interact with a user to identify associations between the collection of document structure questions and the collection of available modifiable text segments. The program may store associations in a database. 
     Implementations of the invention may include one or more of the following advantages. Output documentation may be altered by changing interrelationships between elements in a knowledge base and re-generating the output document. This allows new documentation to be produced from previously input data. Document generation security can be provided through the separation of data entry from data processing and document production. Control of document production through the use of document scripts and the centralized administration of those scripts can help to control and standardize terms specified in the produced documentation. Document scripts form an alterable knowledge base. Document scripts may be altered and applied to previously stored transaction data to produce updated transaction documentation or document variants. 
     Other advantages and features will become apparent from the following description and from the claims. 
    
    
     DESCRIPTION OF DRAWINGS 
     FIG. 1 illustrates a document generation system. 
     FIGS. 2-10 are screen displays for a document generation system. 
     FIGS. 11-12 are flowcharts depicting the generation of a document. 
     FIGS. 13-29 depict database tables and table fields that may be used in an implementation of a document generation system. 
    
    
     DETAILED DESCRIPTION 
     An automated document generation system can be used to produce complex documentation required for commercial and legal transactions. Referring to FIG. 1, a document generation system is illustrated. The document generation system  100  automates the production of complex customized documentation by assembling an output document  109  from selected text segments stored in a database  102 . The selected text segments forming the output document  109  are chosen based on a user&#39;s input  106  to a series of questions and are assembled in accordance with a stored knowledge base. 
     In the system  100 , document generation is automated through the use of a document script. A document script is a knowledge base component modeling an output document. Document scripts can includes elements defining a series of user input questions, the structure of the output document, and text to be included in the generated output document. The system  100  provides an administrative module  105  that a script developer can use to enter a new script in the system  100  or to edit an existing script. The document script specifies mandatory and optional document text segments, criteria for selecting optional text segments and information needed to complete the generation of the output document  109 . 
     To enter or edit a script, the script developer provides input data  104  to an administration module  105 . The administration module  105  includes tools to define and store script elements. Script elements include, among other things, document structure elements, information questions, and document text segments. Document structure elements organize and interrelate document text segments and are used to determine the text segments included in a generated output document  109 . As described below, each document structure element can be associated with a structure question, structure response data, and a document text segment. Document text segments may, in turn, be associated with one or more information questions. 
     At the deal input module  107 , structure questions are presented to a user and structure response data is received from the user in response to script processing. Structure questions query the user about specific characteristics of a deal or transaction. In response to a structure question, the user can provide structure response data  106  indicating whether the described characteristic is pertinent to the deal or transaction being contemplated. In a graphical user interface (GUI) implementation, the user may indicate the presence of a particular characteristic by pointing to and clicking on a check box to select or deselect the characteristic. Pointing to and selecting particular characteristics may be done using a computer selection device such as a “mouse”. Alternatively, selecting and deselecting may be performed using another input device, such as a keyboard. 
     Implementations may support hierarchical arrangements of structure questions. In a hierarchical arrangement, structure questions are arranged in parent-child relationships. To facilitate data input by a user, the deal input module  107  may inhibit the display of a child question if its parent question is not selected. Parent-child question hierarchies will be discussed in greater detail below. Structure questions may be interrelated in other ways. For example, structure questions may be organized in mutually exclusive groups. Mutually exclusive groups are organized such that only one group member may be selected at a given time. 
     Typically, each structure element will be associated with a document text segment. A document text segment defines text that is included in the generated documents  109  when its associated structure element has been selected by the user. A document text segment can, in turn, be associated with one or more information questions. An information question identifies information element data needed to complete the document text segment. For example, a document text segment may include text detailing obligations of a licensee. The document text segment may require the name of the licensee (an information element data item) to be inserted in the text segment during the generation of the output document  109 . The deal input module  107  can present information questions to a user and, in response, can receive the required information element data item for later insertion in the output document  109 . Information element data may be common to more than one document text segment. That is, multiple text segments in the text segment database  102  may require the same information element data to be inserted in the text segment during output document  109  generation. To simplify user input, the deal input module  107  can be configured to generate only a single request for such an information element. Alternatively, the document script may indicate that the information element data should remain distinct for each text segment and that a separate instance of the information question should be presented to the user for each separate document text segment requiring the information element. 
     The deal input module  107  may allow a user to respond to a subset of information questions. This is useful where, for example, the user does not know how to respond to each question in a list of information questions presented. The system  100  can track the list of information questions that have not been responded to and thereby determine a list of missing information element data items. Implementations may also support default response values for particular structure questions or information elements. The document generation module  108  can process script information and the full or partial data to produce an output document  109 . If the set of information question responses is incomplete, the document generator  108  can produce a list of information element data items  110  that are missing or that are in their default state. The missing data element list  110  can help identify additional document  109  editing that may be required or additional input data  106  that is needed. 
     The document generation system  100  may be implemented in software on a computer supporting a graphical user interface (GUI). For example, a personal computer supporting the Microsoft Windows NT 4.0® or Microsoft Windows 95® operating system may be used. FIGS. 2-5 illustrate data input and display screens provided in an exemplary Windows 95 implementation of the administration module  105 . FIGS. 6-9 illustrate data input and display screens provided in an exemplary Windows 95 implementation of the deal input module  107 . 
     Referring to FIG. 2, the administration module  105  includes a structure question editor tool  200 . A script developer can use the structure question editor tool  200  to compose document structure questions. Each document structure question includes structure question text  203 . The structure question text  203  states a particular condition that may or may not be relevant to a particular deal. A structure question may also have an associated unique identifier  201 , title  202 , and instance indicator  204 . The identifier  201  and/or title  202  may be used by other script elements to refer to the particular script question or may be displayed to a user or script developer as a short-hand representation of the structure question  203 . The instance identifier  204  indicates whether multiple instances (that is, multiple repetitions) of the question may be presented to a user. Multiple instances of a structure question may be presented to the user when a particular document text segment is to be repeated at multiple locations in an output document. For example, an output documents  109  may have a variable number of signatories. A separate instance of a structure question may be used to obtain structure information for each of the signatories. Each instance may, in turn, be a hierarchically arranged parent question having its own child questions. 
     Referring to FIG. 3, the administration module  105  includes a structure builder tool  300  to create and organize document structure elements. Document structure elements associate the structure questions created by the structure question editor  200  (FIG. 2) with document text segments. Document text segments are defined using an information builder tool, discussed below. The structure builder tool  300  displays available structure questions in the “Structure Questions” window  340 , available document text segments in the “Documents” window  350 , and document structure elements in the “Structure Questions and Related Documents” window  310 . The windows  310 ,  340 , and  350  can display the structure elements, structure questions, and document text segments using a title or identifier number associated with the displayed items. 
     To create a new structure element, the script developer selects a structure question from those displayed in the structure question window  340  and may also select a document text segment from those displayed in the document window  350 . The script developer then indicates that the selected question and optionally selected text segment are to form a new structure element by clicking on the left arrow button  363 . After clicking on the arrow button  363 , a new structure element will appear in the “Structure Questions and Related Documents” window  310 . The script developer may subsequently alter the sequential order of the structure elements using the order decrement button  361  or order increment buttons  362 . 
     The structure builder tool  300  can be used to define a hierarchical organization of structure elements. A hierarchical organization of structure elements can be used to denote particular structure elements (known as child elements) that depend from another element (known as a parent element) and thereby form parent—child relationships. Parent—child relationships can be used to simplify input at the user module  107  where, for example, deal characteristics expressed by child structure elements are only relevant if a particular parent element is selected. 
     A script developer can define parent-child structure element relationships by selecting particular structure elements in the window  310  and promoting or demoting the selected elements with respect to the remaining elements in the window  310 . Promoting or demoting a structure element alters the display of that element in the window  310 . In particular, each demotion of a structure element increases the indentation at which the structure element is presented. For example, in the display  310 , structure element  313  is indented relative to structure element  312 . This display indicates that structure element  313  is demoted relative to structure element  312  and is a child element of parent element  312 . Structure element  313  may, in turn, be a parent element relative to other structure elements. For example, structure element  313  is a parent element relative to the indented group of structure elements  315 . 
     Referring to FIGS. 3 and 4, document segment displayed in the “Documents” window  350  can be created and edited using an information builder tool  400 . The information builder tool  400  can associate document text segments residing in a text segment database  101  (FIG. 1) with information questions. The information builder tool  400  includes a “Documents and Related Information Questions” window  410  listing document text segments in the database  101  and their associated information questions, and a window  420  listing information questions that can be associated with a document text segment. Document text segments may be created and stored in the database  101  using, for example, word processing software such as the Microsoft Word® application. Information questions can be defined by the script developer using an information question editor, as discussed below. 
     The window  410  displays information questions in an indented list format beneath their associated document text segment. For example, the group of information questions  415  are associated with a document indicated by the document title  413 . Information questions can be associated with a document text segment by selecting an information question displayed in the window  420 , selecting a document text segment displayed in the window  410 , and clicking a button  443  to associate the text segment with the information question. The tool  400  also allows the sequence of information questions displayed in the window  410  to be altered. The position of an information question within the displayed sequence of questions can be altered by selecting the question in the window  410  and then selecting the order decrement button  441  or order increment button  442 . 
     Additional document text sections may be listed in the window  410  by selecting the “add document” button  445  and choosing a document text segment from the database  101  (FIG.  1 ). The add document button  445  may invoke a file or database browser provided by the computer operating system allowing a document text segment file to be selected. Additional information questions may be added to the information question window  520  by defining the new question using an information question editor tool. 
     Referring to FIG. 5, the administration module provides an information question editor tool  500  to define and edit information questions. The tool  500  allows the script developer to specify a question title  502 , question text  503 , and various question response parameters  504 - 509 . The question title  502  may be displayed to a user or script developer as a short-hand representation of the information question. The question text  503  entered by the script developer is used to request the input of an information data element from a user at the input module  107 . Additionally, the script developer can specify parameters regulating the response data that will be accepted by a user in response to an information question. Regulating response data may be performed by associating a data type  504  with the question  503 . For example, the data type  504  may indicate that the input module  107  should receive currency data, numeric data within a specified range, a text string, or a multiple choice answer. Other data types may also be implemented. 
     After a script has been developed, it is stored in the script database  103  for access by the deal input module  107 . The deal input module  107  presents structure and information questions to a user and receives user data  106  in response. The received user data  106  is stored by the input module  107  in the deal data database  102 . FIGS. 6-9 show deal input module  107  display screens illustrating various stages of script processing and user input. 
     Referring to FIG. 6, script processing may begin with a request for deal definition information. A deal definition tool  600  is used to request and receive various data items that uniquely describe the particular deal or transaction. For example, a unique deal identifier (Deal ID)  601 , deal file name  602 , or deal description  603  may be received by the tool  600 . The deal file name  602  may also be used to indicate where a generated output file  109  (FIG. 1) is to be stored. 
     The input module  107  may subsequently process document structure elements, present structure questions to the user, and receive structure response data. Referring to FIG. 7, the input module  107  provides a deal structure tool  700  to present structure question text and receive structure response data. In FIG. 7, structure questions  701 - 712  are presented to the left of associated structure response data items. Each structure response data item is represented by a checked or unchecked box  721 - 732 . Each checked box  722 - 724 ,  726 - 728 , and  730 - 732  indicates that the condition stated by its corresponding structure question  702 - 704 ,  7 - 6 - 708 , and  710 - 712  is pertinent to the deal being contemplated by the user. Structure questions may be arranged in parent-child relationships. In response to the selection of a parent question, child questions may be displayed. For example, the selection of parent question  706  results in display of child questions  707 - 711 . Prior to the selection of parent question  706  the display of child questions  707 - 711  may be inhibited to simplify the displayed user interface (not shown). Inhibiting the presentation of particular questions can be used to limit the presentation of irrelevant or misleading information to the user. Following the selection of parent question  706 , the display of its child questions may become relevant or necessary. The display of questions  707 - 711  may then be enabled such that the questions are displayed following parent question  706  as seen in FIG.  7 . 
     After the user has selected a set of structure questions relevant to a particular deal or transaction, the deal input module  107  can determine a set of information questions associated with the selected structure questions. Referring to FIG. 8, the input module  107  provides a deal information tool  800  to present information questions to a user and to receive information element data from the user. The tool  800  displays information questions  801 - 810  to the left of responses to those questions  811 - 820 . The displayed response values  811 - 820  may be default response values provided by the document script. For example, referring back to FIG. 5, a default response  507  entered in the information question editor  500  by the script developer can appear as a default response at the deal information tool  800 . Alternatively, the user can edit the response values  811 - 820  using a response value selection and editing function. 
     After the user has entered deal data at the input module  105 , the deal data is stored in the deal database  102  for processing by the document generation module  108 . The document generation module  108  accesses the document text segment  101 , deal data  102 , and script  103  databases to generate an output document  109 . To generate the document  109 , the module  108  appends text segments together and inserts relevant information elements in the appended text segment. 
     Referring to FIG. 11, the generation module  108  (FIG. 1) may assemble the output document by retrieving the first structure element in the document script (step  1101 ). Structure response data is then retrieved to determine if the structure element was selected by the user (step  1102 ). If the structure was not selected, further processing of that structure and its hierarchically related descendents will be skipped (step  1103 ). The generation module will then process the next remaining structure element (step  1104 ). If, on the other hand, the structure response data indicates that the structure element was selected (step  1102 ), the generation module will identify the text segment associated with that element and will identify information element data associated with the text segment (step  1105 ). 
     An identified text segment is appended to the output document  109  if it has not been previously included in the output document (steps  1106  and  1108 ). However, if multiple instances of the text segment are permitted, it will be appended again (steps  1106 - 1108 ). The document generation module  108  may continue processing document structure elements until each relevant text segment has been appended to the output document  109 . After the various text segments are appended to the output document, the generator module will process the information question response data identified in step  1105  (step  1109 ). Processing of information question response data is further illustrated in FIG.  12 . 
     Referring to FIG. 12, to process information element data, the document generator  108  retrieves the information element data items and inserts them at appropriate points in the output document. The information element data values may be retrieved from the deal data database  102  (step  1201 ). For each information element, the document generator  108  determines whether the element value is a default value (step  1202 ). If so, the information element may be listed in a needed information document  110  (step  1203 ). The default or user-entered value of each information element data item may then be inserted at appropriate points in the output document (step  1204 ). Insertion of the values may be performed using, for example, “Find and Replace” operations in the Microsoft Word® word processing software. Such a “Find and Replace” operation may be controlled using Microsoft Object Linking and Embedding (OLE) procedure calls and may use a matching pattern stored in the document text segment to identify the insertion position of the information element data. Once the information element insertion is complete, a final output document  109  and list of needed information elements can be stored in a database or computer file system (steps  1206  and  1207 ). 
     The administration module  105  and document generation module  108  may be used to produce an altered set of documents from data previously entered at the input module  107 . This may be done by altering the interrelationships between document script elements using the administration module  105  and re-generating an output document  109 . The re-generated output document  109  may be based on data previously input at the input module  107  and stored in the deal database  102 . For example, if the text of a particular document text segments is erroneous, that text segment may be edited and the output document  109  re-generated. Similarly, if an alternative arrangement of text segments in the output document  109  is desired, the administration module  105  may be used to reorganize document structure elements. A new output document  109  may then be generated based on data previously stored in the database  102  and the new script elements. 
     The document generation system  100  may be implemented on a personal computer executing the Microsoft Windows NT or Windows 95 operating system. Portions of the invention may be implemented using commercially available software components. For example, the administrative and input modules  105  and  107  can include a Microsoft Access® database to generate and access document scripts and to store deal data. The document generation module  108  can include Microsoft Access and Microsoft Word® software to generate the output documents  109  and  110 . The Access and Word software can interoperate using object linking and embedding (OLE) procedure calls. The OLE procedure calls can be controlled using a program developed in the Microsoft Visual Basic language. The visual basic program can be used to instruct the Microsoft Access database application to issue OLE procedure calls to the Microsoft Word application thereby controlling the assembly of document text sections by the Word application. Additionally, “Find and Replace” functionality in the Word application can be used to insert information element data at appropriate points in the assembly of document text sections. 
     The document script may include multiple relational database tables. For example, in an implementation using the Microsoft Access database to store document scripts, the tables shown in FIGS. 13-29 may be used to implement the system  100 . FIGS. 13-16 illustrate field structures of tables entitled “Structure”, “Structure_Question”, “Structure_Group”, and “Response.” The “Structure”, “Structure_Question”, “Structure_Group”, and “Response” tables control the presentation of structure questions to a user and store the user responses. In particular, the Structure table defines a hierarchical arrangement of structure questions and document text sections. Each structure question is stored as a text string in the “Structure_Question” table. Responses to structure questions are stored as records in the Response table. Additionally, each Structure table record can be associated with a stored document text segment through a pointer to the “Documents” table (described below). 
     Responses stored in the “Response” table determine document segments included in a generated output document and determine information questions presented to the user. Referring to FIGS. 17-21, the tables “Document”, “Question”, “Answer”, “Doc_to_question” and “LinkQ” identify document segments, store information questions, relate information questions to structure questions, and store user responses to information questions. In particular, each record in the “Document” table identifies a file including storing a document text segment. Each record in the “Question” table stores an information question that may be presented to a user. Document table and Question table records are interrelated through pointers to and from the Doc_to_question table. Answers to information questions are stored in the “LinkQ” table. The Doc_to_question table controls the presentation of the information questions associated with a given text segment. 
     Data in the tables of FIGS. 13-21 may also be interrelated using the “DealKey” table in FIG.  22 . The DealKey table stores data and notations identifying a particular deal being input by a user at the input module  107 . In particular, DealKey table records store identifier values that uniquely identify separate deals stored in the deal data database  102 . 
     Referring to FIGS. 23-29, a relational database implementation may include additional tables to allow importing and exporting of data, to aid in maintaining the system  100 . 
     Referring back to FIG. 1, in a security-enhanced implementation of the system  100 , the administration module  105 , deal input module  107 , and document generation module  108  may have different access rights to the databases  101 ,  102 , and  103 . For example, the administration module  105  and the document generation module  108  may be able to access each database  101 - 103  while the deal module  107  may have restricted access to the document text segment database  107 . This may be used where, for example, security and privacy concerns require limited access to document text segments by the user of the deal input module  107 . 
     The system  100  may include additional elements to transfer data between databases  101 - 103  and modules  105 ,  107 ,  108 . For example, data received from a user by the input module  107  may be sent to the administration module  105 , the document generation module  108 , or a database server (not shown) by electronic mail (e-mail) prior to storage in the database  102 . Alternatively, in an integrated implementation, the administration module  105 , deal module  107 , document generation module  108  and databases  101 - 103  may be implemented as an integrated software application executable on a single personal computer. Additional implementations choices may include the use of non-relational databases. 
     The invention may be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. Apparatus of the invention may be implemented in a computer program product tangibly embodied in a machine-readable storage device for execution by a programmable processor; and method steps of the invention may be performed by a programmable processor executing a program of instructions to perform functions of the invention by operating on input data and generating output. The invention may advantageously be implemented in one or more computer programs that are executable on a programmable system including at least one programmable processor coupled to receive data and instructions from, and to transmit data and instructions to, a data storage system, at least one input device, and at least one output device. Each computer program may be implemented in a high-level procedural or object-oriented programming language, or in assembly or machine language if desired; and in any case, the language may be a compiled or interpreted language. Suitable processors include, by way of example, both general and special purpose microprocessors. Generally, a processor will receive instructions and data from a read-only memory and/or a random access memory. Storage devices suitable for tangibly embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, such as EPROM, EEPROM, and flash memory devices; magnetic disks such as internal hard disks and removable disks; magneto-optical disks; and CD-ROM disks. Any of the foregoing may be supplemented by, or incorporated in, specially-designed ASICs (application-specific integrated circuits). 
     Information in each of databases  101 - 103  may reside on a single computers or be distributed over a collection of computers. For example, the text segment database  101  may be implemented as a network of computers, each computer storing a partial subset of the available document text segments. Additionally, information in the databases  101 - 103  can be combined in a single storage representation. For example, the databases  101 - 103  may be separate tables within a single relational database or may be separate fields within a table record. Furthermore, portions of each databases  101 - 103  may reside in volatile memory such as RAM memory. 
     In an icon-based implementation, structure questions and information element questions may be represented by graphical icons representing the particular structure question. For example, an icon of a “Stop” sign may be used in place of text asking a user if the end of a document or logical structure has been reached. 
     Still other embodiments are within the scope of the following claims.