DATA STRUCTURE IN A DOCUMENT PROCESSING SYSTEM

Abstract: A document processing system including a control structure having separated supervisory and document func­ tions. The document functions, including a document buffer (54) and document access control means (60) are the sole means for accessing documents. The document function routines (42) are selected from a predetermined library of such routines. The system includes a novel flexible, expand­ able document structure (32) incorporating a plurality of information item block means (86) and adaptive indexing block means (82, 84) related through pointers identifying the locations of each of the corresponding information item blocks. Document table means (80) for storing pointers and means for applying visual and informational attributes to document text are provided. A method for generating and storing a document with the new system is described.

Description: The present invention relates to a document processing system and, more particularly, for the type of system referred to as a word processing or office automation system, and is directed to means for storing and accessing a document in such document processing system. Word processing and office systems are primarily concerned with the generation, editing and, for example, printing and filing of documents. Such systems usually fall into two general classes, centralized and distributed. A centralized system may include a central processor or computer and one or more attached terminals. Data, that is, documents of various types, and routines for operating upon the documents are stored in the central processor memory. Essentially all operations upon the documents are executed in the central processor, with the terminals operating as input and output devices for the central processor. Distributed systems are based upon a network of smaller, interactive units, each having memory and processing capabilities. A distributed system may include a central, shared memory unit for storing routines and data and a number of independently operating terminals. Each terminal may include a memory for storing currently active segments of routines and data and a processor for operating upon the currently active segments. Routine and data segments are transferred between the memory unit and the terminals as required by the operations of the terminals. An exemplary distributed system is shown in U.S.-A No. 4,145,739. In any system, whether previously existing or newly designed, the memory and processing capabilities of the system are usually determined and limited by economic and practical considerations. As a result of such limitations, a recurring problem in word processing and office systems is that of implementing increasingly more sophisticated and powerful document processing systems requiring increasingly greater memory and processing capabilities within currently prevailing system limitations. The distributed system described in U.S. -A No. 4,145,739 was developed in response to this problem and provided a powerful word processing capability in a system having minimal memory and processing capabilities. The problem described above may be regarded as being comprised of two related problem areas. The first is the system control structure, that is, a structure which includes and interrelates routines for controlling the operation of the system and routines for generating and manipulating documents. Because of the above described constraints, system control structures of the prior art have either required the use of a large and powerful computer or, in smaller systems, have only allowed document processing systems of limited capabilities, The problem is essentially one of implementing the power and flexibility of a large processor and memory system within a system having limited processing and memory capacity. A related problem is, that due to the same constraints on memory and processing capability, the control and document processing systems of the prior art have been constructed in such a manner that the system cannot be easily modified. Such modifications frequently result in severe operational problems due to unexpected or unforseen interactions between the modified and unmodified portions of the systems. The second problem area is that of providing a document structure having the flexibility and expansion capability to allow the generation and manipulation of very complex documents within the above described constraints on memory and processing capability. It is the object of the invention as claimed to provide a flexible and expandable document processing system capable of creating complex documents while requiring a minimum of memory capacity and allowing powerful and complex editing capabilities. The invention and its further developments as defined in the appendant claims, remedies the aforementioned shortcomings and constraints of the prior art data and processing system and controlled access to the text and data of documents. From ACM TRANSACTIONS ON DATABASE SYSTEMS, vol. 7, no. 4, December 1982, pages 509-539; D.S. BATORY et al., "A unifying model of physical databases" a two-level index with a primary index block being accessed via a pointer in the "simple files root node", which corresponds to what is called a "document table" in this description is known. Data blocks could be linked together in a list. While this prior art document shows an index to more than one type of data it does not disclose the holding together of information of different types relating to the same document, each of the types having an index to the actual information blocks, the primary index block of each type being accessed via a pointer at a fixed position in a document table associated with the document. The document table contains a number of fields each of which is set aside to hold a pointer to the primary index of a particular type of information, e. g. that indicated in claim 14. The invention provides a control and multilevel index system for implementing a powerful and flexible document processing system within a system having limited memory and processor capabilities. The system architecture includes a control structure providing supervisory routines for controlling supervisory functions of the system and document manipulation routines for operating upon said documents. The document manipulation routines are selected from a library of such routines and, together with an associated document buffer and document access control means, comprise the sole means of accessing a document and a clear and distinct interface between system supervisory functions and document functions. The document structure of the present invention is flexible and expandable to allow the generation of complex documents within the minimum required memory space and includes information item blocks for containing the text and data of a document and an adaptive indexing structure for accessing all information item blocks. The document structure incorporates means for referencing visual, descriptive and informational attributes of document text and data and allows the use of names in reference to document text and attributes. It is thus advantageous to incorporate the present invention into a document processing system in that the present invention allows the creation of a powerful and flexible document processing system in a system having limited memory and processor capability. The present invention is further advantageous in that the document structure of the present invention is flexible and expandable to allow the creation of very complex documents while requiring the minimum memory capacity. The present invention will be better understood by those of ordinary skill in the art after referring to the detailed description of a preferred embodiment and the drawing, wherein: the Fig. is a diagrammic representation of the document structure of the present invention. Document Structure (Fig.) The document structure of the present invention is designed for efficient use of memory capacity while providing the flexibility required to generate very complex documents and to support advanced editing features. The primary function of the document structure is the storage and ready access of sequential text, organized into logical user specified pages of arbitrary length. The structure allows fast and efficient character and page editing and allows for the application of a large number of visual attributes, or enhancements, to the characters of a text. Certain of these editing features include visual attributes, such as underlining, bold type and various fonts, and information attributes, such as notes, footnotes and voice. The document structure also allows the application of character related information which is not primary visual in nature, such as optionally printed text, table of content and index generation, and temporary markers used for editing aids. Additional features allow the user to assign names to various portions of a document and to access and operate upon named portions through those names. The basic element of a document is a fixed size block of information, the size of which is determined by a convenient and efficiently sized unit of memory space in which the document is created and operated upon. In the present embodiment the block size is determined to be two Disc 18 sectors, that is, 512 bytes. In another system, for example, a centralized system based upon a general purpose computer, the block size may be determined by the size of the data blocks transferred between the computer main memory and a cache memory, or a multiple thereof. As will be described below, a document structure is constructed of several different types of blocks, each having a unique internal structure and serving different, specific purposes and assembled as required to create a document. Of these blocks, certain blocks are required in any document while others are used as required. Certain blocks are always located at fixed points in the document and others are located through the pointers which form an integral part of the document structure. In addition, certain blocks, for example, blocks containing text, may be chained together as required. The document structure is thereby flexible and expandable, occupying no more memory capacity than is required for a particular document but capable of accommodating very large and complex documents, and provides fast and easy access to any part of a document. 1. Basic Block Structure All blocks in the present document structure have a fixed internal structure comprised of a Header area and a Data area. The Header area in turn has a standard, fixed structure while the structure of the Data area depends upon the block type. The Header area includes a Block Type field identifying the block type, Forward and Backward Pointer fields used to chain together blocks of the same type, and Top and Bottom Offset fields identifying the location of the block data within the Data area. Other Header fields include a Number Of Items field used in data compression and recovery operations, a Document ID field used to identify the document to which the block belongs, and certain Checksum information for error detection. Not all blocks require the use of all of the fields defined within the standard block Header area; in such cases the unused fields are undefined and are not used but are not deleted from the Header area. 2. Basic Block Types As described above, each document is comprised of a combination or assembly of various types of blocks, which can be divided into three major functional categories, Management Blocks, Indexing Blocks and Text/Data Storage blocks, referred to as Information Item Blocks. Certain blocks are required in any document while other blocks may appear only in complex documents and the document structure allows the addition of further block types as required. Management blocks are required in any document and contain printing and statistical information and user defined editing parameters for the document. Presently defined Management Blocks include an Administrative/System Block, a Style Block and a Free Block Bit Map Block. Indexing Blocks are used to locate the various Information Item Blocks which contain the actual text and information of the document. Presently defined Indexing Blocks include a Document Table, a Named Item Index, and Primary and Secondary Indexes. The Document Table is located at a fixed point in the document and is used to locate the Named Item Index and the Primary Indexes. The Primary Indexes are used in turn to locate the Secondary Indexes and the Secondary Indexes are used to locate Information Item Blocks. Certain Information Item Blocks, and the Named Item Indexes, may be chained together through the Forward and Backward Pointers contained in their Header areas, thus providing yet another level of linking of blocks. It should be noted that when a document does not contain more Information Item Blocks of a given type than can be identified within the capacity of a single Secondary Index, the Primary Indexes for that block type are not created and the Document Table entry for that type points directly to the single Secondary Index for that block type. Finally, the Information Item Blocks contain, as described above and described in detail below, every type of information appearing in a document. Most Information Item Blocks having text can have that text enhanced by visual attributes, such as color and font, and can contain references to information attributes, such as format lines and footnotes. The presently defined types of Information Item Blocks, each of which will be described in further detail below, include: Text Formats Headers/Footers Pictures Free Form Regions Text ShelvesFootnotes Notes Equation Regions Voice Messages Merge Data Data Shelves Certain embodiments of the present invention may also provide Matrices Blocks and External Data Blocks, as described below. As described above, additional Information Item Block types may be defined as required and incorporated within the document structure in the same manner as the types listed above. Other types of references which may be inserted into a document include, in addition to attributes, described below, Text Insertion References and Named Marks. The document structure described below also includes, as described below, means for handling text appearing in column form. 3. Minimum Document Blocks As described above, certain of the blocks described above are required in any document. In the present embodiment of the document structure, these blocks include, for a minimum document, the: Document Table Secondary Text Index Administrative/System Block Text Block Style Block Secondary Format Index Free Block Bit Map Format Information Item Block It should be noted, with regard to the two Secondary Indexes entries listed above, that, as previously described, a minimum document may contain a single Secondary Index for a particular Information Item Block and the Secondary Index may be located directly through the corresponding Document Table entry. Having described the major categories of block type, and briefly the types of block within each category, each of the block types will be described in further detail below. 4. Management Blocks The Administrative/System Block contains keystroke interpretation and administrative information and may be chained to other Administrative/System Blocks for very complex documents. The Style Block contains user definable defaults concerning, for example, document character style to be used if the user defaults, that is, does not define a different style. The Free Block Bit Map Block contains information identifying, for each block in a document, whether a particular block is currently in use. Bit Map Blocks are used by the system to efficiently allocate and deal locate blocks, that is, memory space. Bit Map Blocks may be chained, thereby allowing a complete physical mapping of every block or, in the present embodiment, disc sector. 5. Indexing Blocks The following descriptions of the Indexing and Information Item Blocks will refer to the Fig., which illustrates the document structure of the present invention and the relationships between Indexing and Information Item Blocks. As previously described, the Indexing Blocks include the Document Table, Primary Indexes and Secondary Indexes. Referring to Fig. 4, each document contains a single Document Table DT) 80, which contains a pointer 88 to a Primary Index (PI) 82 for each type of Information Item Block type appearing in a particular document. Each PI 82 in turn contains pointers 88 to one or more Secondary Indexes (SIs) 84 for that Information Item Block type and each SI 84 contains, in turn, pointers to the Information Item Blocks (IIBs) 86 of that type appearing in the document. As previously described, in those cases wherein the number of IIBs 86 of a certain type is less than the number of pointers 88 which may be accommodated in a corresponding single SI 84, the corresponding PI 82 is not used and the DT 80 entry points directly to the SI 84 for that IIB 86 type. It should be noted that, in the present embodiment, the pointers 88 used in the Indexing Blocks, that is, in DT 80, PIs 82 and SIs 84 are comprised of File Reference Serial Numbers, that is, the logical as opposed to physical addresses of the elements pointed to. As will be described further below, IIBs 86 of certain types may be chained together with other IIBs 86 of the same type through the Forward and Backward Pointers in the IIB 86 Header areas. In such cases, an SL 84 pointer to a chain of IIBs 86 may point to the first IIB 86 of the chain 102 and the remaining IIBs 86 of the chain 102 may be located through the forward and Backward Pointers. a. The Document Table The DT 80 is always located at a fixed point in the document structure, that is, at the start of the document, and there is only one DT 80. The Header area of DT 80 is of the standard, fixed structure previously described. The Data area contains a space or location for a pointer 88 to the PI 82 or SI 84 for each possible type of IIB 86. If a particular type of IIB 86 does not appear in a document, the DT 80 entry for that type is null entry, for example, zero. In the present embodiment, the DT 80 Data area contains the following pointers: Named Item Index Primary (or Secondary) Text Index Primary (or Secondary) Format Index Primary (or Secondary) Note Index Primary (or Secondary) Free Form Region Index Primary (or Secondary) Footnote Index Primary (or Secondary) Header Index Primary (or Secondary) Footer Index Primary (or Secondary) Matrix Index Primary (or Secondary) Picture Index Primary (or Secondary) Voice Index Primary (or Secondary) External Data Index Primary (or Secondary) Merge Data Index Primary (or Secondary) Equation Region Index Text Insertion Index Named Marks Index b. Primary Indexes As previously described, there is a PI 82 for each IIB 86 type appearing in a document and the Data area of each PI 82 contains pointers 88 to the SIs 84 for the corresponding block type. In the Header area of a PI 82, the Number Of Items field will contain the number of SIs 84 referenced from the PI 82. There will be, in the present embodiment, only one PI 84 for each block type; in other embodiments, for example, PIs 82 may be chainable within each block type. When a document is first created there will be, as previously described, only SIs 84 and probably only two such SIs 84, one for a Text Page IIB 86 and one for a Format Line IIB 86. As the document grows in complexity, the capacity of single SIs 84 will be exceeded and further SIs 84 will be created. As a second such SI 84 is created for a particular block type, a PI 82 for that type will also be created, with pointers 88 to the SIs 84 of that type, and the DT 80 entry for that type will be changed to point to the PI 82 for that type. c. Secondary Indexes The general structure of SIs 84 is similar to that of PIs 82 described above. As previously described, an SI 84 is pointed to by an entry in a corresponding PI 82 and contains pointers 88 to the IIBs 86 of that block type. There may be multiple SIs 84 for a particular block type and, if so, the Header area will contain a flag indicating this fact. SIs 84 may not, however, be chained in the present embodiment, but may be chained in other embodiments. The SI 84 Data area contains a pointer 88 to each IIB 86 referenced through the SI 84, and for each such pointer, information as to whether the particular information item, that is, IIB 86, is named, the number of times it is referenced, and whether it is referenced from another IIB 86. 1. Secondary Text Page Indexes Although the structure of a SI 84 for a Text Page IIB 86 is the same as any other SI 84, such SI 84s are unique in that the index contained therein is continuous, that is, no vacant entries are allowed. This restriction provides for a special property of Text Page IIBs 86; that is, that the number of a document page, which as illustrated in Fig. 4 is comprised of one or more IIBs 86, is always the same as that of the IIB 86. For example, the entry of the 45th page in a document is always the 45th entry within the first SI 84 Text Page Index. The Secondary Text Page Index may therefore always be used to fine the first Text Page Block of a document's page. A document page can be comprised of any number of Text Page Blocks chained together by the Forward and Backward Pointers in the Block Header areas. 2. Secondary Header and Footer Indexes Secondary Header and Footer Indexes have the same structure as all other SI 84s except that all item numbers must be assigned on even boundaries when new Header and Footer IIB 86s are created. This restriction provides space in the indexes to allow for the generation of either primary or first and second alternate Headers and Footers. d. Named Item Index The Named Item Index 92, which appears as a PI 82 in FIg. 4, provides a parallel access path to IIBs 86 which have been assigned names by the user. That is, an IIB 86 can be located by its name as well as by its Item Number, described below, or FRSN. The Named Item Index Data area contains an entry for each IIB 86 which has been assigned a name. Each entry includes the IIB 86's type, name and Item Number. Text Shelves, a type of IIB 86 described below, are identified by their FRSNs rather than by their Item Numbers. Entries are maintained in ascending order by type and name, no blank entries are permitted in the index, and Named Item Indexes may be chained through their Forward and Backward Pointers. 6. Information Item Blocks As previously described, the actual text or other information of a document is contained in Information Item Blocks (IIBs) 86 and there is a type of IIB 86 for each type of information that appears or may appear in a document. An IIB 86 may, for example, contain text 94 and/or attributes 96, text 94 and/or attributes to be interpreted as columns or rows of columns, file names for information stored externally to the document, and any other form of information. Each IIB 86 has an associated Item Number that is used to locate the IIB 86 within the Index Blocks described above. For Information attributes, described below, the Item Number is arbitrary. For text pages, however, which have been previously described as comprised of one or more IIBs 86, the item number is implied and is the same as the page number. In all cases, however, the Item Number leads to the first IIB 86 of an information item 102, 90 of arbitrary length and the blocks may be chained together through the Forward and Backward pointers residing in their Header areas The general structure of an IIB 86 is similar to that of the Index Blocks described above, that is, with a standard Header area and a Data area. The Data area differs, however, and may contain text 94 or attributes 96 or both. Text is entered from the top to the bottom of the Data area and attributes are entered from the bottom to the top. A typical Data area nay therefore have text in its upper portions, attributes in its lower portion and free area between, which becomes filled as text and/or attributes are entered. Either text or attributes may occupy the entire Data area, or as much of the Data area as is not occupied by, respectively, attributes or text. In addition to the Forward and Backward pointers and other Header elements, the Top and Bottom Offset fields of the Header are used to point, respectively, to the last valid character in the Data area and the last valid attribute in the Data area. Having described the general structure of IIBs 86, the individual types of IIBs 86 of the present embodiment will be described next below. It should be noted that further types may be added as required and that a type described below need not appear in a particular document or implementation. a. Text Blocks The most common form of IIB 86 is the Text Block which contains the text of the document and the attribute information, described further below, pertaining to the text contained therein. Text Blocks contain the actual body of a document text, including all visual and descriptive attributes and all information comprising references. Text Blocks can be chained together or can exist as independent blocks with the main body of a document's text existing as a single chain 102 of blocks, beginning with the first block of the first page of the document and ending with the last block of the last page. Document pages wherein the text occupies more than one Text Block are created, to any arbitrary length, be chaining together Text Blocks. As described above, text occupies the Data area from top to bottom and attribute information from bottom to top. The last text character appearing in a block is always an End of Text Character to identify the end of a page. Any number of Text Blocks may be chained and a Text Block is referenced either through a Text SI 84 by Item NUmber or through a Secondary Named Text Index by page number or name. b. Format Blocks A Format Block contain data pertaining to format lines, that is, lines defining the physical layout characteristics of a text line, for example, the locations of Tabs. All documents must contain at least one format line and a format line may be referenced any number of times from an location within the document and may be named. As described above, a format reference is used to specify data to control text display, formatting, and printing characteristics, as well as the width of a single or multiple columns. A format reference will be found at the beginning of every text page, at the start of every distinct column region, and at other arbitrary user specified locations within text pages. In addition, a format reference is required at the beginning of item chains for all notes, footnotes, headers and footers and may be found at other locations within such items. A format reference is a 'forced-break' reference, that is, the attribute character, decsribed below, with which the reference is associated is always the first character in the text block in which it is found. If a new format line is inserted into a Text Block, the block is split into two blocks at the point of insertion and an End Of Text Character inserted at the end of the text in the block before the inserted format line. This feature allows text to be easily inserted before format lines and page breaks. Format references are also used to control the placement and configuration of column regions and to specify special conditions, such as the presence of soft or hard page breaks. c. Text Shelf Blocks Text shelves are named storage areas used during editing to same and retrieve portions of text and are not normally printed. A text shelf contains both the text and the attributes pertaining thereto and is a permanent part of the document but cannot be referenced as are other IIBs 86. A Text Shelf Block may be referenced only through the Named Item Index and no SI 84 exists for Text Shelf Blocks. d. Note Blocks A Note Block contains the text and any applicable attributes of notes appearing in the document and a single note may be comprised of several chained Note Blocks. e. Free Form Region and Equation Blocks A Free Form Region of a document may contain any non-wordwrapped text or any graphic that can be entered through KB 46 and any attributes applicable thereto. Every space in a Free Form Region is defined, that is, it does not contain any 'white space', and graphics and text may be entered at any point in the region. Examples of Free Form Regions include scientific equations and charts. Free Form Region Blocks may be chained to create as large a Free Form Region as required. An Equation Block is similar to a Free Form Region Block, or a Graphics Block, but is particularly designated to contain information in the form of equations. f. Footnote Blocks A Footnote Block contains the text and applicable attributes of a footnote and a single footnote may be comprised of chained Footnote Blocks. g. Header/Footer Blocks Headers and Footers are restricted attributes, that is, they can be placed only at the top of a page, immediately after the format line. There are three types of Headers and Footers. A Primary Header/Footer is printed on every page of the document, a First Alternate Header/Footer is printed on every other page, and a Second Alternate is printed on the pages interleaved with the pages having First Alternate Header/Footers. Headers and Footers contain options which may pertain to specific Headers and Footers, such as print styles, lines printed on, and page numbering. The Header area of a Header/Footer Block contains unique information pertaining to these options. h. Matrix Element Text Blocks A matrix is a two dimensional table, or array, of areas of wordwrapped text with each such area being referred to as a cell. The text and attributes of a single such cell are contained in a corresponding Matrix Element Block, a type of IIB 86. Format lines defining the columns of the matrix are contained in Format IIB 86s are are treated as elements of the matrix. The first element of a matrix column is always a format line, there is always a format line for each column of a matrix and a format line may be referenced by any number of Matrix Element Blocks. This restriction on the assignment of format lines, that is, one for each column, allows the columns and rows of the matrix to be easily rotated or interchanged. The text within a cell is unique in that it cannot be modified by any other format line than that appearing with reference to the column containing the cell. The Matrix Element Blocks and Format Blocks of a particular matrix ate located through a Matrix Description Table, which also contains the definition of the matrix. Matrix Description Tables are in turn located through Primary and Secondary Matrix Indexes. A Matrix Description Table has the same structure as the blocks previously described and contains, as described, the information necessary to completely define a matrix. The Data area contains FRSNs pointing to the text blocks and format lines of the matrix with each FRSN pointing to the beginning of a Matrix Element Block, the smallest unit of a matrix. In addition to the standard information, the Header area identifies the number of rows and columns of the matrix. Each Matrix Element Block contains normal wordwrapped text and any applicable attributes of a cell of the matrix and are referenced in the Matrix Description Table in row order from left to right. i. Picture Blocks A Picture Block contains the name of a file containing, in turn, a graphic, that is, picture and may contain additional information identifying the area of the document to be occupied by the picture. As previously described, Picture Blocks will normally be used with system having bit mapped display and printing capabilities. j. Voice Blocks Voice Blocks may contain the names of files containing voice messages, for example, in Digital Voice Store and Forward (DVX) systems. k. External Data External Data Blocks may contain the names of files external to the system which contain programs or data operating upon data within the system or used by the system. The provision of External Data Blocks allows, for example, programs residing in external files to be overlayed to operate upon data within a file in the document. External data may also be incorporated into a document through an attribute reference, as described below. l. Merge Data Blocks A Merge Data Block is a chain of text which contain encoded instructions for performing merge operations between an external text source and the document. The position of a merge attribute character in a text chain specifies the position at which the merging is to occur. The instructions indicate how to perform the merge operation and there is no restriction on the contents of the merge data chain. Merge data text may contain additional references to other formats, so that columns may be placed in merge chains. m. Text Insert A text insert reference is a temporary local reference attribute which does not bear an item number and which consists only of a reference attribute character and a reference word, as described below. The purpose of a Text Insert is to create a forced block break at a point where text is to be inserted. n. Named Marks Named Marks are user specified permanent position markers. When applied, the character to be marked is moved to the beginning of a new block and the occurrence of a Names Mark is indicated in the header of the new block, resulting in a forced block break. The block or item number of the new block is then placed in the Named Item Index. o. Columns Parallel columns of text appearing in a document are treated as a special case of normal word-wrapped text. The text in a column consists of a portion of a text page chain 102 containing text, visual attributes, and reference attributes. Each column begins with a format line controlling the display of text therein, and has essentially unlimited length. A column may be interrupted by a format break or page break. A column is terminated by another format, which may in turn contain one or more columns and may be at a page break. It is therefore possible to have, in a single page, a region of three columns followed by a region of two columns, and so on. In addition to format data, columns require block linking pointers to connect columns together, if necessary, Format line and data specifications of columns appearing in a single page are all included into a single format line with multiple codes to delimit the extent of each column. Column text is stored in a text page chain in sequential form, with the text of the first column in a multi-column region following immediately after the text of the preceeding region. The last block of text of the preceeding region is chained to the first block of text in the column region, which contain a reference to the formats for the column regions. The last block of the first column is chained to the first block of the next column, and so on to the end of the column region, wherein the last block of the last column is chained to the next succeeding block. In order to easily perform whole-column operations, the top blocks of each column in a column region are linked together by side pointers located in the format attribute words found at the start of each column. Having described the various types of IIB 86, the relationship between text and attributes, referred to in the above descriptions, will be described next below. 7. Text and Attributes As previously described, any IIB 86 may contain, in the Data area, both text 94 and attributes 96. Attributes 96, which appear as words written in the lower part of the block Data area may, as previously described, effect the visual appearance of the text, may be descriptive in indicating that a character is to be optionally printed or is to be used in generating a table of contents or an index, or may contain information pertaining to the text, for example, footnotes. Visual and descriptive attributes are always applied to a range of characters, which may be as short as one character. There may be a number of distinct visual/descriptive attributes appearing in a single block. If the same visual or descriptive attribute is applied to characters separated by at least one characters, to attributes will be present; if,, however, the same attribute is applied to consecutive characters, a single attribute will result. Informational attributes usually appear as units of text or data existing between two text characters and are referenced or incorporated into the text through a reference to a block 96 containing the infformational text or data. Attribute words occupy space in an IIB 86 Data area only when defined. In an IIB 86 containing only text with no assigned attributes, therefore, the text may occupy the entire Data area. Conversely, it is possible to have an IIB 86 wherein the entire Data area is occupied by attribute words. Attribute words are defined only within a Text Block and have meaning and are applicable only within the Text Block; attributes cannot span over two or more Text Blocks. 1. Visual/Descriptive Attributes Visual/Descriptive attributes are applied by the user over a range of characters appearing in the text, from one character to all characters appearing in the Text Block. Whether or not certain visual attributes are displayable, depends upon the capabilities of Display 48. A visual/descriptive attribute word will contain information identifying whether the attribute is visual or informational, the position of the first character in the Text Block effected by the attribute, and the position of the last character in the Text Block effected by the attribute. Also included is information identifying the apptribute to be applied. Only one attribute is specified by each attribute word and, if text characters have more than one visual attribute, multiple attribute words are required. Attributes implemented in the present embodiment of the document structure include, but are not limited to, the following: Underline Color Change Double Underline Revision Mark Superscript Subscript Bold Table of Contents Mark Font Change Index/Occurrence Mark Merge Hyphen Character Set Change Table Of Contents No Break Strike-Through Optional Text Index Generation 2. Informational Attributes As described above, informational attributes are units of text of data that exist between two text characters. Informational attributes are represented by a unique, unprintable character and by informational attribute words appearing in the attribute area of the Text Block Data area. Only one informational attribute may be associated with the informational character in a single occurrence of the informational character and each informational word may define only one informational attribute. The data associated with the information character is, for each occurrence, kept in IIB 86s and are located through the Indexing Blocks through their Item Numbers. An informational attribute word contains information identifying the word as referring to an informational attribute, the type of attribute, and the Item Number of the attribute. The word also contains information identifying the location within the text where the informational attribute takes effect and, in the case of, fof example, Picture or Free Form Regions, may identify the horizontal and vertical space required in the document for the attribute. The forms of informational attribute implemented in the present embodiment include, but are not limited to: Format References Matrix References Note References Picture References Free Form Region References Voice References Footnote References External Data References 3. Attribute Sorting Order The attribute words stored in the attribute area of a Text Block are maintained in a specific order to provide ready and logical access to the words while fetching characters and associated attributes. If two or more attributes begin or are located at the same point in the text, their order is determined first by attribute type, that is, reference attributes, such as informational attributes, will occur prior to visual or descriptive attributes. The invention described above may be embodied in yet other specific forms. For example, the system described herein may be implemented in a centralized document processing system or in a system wherein independent processors or computers are located separate from and receive document and routine information from a central memory or other computer system. Such downloading of data and routines may occur as a single operation rather than as an interactive downloading of currently active routines and document segments. In further example, the document structure described above may be implemented in any form of document processing system, whether distributed or centralized or the system may be implemented with additional of less editing capabilities.

