Full word coding for information processing4500955Abstract Words input to an information processing system character-by-character are given unique unitary representations independent of alphanumeric content and order. A user selects a particular vocabulary set containing the unique unitary representations of each word in the vocabulary set. When a word is input into the system, it is matched with its unique unitary representation. This representation is provided to storage and output devices in the system. It is also utilized in text transmission. Words not found in the preselected vocabulary set are encoded character-by-character. Vocabulary sets may be chosen so as to minimize the occurrence of this last event. Claims I claim: Description DESCRIPTION
______________________________________
C 0000011
O 0001111
M 0001101
E 0000101
______________________________________
Start/end code generator 42 delimits each whole word by placing a start bit at the beginning of the word and an end bit at the end of each whole word. The start and end codes are necessary to distinguish individual words which are being serially input into the system. Start/end code detector 43 detects the start and end bits for each word, and signals control logic 44 accordingly that it is about to receive a whole word. Depending on the control function that the user has selected, each word received by control logic 44 may either be sent to storage 45, to transmission network 46 for transmission to information processing system 47, or may be sent out along line 48 to start/end code detector 49 and subsequently to output device 51. Words sent to storage 45 may be later retrieved for such purpose as editing and/or deletion by the user. Output device 51 may be a printer or display terminal, such as a CRT or plasma display. Information processing system 47 may have its own associated storage and output devices. The preferred embodiment of the present invention is illustrated in FIG. 1. Words are input to the system character-by-character by input device 11. Start/end code generator 12 then marks each whole word with a start and an end bit. Start/end code detector 13 then delimits each whole word in the serial bit stream. Each whole word is sent to encoder 14 over line 61. Start/end code detector 13 also supplies a gating signal to encoder 14 over line 62. This gating signal indicates to the encoder that a word is being sent. The operation of encoder 14 and word table 15 will now be explained in more detail with reference to FIG. 4. Words input to encoder 14 (FIG. 4) over line 61 (see also FIG. 1) are directed towards temporary buffer 65 and tree search logic 66. Simultaneously with the input of the word on line 61, a gating signal is input over line 62 to control logic 67. This signal indicates the beginning and end of a word. The gating signal is then relayed to tree search logic 66 over line 71. This signal first directs the tree search logic to begin searching and, second, indicates to the tree search logic 66 when the searching should be halted. The operation of tree search logic 66 will now be explained in more detail using the logic tree of FIG. 3. As an illustration, the word "come" is input serially to the tree search logic. The first level 52 of the tree is searched until the character "c" is located. This occurs at position 53. The next step is to search the second level 54 until the character "o" is located on that level. This occurs at position 55 in the tree. Next, the third level 56 is searched until the third character in the word "m" is found at location 57. Finally, the fourth level 58 of the tree is searched until the last character in the word "e" is found at location 59. Corresponding to location 59 in the word tree is a location in word table 15 (see also FIG. 4). This location in the word table contains the unique representation for the whole word "come". A comparison is made between each character input to the system and each position on a given level of the word tree. This comparison is accomplished by circuitry within tree search logic 66. Each position on the tree is represented by the 7 bit ASCII code representation for its corresponding alphanumeric character. When the first character of a word is input to the tree, tree search logic 66 directs the comparison circuitry to make a comparison between the ASCII code representation for this character and all the ASCII code representations on the first level 52 of the tree. When a hit occurs, the first letter on the tree has been found. In the example above, this occurs at position 53. At this point, tree search logic 66 directs the comparison circuitry to the first level immediately under the first selected position 53. Here, that is level 54. Once again, level 54 is searched until a hit occurs. This process continues until either the inputted word has been found on the tree or until control logic 67 signals to stop searching. As previously indicated, a gating signal is sent over line 62 to control logic 67 to indicate the beginning and end of a word. A predetermined time after the end of a word has been indicated, control logic 67 signals tree search logic 66 to halt searching. At this time, temporary buffer 65 is cleared and the input of the search logic 66 is reset to await the input of the next word. Each position in word table 15 has a unique location in the word tree logic. The only way that the position in the word table 15 representing the word "come" can be reached is to input "come" into the word tree logic. If the word "come" is mistakenly entered as "cmoe", then location 59 on the tree is not reached and correspondingly, the address location corresponding to that location in the word table is also not reached. Each position in the word tree has its own unique next descending level associated with it. The only way to search that level is through that particular location in the tree immediately above the level. The only way to locate a word in word table 15 is to correctly enter the alphanumeric content and order of that word into the word tree. The contents of word table 15 are predetermined by the user. In the preferred embodiment of this invention, 14 bits are used to represent each whole word in the word table. In this manner, 2.sup.14 or 16,384 words can be represented. Included in each word table is a 14 bit representation for each alphanumeric character and each control character capable of being input into the system. The word table chosen for a given user can be optimized to that user. For example, the vocabulary set chosen by a chemist would be quite different from the one chosen by an attorney. As previously indicated, a gating signal is sent over line 71 (see FIG. 4) from the control logic to the tree search logic to indicate the input of the word to the tree search logic. Likewise a gating signal is sent across line 71 to indicate the end of a particular word that is input to the tree search logic. Whenever a word is input to the tree search logic 66 which is not located on the tree and hence not in word table 15, then a signal is sent from tree search logic 66 over line 72 to control logic 67. This signal indicates to control logic 67 that no representation for the inputted word has been found. When the second signal is sent over line 71 indicating the end of the word, a latch (not shown) is set in the tree search logic. When the inputted word is found on the tree, the latch is reset and the address of the word in the word tree is sent to the word table. However, when the word is not found on the tree within a predetermined time after the latch in the tree search logic is set, then a signal is sent over line 72 to control logic 67 to indicate that no word has been found on the tree. When this occurs, a signal is sent from control logic 67 over line 73 to temporary buffer 65 which contains the word initially inputted over line 61. The control logic then directs temporary buffer to send one character at a time from the contents of that buffer to the tree search logic. The start and end signals corresponding to the beginning and end of a word are then sent over line 71, to the tree search logic for every character input to the tree search logic from the temporary buffer. In this manner, each of the characters making up the word are found on level 52 (see also FIG. 3) of the tree, corresponding to a unique location in word table 15. When a word must be coded character-by-character, the representation for that word is the product of 14 bits and the number of characters contained in that word. So, for example, if the word "come" were not located in the word table, then 56 bits of information would be required to represent that word. Proper selection of the words in the word table can minimize the probability of having to individually character code inputted words. All whole word representations are output from word table 15 over line 64. Fourteen bit representations are output for words that are located in the table, while 14 bit representations for each character in a word not located in the table are also output over line 64. However, control logic 67 governs whether the outputted representation exits encoder 14 over line 16 or 17. Switch 69 is normally in the closed position and it is over line 17 controlled by switch 69 that representations of words found in the word table are sent. Normally open switch 68 controls line 16 over which representations of words not found in the word table are sent. However, when a signal is sent from control logic 67 over line 73 to temporary buffer 65 indicating that the word inputted over line 61 has not been found in the tree search logic 66, then a signal is sent over line 74 to effect opening switch 69 while closing switch 68. In this manner, representations of words found in the word table 15 are sent over line 17 while representations of words not found in the word table, and hence coded a character at a time, are sent over line 16. The representations of the characters for a given word sent over line 16 are input to serializer 18 (see FIG. 1) where the individual characters bits are serialized to represent an entire word. Accordingly, for example, if the word "come" is not located in the word tree, then four 14 bit representations for the characters "c", "o", "m" and "e" are sent over line 16 to serializer 18. At this time, the four 14 bit representations are serially aggregated into a 56 bit representation for the word "come". This 56 bit representation is then input to flag bit generator 19 which attaches a flag bit at the beginning of the representation to indicate the start of a word. Likewise, for 14 bit representations of words sent over line 17, flag bit generator attaches a flag bit at the start of that 14 bit representation to signify the start of a new word. The unique representation for each inputted word with a flag bit attached is then input to control logic 21. At this point, the unique representation can either be sent to storage 22, transmission network 23, or output device 36 via line 25. Word representations sent to storage 22 may be retrieved for later editing and/or deletion. By optimizing the vocabulary set to a given user, the number of words represented by 14 bit representations is maximized. By doing this, storage 22 can accommodate a larger number of words than it could if each word were coded by each of the characters making up that word. Thus, the costs of storage per given word is dramatically decreased. Each word input to control logic 21 may also be directed to transmission network 23 for transmission to another information processing system 24. By optimizing the word table to a given user, the speed at which the user can communicate with another information processing system 24 is increased. This increased speed is due to the decrease of the number of bits that must be transmitted from one system to another. A third option that may occur when an inputted word representation is received by control logic 21 is for the representation to be decoded into the word which it represents and displayed to the user. As previously disclosed, output device 36 may be a printer, a CRT display, or a plasma display. The unique representation for a word is input over line 25 to flag bit detector 26. Flag bit detector 26 detects a flag bit and hence the start of a word. When a word has been detected, a signal is sent to bit counter 27 to indicate that the next stream of data sent represents a word. When this bit stream is input to bit counter 27, the number of bits are counted. A decision circuit (not shown) within bit counter 27 directs the bit stream to the appropriate line according to the number of bits input to the bit counter 27. When the number of bits is equal to 14, the bit stream is input over line 29 to decoder 32. However, if the number of bits contained in the bit stream is not equal to 14, then this is an indication that the representation for that particular word has been character coded. When this occurs, the serial bit stream representing that greater than 14 bit bit word is input over line 28 to deserializer 31. Deserializer 31 breaks up the bit stream into 14 bit packets and outputs them one packet at a time over line 30 to decoder 32. The operation of decoder 32 and word table 33 will now be detailed with reference to FIG. 5. Data input over line 30 to control logic 75 is in the form of 14 bit representations of the individual characters in a word. Data input over line 29 to control logic 75 is in the form of 14 bit representations representing whole words. When the first 14 bit packet is received by control logic 75 over line 30, a signal is sent over line 77 to start/end code generator 34 to indicate the start of a word. The word table matches each 14 bit representation with the 7 bit ASCII representation that is compatible with the output device. As each 14 bit character representation is identified, the 7 bit ASCII code is sent over line 82 to start/end code generator 34. When the last 14 bit packet, representing the last character in a word, is received by control logic 75, then a signal is sent over line 77 to start/end code generator 34 signifying that the last character in the word has been received. In this manner, a start and stop bit can be attached to the ASCII code representation given to each word input over line 30 to comparator 32. This ASCII code representation will be in the form of 7 bits times the number of characters in the word. Data input over line 29 to control logic 75 is in the form of 14 bit representations of whole words. When each 14 bit representation is received by control logic 75 over line 29, a signal is sent over line 77 to start/end code generator 34 to signify the receipt of a new word. A second signal is sent at a predetermined time after the first one over line 77 to signify the end of a word received by control logic 75 from line 29. The 14 bit representation received over line 29 by control logic 75 is then directed over line 79 to word table 33. Word table 33 then matches the incoming 14 bit word representation to its 7 bit code ASCII representation. The ASCII code representation is then output over line 81 to deserializer 76. Deserializer 76 then breaks the ASCII code representation for that particular word into 7 bit packets representing the individual characters in the word. The 7 bit ASCII code packets are then sent over line 83 to start/end code generator 34. Start/end code generator has already been signaled over line 77 that a word is to be decoded and input to the generator. A starting bit is then attached before the first character code representation for that particular word, and an ending bit is attached after the last 7 bit ASCII code representation for the last character in that word. Control logic 75 also acts to direct the output of word table 33 to either line 81 or line 82 depending on whether the word input to decoder 32 comes over line 30 or line 29. Once again, words coming over line 30 indicate words coming in a character at a time. In these cases, control logic 75 sends a signal over line 78 to open switch 84 and close switch 85 so that the output from word table 33 will travel over line 82 rather than over line 81. Switch 84 is normally in the closed position. Switch 85 will remain open only long enough for the word to be sent over line 82. In those cases where the input to decoder 32 is over line 29, thus signifying a whole word representation being input to decoder 32, switch 84 is already closed and the word will be sent over line 81. After each word representation has been decoded into the ASCII code representation for each character of the word and had a start and end bit attached to that ASCII code representation for the complete word, then the data is sent to output device 36 via start/end code detector 35. Start/end code detector 35 distinguishes whole words so that the output device may generate the alphanumeric representation of the ASCII code representation. As previously indicated, output device 36 may be a printer, or a display. The selection of word code representations in word table 15 is entirely arbitary. The representations are not dependent on either alphanumeric content or alphanumeric order. The words in table 15 are not composed of any mathematical addition or arrangement of the codes of the individual characters making up a word. This assignment method assures that words having identical alphanumeric content, but differing alphanumeric order will not be confused in the system. The word code representations in table 33 are made identical to those in table 15. The choice of 14 bits per word used herein is for purposes of illustration only. A system such as described herein would not be limited to unique unitary representations of 14 bits per word. Any suitable choice of bits per word could be used. In addition, other well known coding schemes such as Huffman coding and word occurrence frequency coding could be utilized in a system employing the present invention. While the invention has been particularly shown and described with reference to the preferred embodiment herein, it will be understood by those skilled in the art that the foregoing and other changes in form and detail will be made therein without departing from the spirit and scope of the invention.
|
Same subclass Same class Consider this |
||||||||||
