Patent Document ID: 5560037
Application ID: 08420397
Patent Status: 1

Claim One:
1. A method of operating a processor comprising: operating the processor to produce word data representing a large set of words; the large set of words including a set of shared suffix branches, each shared suffix branch occurring at least twice in the large set of words; a first one of the words in the large set having two or more characters and a hyphenation point between a preceding character and a subsequent character; the hyphenation point of the first word being a point at which the first word can properly be hyphenated; the first word and a second one of the words in the large set both including a shared suffix that occurs in a first one of the shared suffix branches; the shared suffix following a first word character in the first word and following a second word character in the second word; the word data including codes; the codes including character codes representing characters of the words; the act of operating the processor to produce word data comprising: including a hyphenation code representing the hyphenation point of the first word in the word data; the word data being searchable for a first sequence of the codes and a second sequence of the codes; the first sequence representing the first word and including a preceding one of the character codes representing the preceding character, a following one of the character codes representing the subsequent character, the hyphenation code, and a first word character code representing the first word character; the second sequence of the codes representing the second word; the second sequence of codes including a second word character code representing the second word character; the act of including the hyphenation code comprising: positioning the hyphenation code between the preceding character code and the following character code in the first code sequence so that the hyphenation point of the first word can be determined from the position of the hyphenation code; and collapsing the word data so that the first sequence of codes and the second sequence of codes both include shared suffix codes; the shared suffix codes representing the shared suffix in both the first word and the second word; the act of collapsing the word data comprising: detecting each of the set of shared suffix branches; and for each shared suffix branch detected, determining whether to represent the shared suffix branch only once; the act of collapsing the word data determining to represent the first shared suffix branch only once; and storing the collapsed word data in a memory so that the shared suffix codes begin at a first location in the memory, so that the first sequence of codes includes information that a processor can use, after accessing the first word character code, to continue search by accessing the shared suffix codes at the first location, and so that the second sequence of codes includes information that a processor can use, after accessing the second word character code, to continue search by accessing the shared suffix codes at the first location; the act of storing the collapsed word data comprising: for the shared suffix branches determined to be represented only once, including location codes in the collapsed word data, each location code indicating a location in the memory at which a shared suffix branch is represented; at least one of the first and second word character codes being followed by a first one of the location codes; the first location code indicating the first location so that the processor can use the first location code to continue search by accessing the shared suffix codes at the first location.