Claims: A document processing system, particularly for a word processing system or office automation system, comprising means for storing and accessing a document, and having a plurality of information item block means (86) for storing information comprising the document, characterized by each information item block means (86) belonging to one of a plurality of types corresponding to the function in the document of the information item block means, for example main text, page headers, footnotes; a plurality of indexing block means (82, 84) for storing a plurality of indexes for locating information item block means (86), each index relating to only one type, the indexes including pointers by which the processing means locates the information item blocks (86); and document table means (80) for storing pointers to a plurality of indexes and used by the processing means to locate the plurality of indexes, the document table means including a number of fields, each of which holds a pointer to the primary index of a particular type of information block. The document processing system according to claim 1, characterized in that the indexing block means (82, 84) comprises: for each of the plurality of indexes wherein the number of pointers (88) is less than a maximum number N of pointers in an indexing block means (82, 84), a secondary indexing block means (84) for storing the index the corresponding document table (80) pointer permitting location of the secondary indexing block means (84) storing the index, and for each of the plurality of indexes wherein the number of pointers (88) is greater than the number N, a plurality of the secondary indexing block means (84), and a primary indexing block means (82) for storing pointers (88) permitting location of the plurality of secondary indexing block means (84), the corresponding document table (80) pointer permitting location of the primary index block means (82) for the index. The document processing system according to claim 1 or 2, characterized in that certain information item block means (86) further include means for storing chaining pointers identifying the locations of related information item block means (86) of the same type. The document processing system according to claim 1, characterized in that the information item block means (86) include chaining pointers for chaining a given information item block means to other information item block means; the plurality of types includes a text type; the text of a document is contained in information item block means having the text type; the text of a document is divided into a least one page made up of at least one information item block means having the text type; and the information item block means in a page made up of more than one information item block means are chained to each other by means of the chaining pointers. The document procesing system according to claim 1 characterized in that certain of the indexing block means (82, 84) further include means for storing chaining pointers identifying the locations of index block means (82, 84) for belonging to the same index of the plurality of indexes. The document processing system according to claim 1 or 3 characterized in that certain information item block means (86) are associated with a corresponding item number. The document processing system according to claim 1, characterized in that the plurality of indexes includes a named item index for associating a name with a pointer permitting location of an information item block means (86) and thereby associating the information item block means (86) with the name. The document processing system according to claim 1, characterized in that the plurality of types includes a text type and each information item block means (86) having the text type includes text storage means for storing text information, and attribute storage means for storing information identifying attributes pertaining to the text information residing in the text block means. The document processing system according to claim 8, further characterized by: the attributes including visual attributes affecting the visual appearance of text characters of said text infroamtion, the attribute storage means including means for storing a plurality of visual attribute words, each visual attribute word containing information pertaining to a single visual attribute and including information identifying the position of the first text character in the range of text stored in the text storage means affected by the visual attribute, information identifying the position of the last text character in the range, and information identifying the visual attribute. The document processing system according to claim 8, characterized in that the attributes include informational attributes pertaining to the text information, the text storage means includes means for storing, between text characters, unique non-text characters, each of the unique characters corresponding to one informational attribute and specifying the location in the text information at which the corresponding informational attribute applies, and the attribute storage means includes means for storing a plurality of corresponding informational attribute words, each informational attribute word including information identifying the position within the text to which the informational attribute applies, and an item number identifying an information item block containing the information specified by the informational attribute. The document processing system according to claim 1, characterized in that the types of information item block means (86) include shelf block means for temporarily storing and retrieving portions of the document. The document processing system according to claim 11, characterized in that the plurality of indexes includes a named item index for assocating a name with a pointer permitting location of an information item block means and thereby associating the information item block means (86) with the name and in that a shelf block means is locatable only through the named item index. The document processing system according to claim 1, characterized in that the types of information item block means (86) are selected from the set of types comprising: text, shelves, formats, pictures, headers and footers, free form regions, matrices, external references, footnotes, voice messages. notes, The document processing system according to claim 1, characterized in that a document comprises at least: a document table means (80), an administrative/system block means containing at least keystroke interpretation information, a style block means containing user defined defaults, a free block bit map means containing information identifying information item block means (86) currently used in said document, a text page block means (86) containing document text information, a text page indexing block means (82, 84), a format block means containing information defining the format of the document text information, and a format index block means.

Inventors: COOPER, JAMES LEE, SAN SOUCIE, MARC DAVID
Applicants: WANG LABORATORIES INC.
Application year: 1984
Main classification: G06F15
IPC codes: G06F12, G06F17