Method and means for interrogating a layered data base4422158Abstract A method using a digital data processing system and a query composed of entries locates entries in a stored multiple layer data base. The entries have one or more event types, and the entries of the data base include entries which have either an exact or an inexact match with entries of the query. The query and a first one of the data base layers are processed to form packages having an assigned order. The packages contain representations of event types in a second layer of the data base (entries in the first layer) and representations of the degree of match between the entry in the first layer and an entry of the query. Representations of the packages and representations of entries in a second one of the data base layers are processed to form a degree of match therebetween and to form representations of entries on the second one of the data base layers. For each of individual ones of the entries in the packages, a representation of a further degree of match for such entry is determined and formed. Representations of the degree of match represented in each of plural ones of the packages are processed to form the representation of the further degree of match for each entry as a function of the representations of the degree of match in the packages. As a result the representations of the further degree of match represent the degree of match of the query to both the first and second layers of the data base. Claims What is claimed is: Description CROSS-REFERENCE TO RELATED APPLICATIONS
__________________________________________________________________________
INDEX Page No.
__________________________________________________________________________
I. GENERAL DESCRIPTION OF A LAYERED DATA BASE AND
PIPING METHOD
A. GENERAL DESCRIPTION 12
B. GENERATION OF DATA ARRAY 15N
C. ENTRIES, EVENTS AND EVENT TYPES 16
D. QUERY-TO-ENTRY POSITIONS 17
E. CHUTE DATA GENERATION 19
F. LAYERED DATA BASE 22
G. PIPING METHOD 26 EE
H. PIPER PROCESSING PHASES 28
I. PIPING METHOD STEPS FOR A SINGLE PIPER
30
J. PIPING METHOD STEPS FOR MULTIPLE PIPERS
32
K. PIPING METHOD APPLIED TO A SAMPLE DATA
37
ARRAY SHOWN IN TABLES 2A-2N
II.
PIPER MODULE
A. GENERAL DESCRIPTION 51
1. CONTROL LOGIC BLOCK 54
2. PIPER MODULE OVERVIEW 56
INITIALIZATION 57
CHUTE FILLING 58
MINIMUM MIN DETERMINATION 61
PIPING 63
NMD SERVICING (CHUTE REFILLING)
66
B. DETAILED DESCRIPTION OF THE PIPER
68
INSTRUCTION PROGRAM
C. MULTIPLE PIPER ENABLING 73
III.
BRIGHTNESS GENERATOR MODULE
A. GENERAL DESCRIPTION 97
1. BRIGHTNESS CALCULATION 98
2. BRIGHTNESS EQUATION 99
3. BRIGHTNESS CALCULATION MATHEMATICAL
99
OPERATIONS
FIXED POINT FORMAT 100
FLOATING POINT FORMAT 100
4. FIXED AND FLOATING POINT TRANSFERS AND
100
TRANSFORMATIONS
5. FIXED AND FLOATING POINT MULTIPLICATION
102
6. BRIGHTNESS GENERATOR CONTROL SIGNALS
103
7. EXACT CONDITION DETERMINATION LOGIC BLOCK
106
8. BRIGHTNESS GENERATOR MODULE OPERATIONAL
107
SUMMARY
INITIALIZATION 107
MINIMUM MIN DETERMINATION 108
SSD AND SSB COLLECTION 108
NMD SERVICING 109
BRIGHTNESS CALCULATION AND TRANSFER
110
9. BRIGHTNESS GENERATOR MODULE OVERVIEW
110
INITIALIZATION 111
MINIMUM MIN DETERMINATION 114
SSD AND SSB COLLECTION 116
NMD COMMAND SERVICING 118
NORMALIZED BRIGHTNESS CALCULATION
120
AND TRANSFER
B. DETAILED DESCRIPTION OF THE BRIGHTNESS
122
GENERATOR
C. DETAILED DESCRIPTION OF THE BRIGHTNESS
125
GENERATOR INSTRUCTION PROGRAM
D. SUMMARY OF THE PREFERRED EMBODIMENT
158
IV.
APPENDIX A 167
INDEX OF TABLES 167
__________________________________________________________________________
DETAILED DESCRIPTION I. GENERAL DESCRIPTION OF A LAYERED DATA BASE AND PIPING METHOD A. GENERAL DESCRIPTION Briefly, the data processing system of FIG. 1 determines the degree of match between a plurality of data arrays. One such data array is a request also called a "query entry" and another such data array with which the request is compared is called a "data base entry". A plurality of entries are stored in a data base memory that forms a part of the data processing system. The data arrays are coded representations of a variety of particular information bases, such as, for example, textual material. Other examples are data representing signals for signal processing and in error probability mathematics where the data arrays contain representations of the likelihood or probability of occurrence of predefined events. The representations may be a number or other symbolic characters of an item of data such as a number representing a letter, a line segment, or another number associated with the data. The entries of the data base are arranged in layers having a hierarchy that correspond to the information in the information base. For data organized in textual form, the layers would first comprise a word layer containing the events (alphanumeric characters) grouped into entries (words) where each character (i.e., letter), is an event type occurring in the order indicated by the event sequence in each word. Each group of event characters making up a word then forms an entry on the word layer and is identified sequentially, i.e., numbered in the order of their occurrence in the text. The next layer in the hierarchy is the sentence layer, and its comprises event types that are the entry numbers of the words on the word layer grouped to represent the sentences on the word layer. The entry numbers of the sentence layer identify the sentences and the order of occurrence of the sentence in the text. The next higher layer in the hierarchy is the paragraph layer, and it comprises event types that are the entry numbers of the sentences on the sentence layer grouped to represent the paragraphs on the sentence layer. The entry numbers on the paragraph layer identify the paragraphs and their order of occurrence in the text. Although not restricted to 3 layers, the example using 3 layers is sufficient to illustrate all the aspects of the invention described herein. The layered data base is interrogated by a query in a process called "piping". Each layer of a layered data base is piped in succession. The organizationally lowest layer is piped by queries derived directly from a system user. Each subsequent organizationally higher layer is piped by queries derived from the results of the interrogation returned from the next lower layer piping. An aspect of piping is the formation of the degree of match between the particular data base layer being interrogated by a query. The matches returned from piping the highest layer identify the organizationally highest level of the data base containing matches to the query. For a textual material type data base, word layer (first layer) piping determines what words, if any, exist in the data base that are synonyms to the words in the request, i.e., query. Sentence layer (second layer) piping determines which sentences contain the same or similar words returned from the word layer piping in an order sufficiently simiar to the word order of the system request to warrant return. Paragraph layer (third layer) piping determines which paragraphs contain the same or similar sentences returned for the sentence layer piping. Such paragraphs are then retrieved and provided to the system user. In piping a query against all the entries of a data base on a layer, a degree of match between such query and the data base entries is determined. The degree of match of the query with the corresponding data base entries provides a criterion value. The higher the criterion value, more of the event types and their order of occurrence in a query match the event types and their order of occurrence in a data base entry. Using such criterion values, a selection is made of a data base entry having the highest criterion value or best degree of match with the query. A threshold value is defined for the criterion values such that only those criterion values that exceed a threshold value are retained in the selection of the data base entry that produces the best degree of match. On the word layer, each word of the given query is compared with each data base entry on the word layer. More than one data base entry in the word layer may provide a criterion value for a selected query that exceeds the threshold value. All such data base entries providing a criterion value that exceed a threshold for a given query are arranged in a package. A package, therefore, is formed for each query containing the data base word layer entry numbers and associated criterion values designating the degree of match between such query and data base entry pair. A criterion value threshold may be selected such that criterion values less than threshold will be discarded and not included for further piping. In a manner similar to that discussed for the word layer, all data base entries on the sentence layer providing a criterion value above the threshold value when compared to a sentence layer query are arranged in a package, and as previously discussed, each query entry on the sentence layer has a corresponding sentence layer package. Furthermore, a paragraph layer package is formed for each paragraph layer query having a data base paragraph entry providing a criterion value above the threshold value. Each entry of the query is assigned a sequence number which represents the order of occurrence of that entry in the query, and each package is assigned the same sequence number as the word (sentence, or paragraph) query that caused its generation. This preserves the word order in the system request as a sequence of packages that represents all possible analogues of the request contained on the word (sentence or, paragraph) layer above the appropriate threshold criterion value. The criterion value associated with the corresponding data base entry determined to have a degree of match with the query above the threshold value is called "brightness". The associaion of the brightness value with each sequence number in a package provides a mechanism for brightness propagation. Thus, the criterion values (brightness) determined on the word layer are retained with the data base entry that provided such brightness value to be used for piping on the next higher layer. The packages thus returned are used as queries on the next higher organizational layer, i.e., the sentence layer. In executing the piping method, the priorly formed brightness values for one layer are used as weighting values during piping on the next higher layer. Thus, the criterion value formed for each query and data base entry pair on the sentence layer is therefore influenced by the priorly formed criterion value on the word layer. The packages formed as a result of piping the query packages against the data base entries on the sentence layer form a query for piping on the paragraph layer. All packages returned from piping on the paragraph layer that have criterion values that exceed a threshold value will be provided to the system user. Thus, brightness propagation is achieved by associating the appropriate lower layer brightness score with each data base lower layer synonym placed in a higher layer package. The method equalizes all returned higher layer data base entries for the match of their corresponding event types with the system requests, and thus avoids treating all lower layer returns as perfect matches when piping on the next higher layer. In comparing the events of a query and the events of the stored data base, the degree of match or brightness value calculated depends whether exact or inexact matching is used. If exact matching is used, then only the stored data base entries containing exact matches to the system request, i.e., query, are returned to the user. For inexact matching, the number of stored data base entries returned increases as the degree of inexactness specified increases. Exact matching creates no ambiguities since for each layer only one query event set, i.e., group of query events, forms a query, and only one return event set, i.e., group of data base entries, is retrieved. The concept of inexact matching creates a continuum of possible retrievals with a potential return of the entire stored data base entries on the one hand (inexactness criteria=0%) and only a single retrieval on the other hand (inexactness criteria=100%). Exact matches are thus considered a special case of the more general interrogation process. Depending on the inexactness criteria specified and the number of entries in the query, several sets of returns can be retrieved from a piped layer forming multiple queries to be piped against the next higher layer. Thus, and as illustrated in the foregoing example, if 3 packages are returned as a result of word layer piping, the first package having a single data base entry, and the second and third packages each having two data base entries together forming the sentence layer query. The sentence layer query represents 4 analogue sentences (query event strings) as candidates to be piped against the next higher layer. In the absence of brightness propagation between layers, each of the query event strings formed by the entries in the packages are handled as if their event types had been exact matches on the lower layer. Thus, in the absence of brightness propagation, discrimination between the query event strings based upon the degree of match formed as a result of lower layer piping is not readily accomplished. As will be later explained, the criterion value is formed in accordance with the following relationship: ##EQU1## Where: QS=the total event types (i.e., number of events) of a query; ES=the total event types (i.e., number of events) of a stored data base entry; M=the total event types (i.e., number of events) in the query for which at least one corresponding event type is not found in the entry; SSD=the total of the sum of distance values from each data processing means; SSB=the total of the sum of weighting values (brightness values calculated on the previous layer) from each of the data processing means; MIN(QS,ES)=the smaller of QS and ES; and MAX(QS,ES)=the larger of QS and ES. Implementation of the above relationship is presented in detail in Section III entitled, Brightness Generator Module. An alternate form of the brightness relationship is presented below, i.e., ##EQU2## Where: P=a constant value called "pipewidth"; QS=the total event types (i.e., number of events) of a query; ES=the total event types (i.e., number of events) of a stored data base entry; M=the total event types (i.e., number of events) in the query for which at least one corresponding event type is not found in the entry; SSD=sum of differences between the order of occurrence of the events in the query and the order of occurrence of like events in the data base; SSB=the sum of the propagated brightnesses associated with the distances utilized in forming SSD; (M+SSB)/QS=brightness correction factor (BCF); and [MIN(QS,ES)]/[MAX(QS,ES)]=length correction factor (LCF). From the above relationship, it is noted that this latter relationship for the brightness value is converted into the prior relationship for the brightness value if P is set equal to QS-1. Thus, one skilled in the art may readily modify the implementation presented in Section III to provide the latter relationship. The criterion values determined on the word layer are retained as propagated brightnesses, i.e., weighting values, associated with the differences generated by the query event type previously associated with that brightness. To be later explained, the differences represent the number of event positions of displacement between the occurrence of an event of the query and the occurrence of a corresponding like event in the data base entry. After each query and data base entry position is processed in a piper, the average value of the propagated brightness associated with the distances used in forming the brightness for that position is used to modify or weight the brightness value obtained. This average value is the propagated brightness correction factor (BCF) and is equal to (M+SSB)/QS. The BCF weights the brightness obtained at each query/data base entry position in terms of the closeness of match of the word layer of the query event types used in calculating the unweighted sentence layer brightness. For example, if all such query event types were exact matches on the word layer (propagated brightness=1.0), then the value M+SSB is found to equal QS, the BCF would equal 1 and the weighted brightness would equal the unweighted brightness. If one or more of the query event types had a propagated brightness of less than 1.0, then the BCF would be less than 1 and the unweighted brightness would be lowered accordingly. This procedure ranks the sentence query event sets according to the closest match of their event types on the word layer. This assures a useful range of brightness scores (values) on the sentence layer with those sentence query event sets most closely matching the system request generating the highest brightness scores, and those least like the system request generating the lowest brightness scores. An effect, therefore, of brightness propagation is to minimize unrelated retrievals made for a given system request. Minimizing unrelated retrievals is particularly important on the word layer because of their amplifying effects during the piping of subsequent higher layers. The nature of the entire word, i.e., all of its event types taken together, is crucial on the word layer. This is not true on the sentence layer, however, where the package piping method identifies sentences containing word layer returns irrespective of other sentence event types or of their number and order. Therefore, a single word retrieved in response to a given system request that should not have been retrieved on the word layer could cause many unrelated sentences to be returned on the sentence layer with subsequent retrieval of unrelated paragraphs. The effect of the error provided by an inappropriate retrieval on the word layer, is thus amplified by the difference in search strategy between layers. A procedure used in minimizing the inappropriate retrieval is the elimination of stop words from the system request. Stop words are considered those words of little significance such as articles and prepositions. It is not desired to return a sentence layer entry merely because it happens to have definite articles or prepositions in the "right" places. Another aspect of minimizing retrieval errors involves a proper selection of the brightness threshold. It has been found that a brightness threshold of 0.75 on the word layer provides satisfactory retrievals for selected system requests. Accordingly, data base entries on the word layer must score at a brightness of 0.75 or higher to be eligible for retrieval. For controlling the effect of the "character" order in a query on the word layer, word layer pipewidth P is set to 0. A pipewidth of 0 means that like event types in the query and the data base entry words must have 0 displacement at a given query/data base entry position in order to be retrieved. Therefore, with a threshold of 0.75, 3/4 of the event types in the entry must have 0 displacement at a given query/data base entry position for the brightness at that position to reach the threshold value. In setting the pipewidth value to 0, the value P in the brightness relationship is set to 0. Additionally for providing control for the number of characters, the length correction factor (LCF), i.e., [MIN(QS,ES)]/[MAX(QS,ES)] is used to discriminate entries with prefixes, suffixes, inflections and other extra characters that modify or change the word meaning. Control of the pipewidth value in the brightness relationship is particularly advantageous in any sentence containing 2 or more query word packages regardless of the position of the query words within the sentence, since it would be advantageous for a piper to be able to "see" (search) the entire sentence entry when determining the SSD value so that all like event types in the data base entry contribute to the brightness at each query/data base entry position regardless of their displacement from a like query event type. This is accomplished in the brightness relationship by setting the pipewidth value P equal to the entry size for each query/data base entry pair. Setting the pipewidth value just described tends to minimize the formation of the series of discontinuous low brightness values for widely spread like event types in the data base entry and enhances the probability of producing an above threshold brightness for each query/data base entry pair. Based on the foregoing, the optimum strategy on the word layer is setting the pipewidth value set to 0 on the sentence layer setting the pipewidth value to the number of events in the sentence, and on the paragraph layer setting the pipewidth value to the number of events in the paragraph. Another aspect of package piping is the increase in efficiency over non-package piping methods. Efficiency is defined as a ratio of the number of calculations required to process a package query using the package piping method versus the number of calculations required to process the individual query event strings (formed by the combination of the events in the packages taken one at a time) represented by the package query using the non-package piping method, or: ##EQU3## Non-package piping of a package query requires that each query event string represented in the package query be piped separately. The total number of calculations required equals the total number of calculations needed to fill the chutes (i.e., generate the chute data array) plus the total number of calculations required to empty the chutes. As will be later discussed, a chute is a store created for each event type or package of a query for which there is one or more occurrences of a corresponding event type in the data base entry. For a given query event string piped against a data base entry, chute data generation requires that each one of the total data base entry event types E be compared to the query event types Q or E.Q calculations required to find all like event types and generate the chute data array. The query and data base entry are assumed to contain unique event types, and therefore there are no event types in the data entry that are not in the query. Thus, the E.Q comparisons generate Q chute data words, or one word per chute in Q chutes. Emptying such a set of chutes requires Q.sup.2 calculations. Since these calculations must be performed for each query event string represented in the query package, the total number of calculations required is (E.Q+Q.sup.2).n.sup.Q where: n is the number of events in the package. For the package piping method, chute filling also requires that each of the entry event types E be compared to each query event type. Since the package query as a whole contains Q.n unique event types, the total number of chute filling calculations required is E.q.n. These calculations will generate Q.n chute data words, n words per chute in Q chutes. To empty Q chutes containing n chute data words requires a total of Q.sup.2.n calculations. The total number of calculations required for package piping is thus (E.Q+Q.sup.2).n. Efficiency, therefore, equals: ##EQU4## Thus, the package piping method requires only: 1/.sub.n Q-1) of the calculations required by the non-package piping method. For example, a realistic package query on a sentence layer could consist of 15 packages of 3 event types, each against a data base entry of 45 unique event types. For the non-package piping method, the number of calculations required is equal to (900)(3.sup.14) or 12.9.times.10.sup.9 calculations, whereas, for the package piping method (900)(300)=2700 calculations are required. The efficiency of package piping makes this method of layered data base interrogation practcal while allowing reasonable processing times and a broad range for inexact search. Referring to FIG. 1, there is shown a data processing means 1012 controlled by a microcomputer 1010 in combination with computer programming as depicted in Tables 7 and 9 that forms an embodiment of the data management and data base interrogation system of the present invention. The microcomputer may be any one of a number of computers well known in the art, a microprogram computer or a specially designed computer and for purposes of this discussion. By way of example, the microcomputer is the microcomputer Model 8086 of the Intel Corporation. Coupled to the microcomputer 1010 by means of a data bus 1000 and a memory access controller 1020 is a data base memory 1021. The data base memory 1021 includes a plurality of conventional magnetic memory disk units 1022. To be explained later in more detail, a data base containing events arranged in entries is stored in the disk units of the data base memory 1021. Also coupled to the microcomputer 1010 is an operator-controlled console 1024 that includes a keyboard printer and CRT display. The microcomputer 1010 contains a program which supervises the operation of the data processing means 1012. The data processing means 1012 is designed to perform certain specialized data handling functions and determines a degree of match between a plurality of events of a query and a plurality of events of a stored data base. Under the supervision of the microcomputer 1010, 16 pipers 1016-1 through 1016-16, each of which includes a plurality of memory registers and logic blocks and a brightness generator 1018 that includes registers, read-only memory, and logic blocks execute the steps of the method for determining the degree of match. As shown in FIG. 1, the data processing means 1012 contains a plurality of identical pipers 1016 and thereby increase the data management and data base interrogation capacity of the overall data processing means. Only two of the pipers 1016-1 and 1016-16 are specifically shown, the other pipers 1016-3 through 1016-15 being indicated by dash lines. A lexical processor 2000 and a brightness value sorter and package generator 2010 are contained in a microcomputer 1010-1. The microcomputer 1010-1 is actually formed by hardware in microcomputer 1010 in combination with a computer program to be explained hereinafter. A query is composed and supplied to microcomputer 1010 by a user by means of the keyboard of the operator console 1024. The query is restructured in lexical processor 2000 and under the control of microcomputer 1010, the query is compared by means of application of a piping method executed in the microcomputer and the data processing means 1012 to form a criterion value for certain selected entries of the data base contained in the disk memory 1022. To this end, the microcomputer 1010 issues commands to the memory access control 1020 causing data base entries to be sequentially retrieved from the data base memory 1021 and sequentially compared in the microcomputer 1010 and the data processing means 1012 with the query to determine the degree of match therebetween. To be later explained, each query and entry comprises a plurality of serially positioned event types, and during the process of comparing, microcomputer 1010 forms for selected entries in the data base an array of data values wherein each data value represents the number of event positions between the order of occurrence and alignment of an event type in the query and a corresponding like event type in the data base entry. As a result of the comparison, a criterion value (brightness) is calculated by the data processing means 1012. The brightness values thus determined are used as weighting values associated with a corresponding array of data values for a subsequent comparison with the events of a stored data base on a next higher layer. Subsequent to forming the array of data values and brightness values, the microcomputer 1010 transfers the array via the data bus 1001 to the pipers 1016-1 through 1016-16. Piper control logic in each piper determines the number of pipers required to process the data of each particular array. It will be appreciated by those skilled in the art that the number of pipers disclosed in the present application, namely 16, is by no means restrictive and by suitable modification of the hardware an increased number of pipers may be utilized to carry out the method herein described. Determinative of the number of pipers required is the size of the query and data base entries compared. Under the supervisory control of microcomputer 1010, the pipers execute the steps of the piping method to determine the particular criterion value which as mentioned represents the degree of match between event types of a query and the event types of a data base entry. The pipers 1016-1 through 1016-16 supply to the brightness generator 1018 via data base 1001 the piping method generated variable required for the calculation of the criterion value. The criterion value formed in the brightness generator 1018 is a brightness value calculated from an equation having as inputs piper supplied data that represent the result of each processing cycle of the piping method. The brightness generator 1018 compares a newly formed brightness value with a previously formed brightness value replacing the previously formed brightness value with the newly formed brightness value when the newly formed brightness value exceeds the value of the priorly formed brightness value. Along with the brightness values, the brightness generator 1018 stores a corresponding positional value which identifies the alignment position of the query relative to the data base entry that gives rise to such calculated brightness values. As will be shown, the positional value is actually one of the data base entry values received by the pipers from the microcomputer 1010. Thus, at the completion of the piping method wherein all of the data values have been processed, the brightness generator 1018 returns to the microcomputer 1010 the highest brightness value and the position of the query relative to the data base entry at which the highest degree of match exists. More than one piper may be activated when the array of data values exceeds the capacity of a single piper. In the multiple piper arrangement, data is supplied to each piper from the microcomputer 1010 in a serial manner; that is, data is supplied to pipers 1016-1 then to pipers 1016-2 etc., until all the data from the microcomputer 1010 has been transferred to the pipers. Execution, however, of the piping method occurs in parallel, that is, each active piper simultaneously calculates the variables that are to be later processed by the brightness generator in generating the criterion value and positional value. B. GENERATION OF DATA ARRAY Prior to a discussion of the piping method, it is important to have an understanding of the generation of the data array to be processed by the method. Solution of the piping method requires that the data array be in a specified form and ordering. The data array to be processed by the piping method consists of data generated by the microcomputer 1010 and transmitted to the pipers 1016-1 through 1016-16 via the Data Bus. A discussion of the following concepts provides an understanding of chute data generation and processing: (a) the concepts of Entries, Events and Event types; (b) the concept of Query-to-Entry position; and (c) the concept of Layered Data Base. C. ENTRIES, EVENTS AND EVENT TYPES A query or entry consists of a plurality of events. An event is a number that indicates the order of occurrence of an event type within a query or entry. An event can also indicate the order of occurrence of a plurality of event types called a package. A package of event types consists of a plurality of event types associated with an event. Package size is the number of event types in a package. An event type is an item of data, such as a number or a symbolic representation of an item of data such as a number representing a letter, line segment or another entry, associated with a given event. An example of a layered data base illustrating such event types, events and entries is given in Table 1A. A data base entry file shown in Table 1A comprises on the word layer the sentences "THIS IS THE TIME. ONE DAY IS LIKE ANOTHER." Each word in each sentence is identified as an entry in the order of occurrence of the words in the sentences. Thus, the word "THIS" is identified as entry 1, the word "IS" is identified as entry 2, etc., up to the word "ANOTHER" which is identified as entry 8. Each entry is composed of event types, i.e., characters. Each event type in each entry has associated therewith a number called an event that indicates the order of occurrence of the associated event type within the entry. Thus, the word "THIS" which is identified as entry 1 is composed of four event types in the following order. Event type T, the first letter of the word "THIS", occurs at event 1. Event type H, the second letter of the word "THIS", occurs at event 2, and so on until all the event types have been so identified. D. QUERY-TO-ENTRY POSITIONS If the event types of an entry or query are visualized as occurring in the event order from left to right as shown in the word layer entries in Table 1A, then a query and an entry can be compared by aligning one under the other. The position of a query relative to an entry is defined as any horizontal alignment in which at least one event type of the query is positioned directly beneath, i.e., in alignment with, one event type of the entry. Position zero is defined as that position in which event 1 of the query is positioned in alignment with event 1 of the entry, event 2 of the query is positioned in alignment with event 2 of the entry, and so on. All other positions are numbered relative to position zero. Positions in which the query is to the left of position zero are assigned negative values, e.g., -1, -2. Table 1B shows a sample query and entry with the query occupying all positions relative to the entry in which at least one event of the query is in alignment with one event of the entry. In 1B, query size QS, the number of events of a query, equals 4, and entry size ES, the number of events of an entry, equals 5. For any given QS and ES pair, the number of possible positions equals (QS+ES)-1. A store is created for each event type or package of a query for which there is one or more occurrences of a corresponding event type in the entry and each such store is called a chute. Chute data is generated by the microcomputer 1010 for a given query/entry pair and contains information only on those positions of such query and entry in which at least one event type of the query is positioned in alignment with a corresponding event type in the entry. The positions -1, 1, and 2 shown in Table 1B satisfy this condition. For position -1, event 4 of the query is in alignment with event 3 of the entry. Both event 4 of the query and event 3 of the entry are associated with event type 1. Thus, at this query-to-entry position, corresponding event types are in alignment. Likewise, for position 1, event 1 of the query is aligned with event 2 of the entry, which causes event type 2 of the query and the corresponding event type 2 of the entry to be in alignment. Also for position 1, event 4 of the query is in alignment with event 5 of the entry, causing the corresponding event type 1 of the query and event type 1 of the entry to be in alignment. Position 2 causes event 2 of the query and event 4 of the entry to be in alignment. Both of these events are associated with a corresponding event type 8. All other positions of query-to-entry alignment; namely, positions -3, -2, 0, 3, and 4; do not cause the alignment of corresponding query event types and entry event types. E. CHUTE DATA GENERATION Each event type or package of a query for which there is one or more occurrences of the corresponding event type in the entry causes the generation of data for one chute. For example, if a query contains event type 63, and an entry to which the query is compared also contains event type 63 associated with one or more events of the entry, then data (to be explained) is generated for one chute. If an entry does not contain one event type corresponding to an event type or one event type of a package of event types in the query, then no chute is assigned for the unmatched query event type and no chute data is generated for that query event type. In each case in which a query event type has no corresponding entry event type, or in which at least one query event type of a package of query event types has no corresponding entry event types, the quantity 1.0 is added to M (M is initally set to zero for each query/entry pair). M is the number of event types or event type packages in the query for which there is no corresponding event type in the entry. M is used in calculating the criterion value which is a measure of the degree of match between a query and the entry. Data for a chute is generated in the following manner. If a query and an entry are aligned at the zero position, then subtracting the events associated with corresponding event types in query and entry provides those positions of query relative to the entry where such corresponding event types are in alignment, as for example with the query in the zero position (underscored) (see Table 1B) relative to the entry, the event type 2 of the query occurring at event 1 of the query has a corresponding event type occurring at event 2 of the entry. To cause these corresponding event types to be in alignment, the entire query must be moved one position to the right, i.e., to position 1. Alternately, this information can be determined by subtracting the query event, i.e., 1, of the query event type 2, from the entry event, i.e., 2, of the corresponding entry event type 2. The result 2-1=1 yields the query position relative to the entry position where the two identical event types are in alignment. For query event type 8 at event 2, the closest corresponding entry event type occurs at entry event 4. Referring again to Table 1B, event type 8 of the entry and query are in alignment when the query is at position 2. Subtracting the aforementioned query and entry event numbers also provides this information, i.e., 4-2=2. For query event type 1 at query event 4, corresponding entry event types occur at entry events 3 and 5. Subtracting the query event number from the entry event number yields 3-4=-1, and 5-4=1. Table 1B shows that shifting the query to position -1 results in the alignment of query event type 1 with the corresponding entry event type located at entry event 3. Table 1B further shows that shifting the query to position 1 results in the alignment of query event type 1 with the corresponding entry event type located at entry event 5. Query event type 13 at query event 3 does not have a corresponding entry event type at any entry event. Therefore, no position numbers can be generated, and the quantity 1.0 is added to M. As previously discussed, the chutes contain the position numbers generated by subtracting the event numbers of corresponding query and entry event types, as discussed above. Since these numbers represent the displacement (distance), where referenced to the zero position, between the occurrence of an event type in the query and one or more occurrences of the corresponding event type in the entry, these numbers are called distances and are placed in the distance (D) field of a chute data word (see FIG. 13I. Chute data for a given query/entry pair consists of a separate series of one or more chute data words for every query event type or package for which there is one or more occurrences of a corresponding entry event type. This means that if a query contains five event types that have corresponding event types in the entry, then chute data would contain five separate series of one or more chute data words. The sample query shown in Table 1B contains three event types, i.e., 2, 8, and 1, that have one or more occurrences of a corresponding event type in the entry. Therefore, three series of chute data words are generated for this query/entry pair. For example, query event type 2 generates a distance of 1, query event type 8 generates a distance of 2, and query event type 1 generates a distance of -1 and a distance of 1. Table 1B depicts how this data is arranged in three chutes. A chute data word (see FIG. 13I) contains the distance field in bits 0-7 and a weighting value field in bits 8-14. A weighting value (to be discussed in the section entitled "Layered Data Base") associated with a given distance, has a value between zero and 1. The weighting values are processed along with the distances in arriving at a criterion value which is a measure of the degree of match between a query and entry. F. LAYERED DATA BASE One way in which package events and weighting values may arise is in the interrogation of a layered data base such as that depicted in Table 1A. Two sentences stored in the data base are: "THIS IS THE TIME. ONE DAY IS LIKE ANOTHER". Note that the entry "IS", common to both words, is stored only once. Assume that the layered data base of Table 1A is interrogated by a given three-word query sentece. The first word of the given query sentence is compared with each entry on the word layer. A package of these word layer entry numbers is thereby formed, and the associated criterion values assigned as weighting values. This package is assigned an event number of 1, since the package was generated by the first word of the given query sentence. An example of such a package is listed under the numeral 1 shown in Table 1C. Word entries 1 and 4 (see Table 1A-word layer) exist in the package because the assumed associated criterion values, i.e., 0.5 and 0.6 respectively, were greater than zero. A criterion value of zero indicates no match at all between the event types of a query word and the event types of an entry word. Likewise, comparing the second word of the given query sentence causes word entry 6 at an assumed criterion value of 0.8 to be retained and assigned an event number of 2. Word 3 of the given query sentence causes word entry numbers 3 and 8 at an assumed criterion value of 0.7 and 0.5 respectively, to be retained as package event 3. This package query, consisting of individual words of the given query sentence compared with the word layer, is now used to query the sentence layer. The criterion values returned during the word layer piping are used as weighting values during sentence layer interrogation. Thus, interrogating a layered data base results in the formation of package queries and weighting values associated with each event type. The foregoing method of comparison and generation of criterion values thereby determining the degree of match between an entry and a query, describes the process heretofore identified as piping. Table 1D contains a sample example of a sentence package query of 11 package events at the zero position with a sentence entry of 24 events. The sentence package query represents 5.times.4.times.6.times.4.times.3.times.4.times.2.times.4.times.5.times.5. times.4=4,608,000 possible sentences to match against the sentence entry. The chute data generation steps illustrated in Table 1E through 10 and subsequent method steps illustrated in Tables 2A-2N identifies which one of these 4,608,000 possible sentences is the best match, the degree of such match (criterion value) and the position at which this best match occurs. The chute data is generated in the same manner as shown in Tables 1A-1C, with the exception that the microcomputer 1010 matches as many events as possible in a given package to entry events. This process is illustrated in Tables 1E through 10. Note that the order of events in a package is irrelevant, as is the order in which the microprocessor 1010 attempts to match the package query event types with the corresponding entry event types. Chute data, however, is placed into the chutes with the position/weighting value pairs arranged in increasing monotonic order from word 1 of the chute. The number of the chute in which the position/weighting value pairs are placed is arbitrary. In the example, however, the matching process proceeds from the lowest numbered to the highest numbered query/event, and the chute data thus generated is placed sequentially in the chutes starting from the lowest numbered chute. The processing of the query/entry pair thus proceeds from the leftmost position with corresponding event types aligned to the rightmost position with corresponding events aligned. The maximum number of data words that can be prepared for a given chute is 127 in the current implementation arranged by the microcomputer in groups of 15 data words plus an NMD command word. Chute number 1 contains that data generated for the first (from the left) query package event found to have corresponding event types in the entry. Likewise, chute number 2 contains that data generated for the second query event package found to have corresponding event types in the entry, and so on through the last query event package found to contain corresponding event types in the entry. The maximum number of chutes possible in data processing means 1012 is 127 (16 pipers). Referring to Table 1E, the entry is scanned to find event types matching any of the event types contained in query event 1 package. A match is found for query event type 8 at entry event 5. The distance data is obtained as previously described by subtracting the event number of the query package containing a given event type from the event number of the corresponding entry event type (5-1=4). A corresponding entry event type is also found for query event type 21 at data base entry event number 9. In each case, the weighting value associated with the query event type being matched is paired with the distance data. The complete data for chute number 1, then, is 4/0.5,8/0.6. Referring to Table 1F, the microcomputer finds corresponding event types in the entry for event types 21, 360, and 52 of query package event number 2 at entry events 9, 11, and 7 respectively. The distance for each is 7 (9-2), 9 (11-2), and 5 (7-2). The quantity 2 is subtracted in these cases because the correspondence occurs with query event number 2 event types. Chute number 2 data is therefore 5/0.4,7/0.7 and 9/0.8. Referring to Tables 1G through 10, the same operations are carried out for each query package event containing at least one event type that has a corresponding event type in the entry. In Table 1J, query event package 6 contains no event types that have a corresponding event type in the data base entry. In this case, no chute is created, and a 1 is added to the quantity M (missing event count). The pipers, as demonstrated in Tables 2A through 2N, process the chute data generated in Tables 1E through 10, using the piping method described below. In effect, the piping method does the following: (a) Detects the leftmost (smallest) unprocessed position of a given query-to-entry in which at least one event type of the query is in alignment with one event type of the entry; (b) Measures and totals the minimum distances between all corresponding event types of query and entry at the position detected in (a); (c) Totals the weighting factors associated with the distances totaled in (b); and (d) Uses the totals computed in (b) and (c) and the value of M (missing events) to compute brightness, a criterion value representing the degree of match between the given query and entry at a detected position. A further example of textual material to be formed in a layered data base stored in the data base memory 1021 is shown in Table 1P. For purposes of the present discussion, the textual material comprises two paragraphs that were selected from an article from a trade publication concerning management information systems. The textual material is stored in the data base memory 1021 in a multiple layer format having a specific hierarchy. More specifically, the textual material is organized first on a word layer, then on a sentence layer and finally on a paragraph layer. Although the present discussion involves the foregoing described layers, it should be noted that at least with regard to textual material additional layers may be included such as, for example, pages and chapters of the complete text. The actual bit representations of the data, i.e., the characters that comprise the textual material, exist only on the word layer. The sentence and paragraph layers, as will be shown, are composed of sequence numbers representing only entries from the next lower layer ordered and to represent the sentences and the paragraph organization of the textual material. The data base is formed from textual material supplied by way of control console 1024 and formatted into the layer hierarchy by microcomputer 1010. The sentences of Table 1P have been numbered, i.e., the number appearing in the brackets at the beginning of each sentence, to aid in subsequent analysis. Tables 1Q, 1R and 1S are used to illustrate the general form of data as it would appear on the word layer, sentence layer and paragraph layer respectively. On each layer, the numbers preceding the slash indicate the number of events in the entry. The numbers in parentheses above each entry are the order of occurrence (sequence numbers of the entries on the layer). The sequence numbers are used as the event types on the next higher layer. The sequence numbers representing event types are implied in increasing numerical order beginning with the first event type. Thus, within each entry, events are implied beginning with one for the first event type to occur following the slash and ending with the last event type numbered the same as the number preceding the slash. For example, the first entry on the word layer, 12/corporations, consists of 12 events as shown in Table 1Q. The first entry on the sentence layer, for example, contains 13 events as shown in Table 1R. Thus, the number 5 in brackets above event number 1 indicates the fifth sentence. The 13 events in the entry indicate that 13 words comprise the sentence, and the event types listed under each event indicate the word or the order of occurrence of that word as it first appears in the original text. Accordingly, event type 1 representing the word "A" or the first word of sentence 5 was the 54th unique word appearing in the original text. The second event type 56 represents the word "MIS" which was the 56th unique word in the original text. The event types, therefore, completing the remainder of sentence 5 represent the order of occurrence of that event type as it first appeared in the original textual material. The word layer data of Table 1Q(A) illustrates each word in symbolic character form, i.e., alphabetical letters. The microcomputer 1010, however, converts the alphabetical characters into their ASCII code equivalents such that the stored data on the word layer comprises a series of word entries whose event types are numerical representations of the alphabetical letters. In ASCII code, the letter A is equivalent to the number 65. Each proceeding letter in the alphabet has an ASCII equivalent indexed by 1, so that: B=66, C=67, etc. The words on the word layer are converted accordingly, and the letters in the word are represented by their ASCII equivalent. Table 1Q(B) shows the stored data base on the word layer containing the ASCII converted words. Each horizontal string of numbers represents a data base word. The first number of each string represents the number of events in the word followed by the ASCII equivalent for each letter of the word. The "=" sign after the number string has been included to indicate the word following the sign is equivalent to the number string. The first entry on the paragraph layer, as shown in Table 1S, contains 8 events, each event representing a sentence as they appeared in the original text. The foregoing described layered data base is interrogated by a user inputed query applied at control console 1024. For the purposes of this example, it is assumed that a system user wants to know what information the data base contains concerning the relationship of data processing managers to management information systems, and thus, inputs as an example the following free-form system query, i.e., THE ROLE OF THE DP MANAGER IN MIS, at the control console 1024. The user also enters an inexactness criterion value into the microcomputer 1010 by way of the keyboard of the control console 1024. For purposes of this example, the inexactness criteria was selected at 50%. As will later be explained, the inexactness criteria provides a threshold value such that responses having a degree of match below such threshold value are not returned to the user. The request indicates that the user is interested in any statements in the data base on the role of the DP manager in management information systems. Thus, any sentence or phrase matching the system request to the indicated degree of inexactness will be returned along with its imbedding paragraph. Referring now to FIG. 14, there is shown an overall flow diagram representing the sequence of operations involved in providing a data processing system response to a user inputted query. The query is inputted to microcomputer 1010 by a user at the control keyboard of control console 1024. Such request is shown at the block indicated as 1 in the flow diagram. Under the control of the microcomputer 1010, the query is processed by the lexical processor 2000. Accordingly and as shown in blocks indicated at 2 and 3 of the flow diagram, the lexical processor 2000 receives the query request from the microcomputer 1010 and first records the order of occurrence of the word entries in the request. To this end, word entry "THE" is indicated as entry 1, word entry "ROLE" is indicated as entry 2, word entry "OF" is indicated as entry 3, word entry "THE" is indicated as entry 4, etc. (see Table 1T(A)). Next, under the control of the microcomputer 1010, the lexical processor 2000 searches for and removes non-standard characters such as, for example ampersand signs. Since none such non-standard characters exist in the query, none are to be removed. The lexical processor 2000 next deletes stop words from the query. Stop words are considered those words of little significance in the formation of a query, and their removal causes the speed of solution of a query against a data base entry to be increased. Stop words are contained in a stop word list or dictionary containing approximately 380 words. Examples of words contained in the stop word list that may be stored in the lexical processor 2000 are: a, and, be, being, into, often and upon. The lexical processor 2000 removes the entry 1, i.e., the word "THE", entry 3, i.e., the word "OF"; entry 4, i.e., the word "THE"; and entry 7, i.e., the word "IN". The remaining entry consists of entry words 2, 5, 6 and 8, i.e., "ROLE", "DP", "MANAGER", "MIS", respectively (see Table 1T(B). Note that the remaining significant word entries retain their sequence numbers in relation to the deleted stop words. Each remaining word of the system request is now piped as a separate query against the entries in the word layer. Thus, each of the four remaining query words is piped against each of the 152 words that comprise the data base for this data base entry. In accordance with the method described in the section E, entitled, CHUTE DATA GENERATION, generation of chute data for a given query/entry pair envolves, in effect, positioning the first event type of the query and the first event type of the data base entry and determining the displacement difference between like event types in the query and in the data base entry. The microcomputer 1010 forms the distance between like event types in the query and the data base entry and forms a chute array which comprises a unique chute for each event type of the query having a like event type in the data base entry. The chute contains a value that represents the distance between like events in the query and data base entry. The foregoing operations of transferring the formatted word layer query to microcomputer 1010 and forming the chute data array is indicated at blocks 4 and 5 of FIG. 14. Additionally and as shown at block 4, the pipewidth value is set to 0 by the microcomputer. Under the control of the microcomputer 1010 and as indicated at block 6 of FIG. 14, the just formed chute data array is supplied to the data processing means 1012 for processing for determining the degree of match, i.e., the brightness between the query and data base entry pair producing such data array. Upon processing of the chute data array by the data processing means 1012 and indicated at blocks 7 and 8 of FIG. 14, a criterion value is returned to the microcomputer 1010 via data bus 1001. It should be noted that the brightness returned represents the position of best alignment between the events of the query and the events of the data base entry. The microcomputer 1010 transfers the just formed brightness value in association with a query event and data base entry event forming such brightness value to the brightness value sorter 2010. Under control of the microcomputer 1010, the data processor 1012 determines the position of best fit, and therefore brightness with the remaining data base entries on the word layer. This is shown in the block indicated at 10 of FIG. 14. The brightness value calculated for the respective query and data base entry pair is compared to a brightness threshold value in the brightness sorter 2010. Returns that have brightness values below a predetermined threshold value are disregarded. As shown in the block indicated at 11 of the flow diagram, those returns whose brightness values that exceed the threshold value are maintained and sorted in descending order according to their brightness values. Thus, a query word piped against the entry words stored in the data base may provide multiple returns, each of such returns having corresponding yet different brightness values. The multiple returns are defined as "packages". Each package contains all the data base entries which, when compared to a query, provides a degree of match that exceeds the threshold value. Table 1U is a tabulation of the word layer piping results for the example of the query shown in Table 1T(B) and the data base word layer shown in Table 1Q. The first row of the Table indicated by Word Entry lists the words of the query and the corresponding query word sequence number. Under the heading Word Entry, a vertical list of numbers from 1 through 152 is indicated. The Word Entry column of the Table lists each sequence number of each of the word layer entries in the data base. The next four columns, each column corresponding to a different one of the query words, lists the threshold or above threshold brightness achieved by each of the word layer data base entries against each of the four queries. As indicated in Table 1U, none of the 152 entries on the data base word layer achieves a brightness at or above the threshold when compared to the query word "ROLE". The data base word 24, i.e., "DP", matches query word 5, i.e., "DP", exactly but no other words score high enough to exceed the brightness threshold. Data base word 8, i.e., "MANAGERS" is an above threshold match for the query word 6 "MANAGER", and data base word 57, i.e., "MANAGER" is an exact match for the query word MANAGER. Data base word 56, i.e., "MIS" exactly matches query word 8, i.e., "MIS" and data base word 108, i.e., "SMIS" achieves a brightness which is equal to the brightness threshold, i.e., 0.75 against query word 8. Since only 3 of the 4 query words produced packages containing entries with a match equal to or greater than the threshold value, a 3 package data array is formed from the word layer returns. Thus, a 3 column array of packages shown in Table IV represents the packages formed from the word layer returns. As shown in Table 1V, only 3 packages are generated, i.e., a first package corresponding to query word 5 indicating a match with data base entry word 24 at a brightness of 1.0, a second package corresponding to query word 6 indicating a match with data base entry word 8 at a corresponding brightness of 0.87 and a match with data base word 57 at a corresponding brightness of 1.0, and a third package corresponding to query word 8 indicating a match with data base word 56 at a brightness of 1.0, and data base word 108 at a brightness of 0.75. An empty package, although not shown in Table 1V, is formed for query word 2, i.e, ROLE, indicating no matches with any word in the data base above the threshold value. Under the control of the microcomputer 1010, the brightness sorter and empty package remover 2010 removes the empty packages produced as a failure to locate a data base entry providing a match with the query word "ROLE". Thus, as shown in the box indicated at 12 of FIG. 14, the empty package remover 2010 eliminates the empty package corresponding to query word 2. The packages are characterized in that each package receives the sequence number of the query word that generated it. This preserves the order of the data base entry information of the data processing system request when performing sentence layer piping. The piping of each of the remaining query words to form all the packages is shown in the block indicated at 13 of FIG. 14. Under the control of the microcomputer 1010, the lexical processor 2000 returns by way of transfer bus 2012 the sentence layer query in the form of the 3 packages generated on the word layer. This is shown at the block indicated at 14 in FIG. 14. Again, under the control of the microcomputer 1010, the packages formed as a result of piping on the word layer are piped against each of the sentences of the data base entry on the sentence layer. Thus, the 3 packages formed on the word layer are piped against each of the 15 sentences on the sentence layer. At block 14, the pipewidth value P is set by the microcomputer 1010 to equal the number of events in the present data base entry. A chute data array is formed by the microcomputer 1010 as shown in the block indicated at 15 of FIG. 4 for each comparison of the packages with each of the 15 sentences. Each data array under the instruction of the microcomputer 1010 is supplied to the data processing means 1012 for reduction and determination of the corresponding brightness value for each of the 15 sentences. To this end and by way of example, a chute data array formed in a microcomputer 1010 with regard to comparing the 3 packages and sentence number 5 is presented in Table 1W. As previously described for the word layer, the microcomputer 1010 forms a chute data array representing the distance between like event types in a query and a data base entry. Thus, for the query word "DP", the difference between the event 24 in the query and a like event 24 in sentence 5 is equal to 4, that is, the difference between the position of the event 24 in the sentence, i.e., 9, and the position of the event 24 in the query, i.e., 5. Similarly, for the query word "MANAGER", the difference between the position of the event type 57 in the query and the event type 57 in sentence 5 is equal to -3. For query word "MIS", the difference between the position of the query event 56 and the position of the event 56 in sentence 5 is equal to -6. Since each of the events in the query has a like event in the entry sentence 5, 3 chutes will be formed, i.e., chute 0, chute 1 and chute 2. As shown in Table 1W, each of the events in each query package (as shown by the interconnecting line) has a like event type in the entry sentence. Correspondingly, chute 0 contains the value equal to the difference between the order of occurrence in the query of query word "DP" and the order of occurrence of the data base entry word "DP" in sentence 5. Chute 1 contains the value equal to the difference between the order of occurrence in the query of query word "MANAGER" and the order of occurrence of the data base entry word "MANAGER" in sentence 5. Chute 2 contains a similar difference value relative to query word "MIS". Also as shown in Table 1W, associated with each of the difference values is a brightness value associated with the entry number on the word layer produced by piping in the word layer. Thus, for example, since entry event 24 matched the query word "DP" with a brightness of 1.0, the brightness of 1.0 is carried along with the corresponding associated difference in the just formed chute data array. Consequently, the brightness values determined on a lower layer in the present example, the word layer, are propagated and form a part of a chute data array on the next higher level, for example on the sentence layer. Similarly, the brightnesses for entry event 57 and entry event 56 are correspondingly propagated in the newly formed chute data array. Under the control of the microcomputer 1010 the chute data array is transferred to the data processing means 1012 for execution of the piping method. This step is shown in the box indicated at 15 of FIG. 14. As previously described, the data processing means 1012 will return to the microcomputer 1010 the position of the query relative to the data base entry that produces the maximum brightness for that entry. Thus, for sentence 5, the brightness at position 3 is found to be maximum at a value of 0.76. The brightness threshold on the sentence layer is modified by a brightness correction factor and length correction factor. Accordingly, the corrected sentence layer threshold brightness is modified to be 0.58. Table 1X represents the results of sentence layer piping where each sentence entry has been processed by the microcomputer 1010 and the data processing means 1012. Associated with the row indicated by Sentence Entry, the 3 packages formed during word layer piping by the query words is shown. Under the heading Sentence Entry, a vertical list of numbers from 1 through 15 is indicated. The next column of the Table lists the threshold or above threshold brightness value achieved by the query packages with each of the data base entry sentences. As indicated in Table 1X, sentence 3 and sentences 5 through 8 achieve a brightness score at or above the 0.58 brightness threshold. These returns from the sentence layer form a single package paragraph layer query. Only one package is formed because a single sentence package query caused them to be returned, that is, only one sentence comprises the query. If a 2 sentence query was used, then a 2 package set, that is a package per query sentence would be returned by the microcomputer 1010. The results shown in Table 1X depend upon the brightness values propagated from the word to the sentence layer. Sentence 4, although containing event types "MANAGERS" and "DP", does not produce a brightness value that exceeds the threshold value because the reverse order and wide separation of the words in the sentence causes the brightness to be below threshold. The sentence layer query formed in the 3 packages shown in Table 1W provided the number of analogue sentences equal to the product of the number of entry events in each one of the packages. Thus, the 3 package sentence layer query provides 1.times.2.times.2 equals 4 analogue sentences or query strings. Each sentence is formed with a different combination of each of the words in the packages. A first sentence may be formed of entry event type 24, entry event type 8, and entry event type 56. A second sentence may be formed with entry event type 24, entry event type 8, and entry event type 108. A third sentence may be formed with entry event type 24, entry event type 57, and entry event type 56. The last sentence may be formed by entry event type 24, entry event type 57, and entry event type 108. From the 4 sentences formed, sentence 3 with all words carrying a propagated brightness of 1.0 is the only query event string that is an exact analogue of the system request. Thus, the sentence formed of entry events 24, 57 and 56 was selected by the brightness value sorter 2010 for piping on the sentence layer. The results of piping on the sentence layer are returned to the microcomputer 1010 for piping against the data base entries on the paragraph layer. To this end, the paragraph layer is next interrogated using the query derived from the sentence layer returns which, in the case of the example selected, consists of a single package as shown in Table 1Y. This package query represents all sentences identified on the sentence layer containing word strings sufficiently close to sentence package query event strings to score at or above the sentence layer brightness threshold. Since these sentences occur in the same package, they are considered equivalents in that they are above threshold and represent information fitting the 50% inexactness criterion as initially selected for this example. At the paragraph level of piping, the method selects or rejects paragraphs for retrieval on the basis of simply presence or absence of at least one sentence from paragraph package query. This occurs because the data processing system request, i.e., the query, is in the form of a single sentence. Therefore, the search objective is to find matching sentences and return them to the user at control console 1024. The paragraphs either contain one or more of these query sentences or they do not. Therefore, any paragraph containing at least one of these matching sentences scores an uncorrected brightness of 1.0, all others score 0. In general, a layered data base system interrogated by the package piping method provides inexact search up to and including the layer corresponding to the organizational level of the user's request. For example, if the original request had been a paragraph (a plurality of sentences) there could have existed a multipackage paragraph query, and the package piping method would have analyzed each paragraph layer entry for both the existence and the order of occurrence of paragraph query event types in relation to a selected brightness threshold. The paragraph entry brightness would thus have fallen on an inexactness continuum. Conversely, had the system been a single word, then the search criterion would have degenerated to a binary function on the sentence layer. An inexact search would have been restricted to the word layer. The generation of the chute data array used for the paragraph layer is the same in theory as for the other layers and is shown in the blocks indicated at 18, 19 and 20 in FIG. 14. The package generated in the sentence layer piping is now piped against the paragraph layer entry. Table 1Z(A) illustrates the process for entry 1 on the paragraph layer. The horizontally aligned numbers 1 through 8 under the bracketed 1 represent the 8 sentences in the first paragraph, each sentence being identified by a unique sequence number. The packages aligned vertically in the Table represent the results of piping on the sentence layer. Event types and the packages are compared with the like event types in the entry, and such is shown by the interconnect lines between such like packages. The differences are formed between the order of occurrence of the events and the package and the like events in the entry in a manner to that previously discussed for the word and sentence layer. The resulting chute data array requires only one chute since only one query package is involved. Thus, for chute 0 the difference between the positions of an event in the query and a corresponding like event in the entry are determined. To this end, the difference between the position of event 3 of the query and event 3 of the data base entry is the numerical difference between 3 and 1 or 2. Since an exact match between an event in the query and a data base entry exists, the brightness value associated with the query event is carried along with the corresponding difference. Similarly, for query event 5, the position of data base entry event 5 having an exact match therewith is determined to be 4. Since an exact match occurs, the brightness value of 0.76 associated with the query event 5 and the data base entry 5 is carried along with the associated difference between the query event position 1 and the data base entry event position 5. In a like manner, the remainder of chute 0 is filled. The microcomputer 1010 transfers the chute data array to the data processing means 1012 to determine the position of best fit which will be the position at which the highest propagated brightness is detected. The results of the processing of the above chute data array identifies paragraph 1 at a brightness of 0.86 as the paragraph to be retrieved and returned to the system user (shown at the block identified at 21 of FIG. 14). Table 1Z(B) summarizes the results of piping on the paragraph layer. Thus, upon examination of the Table, paragraph 1 is found to be selected with a brightness of 0.86, and paragraph 2 is found to not have a brightness value that exceeds the threshold. Thus, package piping utilizes all event strings represented by the series of synonym packages returned from the first layer piping as potential queries against the second layer, and does so within reasonable processing time constraints. Similarly, the series of synonym packages returned from the second layer piping has potential queries against the third layer, and is done so within reasonable processing time constraints. Brightness propagation is achieved by associating the lower layer of brightness score with each returned lower layer synonym placed in a higher layer package. The method equalizes all returned high layer entries for the match of their corresponding event types with the system or user request, and thus avoids treating all lower layer returns as prefect matches when piping the next higher layer. The flow diagram of FIG. 15 illustrates the overall operation of the chute filling routine in providing the chute data array to the data processing means 1012. The Figure shows 2 processing phases: INITIALIZATION and CHUTE FILLING. In the Initialization phase, the chute filling routine receives from the microcomputer 1010 the query event data and data base entry event data corresponding to the present layer being piped. Additionally, the chute filling routine receives from the microcomputer the number of packages, i.e., NOP, contained in the present query, the maximum allowable packages (a system constraint), i.e., NOPMAX, the maximum allocated storage location in the microcomputer 1010 allocated for storage of chute data (a system constraint), and initializing flags in the chute filling routine (to be later explained) for comparing the first event of the first query package to the first event of the data base entry corresponding to the present layer being piped. In the chute filling phase, an event type of the data base entry is compared with an event type of the query entry. As a result of initializing the appropriate flags, the first comparison involves the first event of the first query package and the first event of the data base entry. If a match is found, the distance representing the difference between the order of occurrence of the event in the query and the event in the data base entry is stored in a memory storage location in a chute array along with the data base event providing such match and the associated brightness. The word format used in the storage location is in accordance with the word formats shown in FIG. 13. Additionally, the location of the just stored data value in the chute array is stored in a chute pointer register, i.e., CP. If a match is not found , the present data base entry event is compared to the next event in the package. This step is repeated until all of the events of the package have been compared with the present data base entry. This innermost loop includes blocks 2, 3, 4, 5 and 6 of FIG. 15. Similarly, all the events in the data base entry are compared to each of the events in the first package. This intermediate loop further includes blocks 7, 8 and 9. Next, the process described in the first and intermediate loops is repeated for each of the packages in the query. This outer loop further includes blocks 10, 11 and 12. Subsequent to comparing all of the events of a query to all of the events of a data base entry, a check is made to ascertain whether any match has been found. If a match has been found, the routine under the control of the microcomputer 1010 transfers the chute data array to the data processing means 1012 for processing. If no match has been found, control is returned to the microcomputer 1010. These functions include blocks 13, 14 and 15. Now referring to FIG. 16 and Table 7, the forming of the chute data array provided under the control of the microcomputer 1010 will be discussed. The chute filling routine shown in Table 7 and the flow diagram of which is shown in FIG. 16, are initiated following the transfer of the query from lexical processor 2000 to the microcomputer 1010. The object of the chute filling routine is to form the chute data array including the differences and associated brightness values in preparation for transfer of such chute data array to the data processing means 1012 for processing. With reference to the paragraph numbers corresponding to the flow blocks of FIG. 16 and the routine statement line numbers of Table 7, the functions performed by the chute filling routine are as follows: 16-1, Table 7, Lines 2-4 Initial conditions for subroutine variables are set, namely, "MATCH", used to indicate the existence of a match between a query event and a data base entry event is set to false, a chute index I indicating the location of a specific chute in a chute table is set to 1, and QPTR a query data location index is set to 0. 16-2, Table 7, Lines 5-8 A variable NOP representing the number of packages in a query is checked against NOPMAX representing the maximum allocated number of packages for the system. NOPMAX may be increased by increasing the storage capacity of the microcomputer 1010. The variables NOP and NOPMAX are supplied to the chute filling routine by the microcomputer 1010. If NOP is greater than NOPMAX, the subroutine returns control to the microcomputer 1010 and a corresponding indication is provided to the system user. If NOP is not greater than NOPMAX, the subroutine takes the NO branch. 16-3, Table 7, Line 10 A variable J indicating the present package against which the data base entries are compared is set to 1. 16-4, Table 7, Lines 12-14 The number of events in the query package is stored in variable NPQ, from the first data value (QPTR=0) in the query data array, QUERY transferred from the microcomputer 1010 to the chute filling routine. The variable QPTR is then indexed by 1 and saved in a temporary storage location QSAV. A temporary variable C1 is set to 0. 16-5, Table 7, Line 15 The number of events in the first package is checked, and if equal to 0, the subroutine takes the YES branch for terminating processing the present package. If the number of events in the first package is not equal to 0, the subroutine takes the NO branch. 16-6, Table 7, Line 17 If NQP is less than 0, an error is indicated and the subroutine returns control to the microcomputer 1010. If NQP is not less than 0, the subroutine takes the NO branch. 16-7, Table 7, Line 22 K an entry event index indicating the number of the entry event is set to 1. 16-8, Table 7, Lines 24-26 A distance D is formed between the event index K representing the position of the event in the data base entry and J representing the position of the event in the query entry. The event type of the data base entry stored in data base array ENTRY at location K is stored in temporary variable TEST. The value in QSAV is transferred to QPTR and a 0 is placed in a temporary variable L. 16-9, Table 7, Line 29 The event type of the query is compared to the event type of the data base entry to determine the existence of a match. If there is no match, the routine takes the NO branch and if a match exists, the routine takes the YES branch. 16-10, Table 7, Line 31 For the existence of a match, a TRUE is transferred to variable MATCH. 16-11, Table 7, Lines 32-33 The variable C1 is tested to determine whether the present match is the first match found for this package. If C1 equals 0, the routine takes the YES branch and the chute table index I is transferred to C0. If C1 is not equal to 0, the routine takes the NO branch. 16-12, Table 7, Lines 34, 38 The chute index I is stored in a temporary variable C1 the distance value D, the entry event type now stored in TEST, and the corresponding brightness value stored in QUERY at (QPTR+1) is stored since I-1 in the first chute in the chute table. The value I is indexed by 1. 16-13, Table 7, Lines 39-43 The chute index I is compared to IMAX, the microcomputer 1010 supplied value indicating the maximum length allocated to the chute table. The length of the chute table may be increased by increasing the size of the microcomputer 1010 in the memory area allocated to the chute table. If I is greater than IMAX, the routine takes the YES branch and returns to microcomputer 1010. If I is not greater than IMAX, the routine takes the NO branch. 16-14, Table 7, Line 44 QPTR is incremented by 2 in anticipation of either identifying the next event in the query package or the number of events in the next query package. L is incremented by 1. 16-15, Table 7, Line 27 L is compared with the number of events of the present package. If L is less than NQP, the subroutine takes the YES branch and loops to L3. At L3, the event type of the entry is compared to the next event type in the query package. The steps between L3 at 15-9 and L3 at 15-15 are repeated until all of the event types in a package have been compared to the event type of the data base entry. At L equal to or greater than NQP indicating that all the events in a package have been compared to the data base entry, the routine takes the NO branch. 16-16, Table 7, Line 22 The entry index K is incremented by 1 to indicate the next data base entry to be compared with the events of the present package. 16-17, Table 7, Line 22 The data base entry event index K is compared to the zeroth data value in the entry string. The zeroth data value indicates the number of event types in the data base entry. If K is greater than ENTRY (0), all the event types of the data base entry have been compared to the present event type of a query, and the routine takes the NO branch. If K is less than or equal to ENTRY (0), the routine takes the YES branch and loops around L2 for each event in the data base. 16-18, Table 7, Lines 47-49 The value of C1 is compared to 0. If C1 equals 0, the routine takes the YES branch. If C1 is not equal to 0, the value I is stored in C0. 16-19, Table 7, Lines 50-53 The value of the chute entry I presently stored in C0 is transferred into the chute pointer register CP to identify the location, i.e., top of chute, corresponding to the Jth. query entry presently being compared with the events of a data base entry. An end of chute flag, i.e., EOC, marking the end of the chute data for the query event being processed is transferred to the I location in the chute array. Flag C0 is set to 0, and the I and J flags are indexed by 1. 16-20, Table 7, Line 10 The number of the next package is compared to the total number of packages. If the present number is less than or equal to the total number of packages, the routine takes the YES branch and loops at L1 to re-enter the routine with the next query event package. If the present number of packages exceeds the total number of packages, the routine takes the NO branch. 16-21, Table 7, Lines 55-57 If match equals FALSE indicating no matches found between the query event types and the data base event types, the routine takes the YES branch and returns to the microcomputer 1010. If a match exists, the routine takes the NO branch for processing the chute data just formed in the data processing means 1012. An aspect of the present invention is that each return, resulting from piping the events of a query with the events of a data base layer is formatted into a form appropriate for piping on the next succeeding data base layer. Thus, the data stored in each of the data base layers, although containing different information is formatted identically, and thus the query is in a form independent of the nature or layer level. The overall speed of the interrogation process is thereby enhanced since a minimum of reformatting is required as each successive layer in the stored data base is interrogated. Thus, the results of piping a query on the word layer is in a form appropriate for piping on the sentence layer. The results of piping on the sentence layer is in a form appropriate for piping on the paragraph layer, and so on. However, in preparation for piping on the first layer (word layer), the query inputted by a user must be processed to accomplish certain "housekeeping" requirements. As previously discussed, housekeeping functions such as removal of non-standard characters and capitalization of all alphabetic letters is performed. A routine called "query pack" stored in the microcomputer 1010 is used to change the input format of the query into a form suitable for piping on the word layer. In performing the housekeeping functions, i.e., the removal of non-standard characters, several conventional and commerically available routines are utilized in the microprocessor 1010. For example, for deleting selected non-standard characters, a routine entitled: "tr-transliterate" developed by Interactive Systems Corporation and described in their User's Guide No. IS/1 published May, 1980 is utilized. Additionally, in the removal of stop words, conventional routines for comparing a group of characters in one list (query) against a group of characters in a stored list (stop words) is accomplished by a number of commercially available routines. For example, a routine entitled "dd-convert and copy a file" provided by The Interactive Systems Corporation is utilized in the microcomputer 1010 for comparing the words of a query to a stored list containing the stop words such that after a comparison is made, stop words are removed from the query. In addition to removing the nonstandard characters and the stop words, a ">" delimiter is placed just prior to the resulting query and a "<" delimiter is placed immediately following the query by the tr routine described above. With reference to Table 8, an example of a query transformed by the query pack routine into a format appropriate for piping on the word layer is described below. Consider the query: The role of the dp manager in mis. Initially this query would first be transferred to ROLE DP MANAGER MIS by capitalizing each of the letters and removing the stop words. Secondly, a ">" sign would be placed immediately in front of ROLE and a "<" sign would be placed immediately following MIS. The query pack routine would transform the query into the number string format shown in Table 8. Each number is contained in a unique field which, as will be described below, identifies the various elements comprising the query. For example, for the query ROLE DP MANAGER MIS, the first number shown in Table 8, i.e., contained in field 1, is the number of words in the query. Thus, the number 4 in field 1 indicates four words. The number 4 in the second number field, i.e., field 2, is the number of letters in the first word. Thus, the number 4 represents the four letters in the word ROLE. The third number, i.e., field 3, indicates the number of packages for the first event in the first word. Since there is only one event type, i.e., the letter R for the first event in the word ROLE, field 3 contains the number 1. The fourth number, i.e., field 4, is the ASCII value of the first letter of the first word. Thus, the ASCII equivalent for the letter R, i.e., 82 appears in field 4. The fifth number, i.e., field 5, is the brightness of the corresponding letter in the word. Since the letter appears the first time, a brightness value of 1 or a normalized value of 100% appears in field 5. The remaining three letters in the word, i.e., OLE, are represented by the ASCII equivalents 79, 76 and 69, respectively. Thus, the numbers contained in fields 3, 4 and 5 are repeated for each letter of the first word. The number in field 2 is repeated for each word of the query. Thus, the number 2, the fifteenth number in the query number string of Table 8, represents the number of events in the second word, i.e., DP. Similarly, for the words MANAGER and MIS, the corresponding fields contain the numbers appropriate to define the query words. Briefly and with reference to the simplified functional block diagram of FIG. 17, the operation of the query pack routine is as follows. As indicated at block 1, during initialization, selected flags and counters are set to 0. The first query character is read at block 2, and a check, at block 3, is made to determine the existence of an EOF (End of File) indicating the end of a data file. If an EOF is not detected, a check is made at block 4 to determine the existence of a ">" indicating the beginning of a new query. If a ">" is detected, a word count W is set at 0, at block 5, and the next character is read. The next character is checked, at block 6, to determine the existence of a "blank". If a blank is detected, indicating the commencement of a new word, the word count at block 7 is indexed by 1 and a word event count is reset to 0 and the next character is read. The next character is checked, at block 8, to determine the existence of a "<" indicating the end of query. If a "<" is not detected, the word event count, at block 10, is indexed by 1. At block 11, a representation of the character is stored in a data table called "OTAB". The representation is a series of 3 numbers in corresponding number fields. The first number is an arbitrary 1 for maintaining consistency with the query format. The second number is the ASCII equivalent of the character, and the third number is a 100 representing a normalized brightness of 1. The word event count is also stored representing the present number of characters in the query word. Each succeeding character is read, and its representation is stored in OTAB. If a blank is encountered indicating the beginning of a new word, the word count is indexed by 1 and the word event index is reset to 0. If the next character "<" indicating the end of the query or an EOF is detected, the contents of OTAB and the word count at block 9 is output, i.e., returned to microcomputer 1010. The output therefore returned to the microcomputer first indicates the total number of words in the query. The next series of numbers indicates the number of events in the first word followed by the ASCII representation of each character in the word. The series of numbers is provided for each succeeding word in the query. Referring to FIG. 18, Table 9, transforming a query by the query pack routine into the format appropriate for piping on the word layer shall be discussed. The query pack routine shown in Table 9 is initiated following the transfer of the query on the word layer from the lexical processor 2000 to the microcomputer 1010. With reference to the paragraph numbers corresponding to the flow blocks of FIG. 18 and the routine statement line numbers of Table 9, the functions performed by the query pack routine are as follows: 18-1, Table 9, Lines 4-7 Initial conditions for subroutine variables are set, namely, J, an index which contains the current location of the current character in the input query is set to 0. K, an index that contains the current location of the transformed character in an output table is set to 0. A counter W that keeps count of the words processed is set to 0, and a flag S is set to 0. 18-2, Table 9, Line 8 The character (indexed at J=0), in a query (located in a query table QS) is placed in temporary register C. J is indexed by 1. 18-3, Table 9, Line 8 The character stored in C is compared to an EOF (end of file) indication. An EOF indication signals the end of data base entries for a particular piping cycle. If an EOF indication is detected, the routine takes the YES branch. If an EOF indication is not detected, the routine takes the NO branch. 18-4, Table 9, Line 56 If an EOF indication is detected, a test is made to determine if any query words have been transformed, but not output by the routine. W not equal to 0 indicates that at least one word has been transformed. If no words have been transformed, W=0, and the routine takes the YES branch to return to microcomputer 1010. If W is not equal to 0, the routine takes the NO branch. 18-5, Table 9, Lines 58-60 Since W does not equal 0, the number of such words W and the content of an array OTAB containing the transformed query word are returned to the microcomputer 1010. 18-6, Table 9, Line 10 The contents of C is checked for the existence of a ">" indication. If a ">" is detected indicating the beginning of a query word, the routine takes the YES branch. If C is not equal to ">", the routine takes the NO branch. 18-7, Table 9, Line 12 The flag S is set to 0. 18-8, Table 9, Line 14 The flag S is compared to 0. If S equals 0, the routine takes the YES branch. If S is not equal to 0, the routine takes the NO branch. 18-9, Table 9, Line 62 A return statement for returning to the microcomputer 1010. 18-10, Table 9, Line 19 The flag C is compared to a "<" indication. If S equal "<", the routine takes the YES branch. Otherwise, the routine takes the NO branch. 18-11, Table 9, Lines 16-17 The index J is set to 0, and the routine returns to lock 18-2 to read the next character of the query. 18-12, Table 9, Line 24 The flag C is compared to ">" indication. If C equals ">", the routine takes the YES branch indicating the beginning of a new query word. Otherwise, the routine takes the NO branch. 18-13, Table 9, Lines 20-21 The flag S is set to 1, and the routine returns to 18-2 to read the next character of the query. 18-14, Table 9, Line 37 The flag C is compared to a blank used to indicate a blank or a space between query characters. If C equals a blank, the routine takes the NO branch and returns to block 18-2 to read the next character in the query. 18-15, Table 9, Line 26 The word count contained in W is compared to 0. If W equals 0, the routine takes the S branch. If W does not equal 0, the routine takes the NO branch. 18-16, Table 9, Line 39 The first character in the query array is checked for the existence of a blank. If a blank exists, te routine takes the YES branch. If the blank does not exist, the routine takes the NO branch. 18-17, Table 9, Lines 28-30 Since W does not equal 0, the word count W and the contents of OTAB containing the transformed query word is returned to the microcomputer 1010. 18-18, Table 9, Lines 52-53 Since the first entry in the QS array is a blank, the index J is set to 0, and the routine returns to block 18-2 to read the next character in the query. 18-19, Table 9, Lines 41-42 Since the first character in the QS array is not equal to a blank, the value in index J is reduced by 1 and placed in a temporary flag CC. The value in the flag CC is also stored in OTAB at a location indexed by the present value of K. The value of K is indexed by 1, and the flag I is set to 0. 18-20, Table 9, Lines 32-34 The flags K, W, and J are set to 0, and the routine returns to block 18-2 to read the next character in the query. 18-21, Table 9, Lines 41-42 The value of the index I is compared with flag CC. If I is greater than CC, the routine takes the NO branch. If I is less than CC, the routine takes the YES branch. 18-22, Table 9, Lines 48-50 The flag W is indexed by 1, J is set to 0, and the routine returns to block 18-2 to read the next character of the query. 18-23, Table 9, Lines 44-46 The value 1 is stored in OTAB(K). The value in QS(I) representing the ASCII equivalent of the query character is stored in OTAB (K+1). The value 100 representing a normalized brightness of 1 is stored in OTAB(K+2). K is indexed by 3 and I is indexed by 1, and the routine returns to block 21. The query pack routine shown in Table 9 as well as the chute filling routine of Table 7 are programmed using the C programming language. The language is described in a book entitled "The C Programming Language" authored by Brian Kernigham and Dennis Ritchie and published in 1978 by Prentice Hall, Inc. Several subroutines are called by the query pack and the chute filling routines such as "GETCHAR" and "PRINT" and such subroutines are disclosed in the foregoing referenced book. G. PIPING METHOD In order to understand the piping method and brightness calculation technique, especially in the situation when there is more than one active piper, it is important to have an understanding of the piping method steps and the h | ||||||
