Abridgment of text-based display information5420973Abstract A tagged string is developed by setting the value of a current priority variable to the maximum priority level, selecting a shortest length string of the plurality the characters of which have not all been incorporated into the tagged string as the current string, selecting a character of the current string that is not found in the string that was processed for incorporation into the tagged string immediately prior to the current string, adding the selected character to the tagged string and setting the value of the priority indicator for the just added character to the value of the current priority value. Character selection, addition and priority setting are repeated until the characters of the current string are all incorporated into the tagged string. Thereafter, the value of the current priority variable is decreased. The process, except for the setting of the current priority level, is repeated until all strings have been incorporated into the tagged string. The message may also include one or more supplementary characters, in which case each character is tagged with a priority indicator and a supplement indicator. If so, characters are selected if they are not found in the immediately preceding processed string or if they are not in the longest string. The supplement indicator for each selected character is set if the selected character is not in all strings having a length greater than the current string when the current string is not the longest string. Claims I claim: Description TECHNICAL FIELD
TABLE 1
__________________________________________________________________________
S.sub.tagged
__________________________________________________________________________
characters
A A u t o C a l l B B b a c k
priority
3 0 0 0 0 0 3 2 2 2 2 3 1 1 1 2
supplement
S C C C C C C C C C S S C C C C
__________________________________________________________________________
For example, if the particular priority level is 3, the abridged string is "ACB" which is derived from S.sub.tagged by selecting 1) the first "A", which has a priority indicator value of 3 and a set supplement indicator; 2) "C", having a priority indicator value of 3 and a clear supplement indicator, and 3) the second "B", which has a priority indicator value of 3 and a set supplement indicator. The corresponding columns from Table 1 are:
______________________________________
characters A C B
priority 3 3 3
supplement S C S
______________________________________
If the particular priority level is 2, the abridged string derived from S.sub.tagged is "CallBk" made up of 1) "Call", each character of which has a priority indicator whose value is greater than or equal to 2 and a clear supplement indicator; 2) the first "B", which has a priority indicator value of 2 and a set supplement indicator; and 3) "k" which has a priority indicator value of 2 and a clear supplement indicator. The corresponding columns from Table 1 are:
______________________________________
characters C a l l B k
priority 3 2 2 2 2 2
supplement C C C C S C
______________________________________
For a particular priority level of 1 the characters selected from S.sub.tagged are 1) "Call", each character of which has a priority indicator whose value is greater than or equal to 1 and a clear supplement indicator; and 2) "back", for which each character also has a priority indicator whose value is greater than or equal to 1, to yield the abridged string "Callback". The corresponding columns from Table 1 are:
______________________________________
characters
C a l l b a c k
priority 3 2 2 2 1 1 1 2
supplement
C C C C C C C C
______________________________________
The maximum length abridged string, "Auto Callback" is obtained for a particular priority level of 0. The characters selected are all those whose supplement indicator is not set. The corresponding columns from Table 1 are:
______________________________________
charac-
A u t o C a l l b a
c k
ters
priority
0 0 0 0 0 3 2 2 2 1 1 1 2
supple-
C C C C C C C C C C C C C
ment
______________________________________
FIG. 1 shows a flowchart of an exemplary process for developing a tagged string S.sub.tagged such is that shown in Table 1 in accordance with the principles of the invention. Attention is first directed, however, to FIG. 2. In particular, FIG. 2 shows an exemplary process, for use by a station set, for abridging a received tagged string S.sub.tagged to develop a string that can be displayed within the number of characters available at the station set in order to display the message received in S.sub.tagged. For this example, it is assumed that each character has an overall priority indicator that is a combination of the priority and supplement indicators in the form of a signed number whose magnitude is the priority indicator and whose sign is the supplement indicator with +(-) indicating a non-set (set) indicator associated with a non-supplementary (supplementary) character. The process is entered, in step 201, upon receipt of S.sub.tagged. Next, in step 203, P, a variable indicating a current "candidate" priority value, is set to P.sub.min, the lowest priority value, e.g. 0. It is noted that the lower the priority value used, the longer will be the resulting string. Thereafter, all characters in S.sub.tagged the value of whose overall priority indicator is a) greater than or equal to P or b) equal to -P are selected. In step 207, a candidate abridged string for display is developed using the characters selected in step 205. The characters are arranged in the same order that they appeared in S.sub.tagged. Next, conditional branch point 209 tests to determine if the length of the candidate abridged string is less than or equal to the length of the display on which the string is to be displayed. If the test result in step 209 is YES, indicating that the candidate abridged string will fit on the display, control passes to step 211 and the candidate abridged string is displayed. The process is then exited in step 213. If the test result in step 209 is NO, indicating that the candidate abridged string will not fit on the display, control passes to step 215, in which the candidate priority value P is incremented. Control then passes back to step 205 and the process continues as described above to develop a new candidate abridged string. Looking now at the exemplary process for developing a tagged string S.sub.tagged depicted in FIG. 1, it is to be noted that before S.sub.tagged can be developed each of the abridged strings-e.g., in the above example a) "Auto Callback", b) "Callback", c) "CallBk", and d) "ACB"-must be known. The abridged strings should be selected by a human factors analyst so that each best conveys the intended meaning for a string of its particular display length. The strings selected to be incorporated into each string S.sub.tagged are processed together as a set. When all the characters of a string have been incorporated into the tagged string S.sub.tagged, so that characters of that string requires no further processing, the string is said to be removed from the set. All strings that have characters that must still be incorporated into S.sub.tagged are said to remain in the set. In the embodiment of FIG. 1, as in the embodiment of FIG. 2, the priority indicator and the supplement indicator are combined to produce an overall priority indicator, which is a signed number, i.e., a number having a magnitude and a sign bit that indicates if the number is positive or negative. The magnitude of the signed number is used as the priority indicator and the setting of the supplement indicator is represented by setting the sign bit, which makes the overall priority indicator for supplement characters a negative value. Conversely, the clearing of the supplement indicator is represented by clearing the sign bit, which makes the priority indicator for supplement characters an overall positive value. The process is entered in step 101 when a string for transmission is to be constructed. In step 103, P, a temporary variable indicating a priority value to currently be used as the value of the priority indicators of the characters to be next processed, is set to P.sub.max, the highest priority value. In this example, the priority values range from 0, the lowest, to P.sub.max, the highest, which is equal to the number of selected strings minus one. In step 105, S, the string currently being incorporated into tagged string S.sub.tagged is set to the shortest remaining string in the set. Next, in step 107, the first character C from one end, e.g., leftmost, is selected that either 1) is not found in the string immediately previously removed from the set, or 2) is not found in the maximum length abridged string, S.sup.0. C is then added to the character portion of S.sub.tagged, in step 109, to the right of any characters that are to the left of C's position in S that have already been added to S.sub.tagged. Conditional branch point 111 tests to determine a) if C is present in all the other strings that are still in the set, which are all longer than current string S, or b) if S is identical to S.sub.0. If the test result in step 111 is YES, thus indicating that character C is not a supplementary character, control passes to step 113, in which the overall priority indicator of character C is set to the value of P, the current priority value. Thus, the character is marked for deletion with a priority value of P, in accordance with the principles of the invention. If the test result in step 111 is NO, this indicates that character C is an "supplementary character", i.e., one that would not be available for deletion from the string in the set next longer than S. Therefore, control passes to step 115, in which the overall priority indicator of the character C is set to the negative of the value of P, the current priority value. Doing so corresponds to marking the character for deletion with a priority value of P and setting the supplement indicator for the character, in accordance with an aspect of the invention. After completion of step 113 or 115, control passes to conditional branch point 117, which tests to determine if all the characters in current string S have been processed. If the test result in step 117 is NO, indicating that there remains additional unprocessed characters in the current string S, control passes to step 119, in which the value of C is set to the next endmost unprocessed character in current string S. Control then passes back to step 111 and the process continues as described above. If the test result in step 117 is YES, indicating that there are no unprocessed characters remaining in S, control passes to step 121, in which the current priority value P is decremented. Conditional branch point 123 next tests to determine if the value of P is less than 0. If the test result in step 123 is NO, indicating there remain additional priority levels, control passes to step 125, in which the current string S is removed from the set. Control then passes back to step 105 and the process continues as described above. If the test result in step 123 is YES, indicating that all the strings have been processed, control passes to step 127 and the process is exited. As an example, it will be shown how 4 different length strings are incorporated into a single tagged string S.sub.tagged for the meaning "Auto Callback" using the method of FIG. 1. The strings selected for the set are those noted above, namely, a) "Auto Callback"; b) "Callback"; c) "CallBk"; and d) "ACB". There are 4 different priority levels, each having a value between 0 and 3, with 0 being the lowest priority level P.sub.min and 3 being the maximum P.sub.max. Again, for this example, the maximum length string S.sup.O is "Auto Callback". In step 103, P is set to 3, the highest priority level. S is set to "ACB", the shortest of the selected strings, in step 105. Since the process is just beginning, no characters have been added to S.sub.tagged. Therefore, "A", the leftmost character of "ACB", is selected in step 107 and added to the character portion of S.sub.tagged in step 109. The character portion of S.sub.tagged now contains "A". Since "A" is not in either "Callback" or "CallBk", nor is S identical to the maximum length string, S.sup.0, the test result in conditional branch point 111 is NO and control passes to step 115 which assigns a value of -3 to the overall priority indicator for "A" in S.sub.tagged. The test result in step 117 is NO, because there remains in S the characters "CB" that have not yet been processed. Therefore, control passes to step 119 in which the next unprocessed character remaining in S, "C", is selected as C, the current character to be processed. "C" is added to the character portion of S.sub.tagged which now contains "AC". Since "C" is in "Auto Callback", "Callback" and "CallBk", the test result in conditional branch point 111 is YES, and control passes to step 113, which places a value of 3 in the overall priority indicator for "C" in S.sub.tagged. The test result in step 117 is NO, because "B" remains in S and has not yet been processed. Therefore, control passes to step 119 in which the next unprocessed remaining character in S, "B", is selected as C, the current character to be processed. "B" is added to the character portion of S.sub.tagged which now contains "ACB". Since "B" is not in either "Auto Callback" or "Callback", nor is S the maximum length string, S.sup.0, the test result in conditional branch point 111 is NO, and control passes to step 115 which places a value of -3 in the overall priority indicator for "B" in S.sub.tagged. The test result in step 117 is YES, because all the characters of S that have been processed. Therefore, control passes to step 121 which decrements the current priority level P to a new value of 2. Because 2 is greater than 0, the test result in step 123 is NO, and control passes to step 125, which removes "ACB" from the set. S is set to "CallBk", the shortest remaining abridgment, in step 105. "C", the leftmost character of "CallBk", was already added to S.sub.tagged with an overall priority indicator of 3, i.e., without its supplement indicator being set. Therefore, "a", the next leftmost character of "CallBk" that was not already added to S.sub.tagged, is selected in step 107 and added to S.sub.tagged in step 109. The character portion of S.sub.tagged now contains "ACaB". Since "a" is in "Auto Callback" and "Callback"-the strings remaining in the set that are longer than the current string "CallBk"-the test result in conditional branch point 111 is YES, control passes to step 113. In step 113 a value of 2 is placed in the overall priority indicator for "a" in S.sub.tagged. The test result in step 117 is NO, because there remains in current string S the characters "llBk" that have not yet been processed. Therefore, control passes to step 119 in which the next character in S, "1", is selected as C, the current character to be processed. The process continues as described above, adding the characters "ll", and overall priority indicators for them, to S.sub.tagged, so that the character portion of S.sub.tagged now contains "ACallB". Since the next character in S, "B", is not in maximum length string S.sup.0, even though it was in the previous abridgment "ACB", it is selected as C in step 107 and added to the character portion of S.sub.tagged, in step 109. The character portion of S.sub.tagged now contains "ACallBB". Since "B" is not in either "Auto Callback" or "Callback", nor is S the maximum length string, S.sup.0, the test result in conditional branch point 111 is NO, and control passes to step 115, which places a value of -2 in the overall priority indicator for "B". The test result in step 117 is NO, because the character "k" remains in S and has not yet been processed. The process continues as described above, first adding "k" to S.sub.tagged with an overall priority indicator value of 2 and then, at the next lower priority level, adding the characters "bac", each with an overall priority indicator value of 1, to S.sub.tagged. Then, the priority level is decremented to 0 and the string "Callback" is removed from the set. The character portion of S.sub.tagged now contains "ACallBBback". S is set to "Auto Callback", the only abridgment remaining in the set, which is also the maximum length string S.sup.0, in step 105. Since the next character "A" was not in the previously processed string "Callback", it is selected as C in step 107 and is added to character portion of S.sub.tagged in step 109. The character portion of S.sub.tagged now contains "AACallBBback". Since the current string S is also the maximum length string S.sup.0, the test result in conditional branch point 111 is YES, and control passes to step 113, which places a value of 0 in the overall priority indicator for "A". The test result in step 117 is NO, because characters "uto Callback" remain in S and have not yet been processed. Therefore, control passes to step 119, in which the next character in S, "u", is selected as C, the current character to be processed. The process continues as described, adding characters "uto" to S.sub.tagged, each having an overall priority indicator value of 0. When P is decrement in step 121 its value becomes -1. Therefore, the test result in step 123 is YES and the process exits via step 127. Table 2 shows the resulting S.sub.tagged, which is equivalent to that shown in Table 1. The same priority values in decimal, as in Table 1, are listed below the character. The supplement indicator, as represented by the sign of each character, is also shown. Again, it is noted that a negative sign corresponds to a set supplement indicator and a positive sign corresponds to a cleared supplement indicator, in accordance with an aspect of the invention. Also listed is the priority value expressed as a binary number, where the uppermost bytes are the 2.sup.1 value for each character and the lowermost bytes are the 2.sup.0 values. The sign bit expressed in binary is also shown, with a 1 corresponding to a positive sign (+) and a 0 corresponding to a negative sign (-). The characters are divided into 2 groups of 8 characters each, with the groups being separated by a gap, so that the binary information is grouped into octets.
TABLE 2
__________________________________________________________________________
characters
A A u t o C a l l B B b a c k
sign - + + + + + + + + + - - + + + +
Priority
3 0 0 0 0 0 3 2 2 2 2 3 1 1 1 2
sign 0 1 1 1 1 1 1 1 1 1 0 0 1 1 1 1
priority
1 0 0 0 0 0 1 1 1 1 1 1 0 0 0 1
(binary)
1 0 0 0 0 0 1 0 0 0 0 1 1 1 1 0
__________________________________________________________________________
Table 3 shows only the tag portion of S.sub.tagged as it might appear in an ISDN message. The escape code and escape type fields combine to indicate that the following information is tag information and the length field indicates that there are 6 octets of tag information. The tag information of the overall priority indicators is that from Table 2 arranged by scanning the octets from left to right and placing each octet scanned below the previously scanned one.
TABLE 3
______________________________________
bit position
8 7 6 5 4 3 2 1
______________________________________
escape code
1 0 1 1 1 1 1 1
escape type
0 1 0 0 0 1 1 0
length = 6
0 0 0 0 0 1 1 0
priority 0 1 1 1 1 1 1 1
indicators
1 1 0 0 1 1 1 1
1 0 0 0 0 0 1 1
1 1 1 1 0 0 0 1
1 0 0 0 0 0 1 0
0 0 0 1 1 1 1 0
______________________________________
FIG. 3 shows an exemplary ISDN telephone system arrangement in which messages, including ones containing a tagged string S.sub.tagged, are exchanged for the purpose of causing labels on ISDN telephone sets to convey a particular meaning. Shown are central office 301 and ISDN telephone sets 311 and 321, interconnected in the manner shown by ISDN links 319 and 329, respectively. ISDN telephone set 311 includes a) handset 312, b) buttons 313, each associated with a respective one of display labels 315, and c) keypad 317. Display labels 315 are each 13 characters long. Similarly, ISDN telephone set 321 includes a) handset 322, b) buttons 323, each associated with a respective one of display labels 325, and c) keypad 327. Display labels 325 are each 3 characters long. ISDN links 319, 329 carry messages between central office 301 and ISDN telephone sets 311,321. Exemplary messages passing over ISDN links 319, 329, depicted in FIG. 3, include a) ready messages 3191, 3291, e.g., messages indicating that the ISDN set is available to communicate with the central office, and b) messages including tagged strings S.sub.tagged 3192, 3292, e.g., messages that specify a meaning and for which ISDN telephone sets 311,321 should display a string that best conveys that meaning in one of display labels 315, 325. Messages including a tagged string S.sub.tagged 3192, 3292 are generated by central office 301 in response to a label transmission command signal, which is generated within central office 301 when the meaning of a display label is to be conveyed to one of ISDN telephone sets 311, 321. Such a label transmission command signal may be developed without external stimulus such as in response to a scheduled system interrupt. Alternatively, the label transmission command signal may be developed in response to receipt of a signal from an ISDN telephone set indicating its readiness to receive messages that specify meanings for its display labels. Such a signal from an ISDN telephone set may be any valid message from the ISDN telephone set that is indicative of the presence of a functioning ISDN telephone set connected to the central office. Or, it may be a signal indicating specifically that the ISDN telephone set is presently ready to receive a message containing a meaning for a display label and that such a message should be the next message transmitted. If ISDN telephone sets 311,321 are identical except for the lengths of their respective display labels 315, 325, then the sending to each of an identical set of messages by central office 301, i.e., messages containing the same tagged strings, will result in each one of display labels 315 displaying a string conveying the same message as is displayed on a similarly positioned one of display labels 325. The foregoing merely illustrates the principles of the invention. It will thus be appreciated that those skilled in the art will be able to devise various arrangements which, although not explicitly described or shown herein, embody the principles of the invention and are thus within its spirit and scope.
|
Same subclass Same class Consider this |
||||||||||
