Stem processing for data reduction in a dictionary storage file4342085Abstract A system for reducing storage requirements and accessing times in a text processing machine for automatic spelling verification and hyphenation functions. The system includes a method for storing a word list file and accessing the word list file such that legal prefixes and suffixes are truncated and only the unique root element, or "stem", of a word is stored. A set of unique rules is provided for prefix/suffix removal during compilation of the word list file and subsequent accessing of the word list file. Spelling verification is accomplished by applying the rules to the words whose spelling is to be verified and application of the said rules provides, under most circumstances, a natural hyphenation break point at the prefix-stem and stem-suffix junctions. Claims What is claimed is: Description BACKGROUND OF THE INVENTION
TABLE I
______________________________________
Prefix List
______________________________________
COUNTER CROSS ANTI ANY DE
INTER BACK DIS EN
INTRA DOWN MIS IN
MACRO FORE NON RE
MICRO KILO OUT UN
MILLI MEGA PRE UP
MULTI MINI PRO
SUPER OVER SUB
TRANS SEMI
UNDER SOME
TELE
______________________________________
The second constraint on prefix processing is that the input word must have a minimum number of characters, N, excluding the prefix to qualify as a legitimate root or stem. The defined minimum word length in the preferred embodiment of this invention is N equals three characters. In operation, an initial check is made to determine if the input word meets minimum requirements for prefix processing. Since the shortest prefix, P, in Table I contains two characters, the word must have at least N plus P equal five characters to pass the initial test for prefix processing. A third constraint on the preferred embodiment of the prefix processing routine of this invention is that the first character of the input word by alphabetic. If the first character of the word is non-alphabetic, the word is flagged and cannot be processed under the prefix processing rules. This initial prefix preprocessing is performed by the program routine listed in Table II.
TABLE II
______________________________________
Prefix Preprocessor Subroutine
______________________________________
BEGINSEGMENT(SVEPPS)
ENTER PPS, SAVE THE LINKAGE REGISTER:
IF
WORD IS LONG ENOUGH FOR A PREFIX
THEN
GET THE PREFIX LIST ADDRESS:
GET THE FIRST LETTER IN THE WORD;
IF
THIS IS A NON-ALPHABETIC VALUE
THEN
FLAG AS NO PREFIX PROCESSING;
ENDIF:
POINT TO PREFIX LIST POINTER FOR THE
FIRST LETTER IN THE WORD;
GET THE PREFIX LIST POINTER FOR THE
FIRST LETTER IN THE WORD;
INITIALIZE PREFIX CHECK WHILE-DO;
WHILE
MORE PREFIX ENTRIES EXIST
DO
CHECK NEXT PREFIX LIST ENTRY;
BEGIN
COMPUTE MINIMUM WORD SIZE;
IF
WORD LONG ENOUGH FOR PREFIX
THEN
CALL (SVRPCS)
TO STEM PROCESS A PREFIX;
ELSE
POINT TO NEXT PREFIX ENTRY;
ENDIF;
END;
ENDWHILE;
ENDIF;
RETURN
(TO CALLER WITH PREFIX STEM RESULT);
ENDSEGMENT(SVRPPS);
______________________________________
If the input word meets the test of having the minimum required number of characters and beginning with an alphabet, then it is compared to those prefixes in the prefix memory 12 whose length P plus N is not greater than the length of the input word. For example, if the input word contains six characters, then only those prefixes having three characters or less are compared to the input word. Table III shows the program routine from instruction memory 14 for comparing the prefixes in prefix memory 12 whose length qualify to the input word in input register 16. If a compared prefix in the prefix memory 12 matches the beginning characters of the input word, then the beginning address of the input word is modified to remove the prefix and the prefix length is stored as a hyphenation point for the word. This completes prefix processing.
TABLE III
______________________________________
Prefix Check Subroutine
______________________________________
BEGINSEGMENT(SVRPCS)
ENTER PCS;
GET WORD START ADDRESS;
GET PREFIX ENTRY LENGTH;
WHILE
PREFIX IS NOT FULLY MATCHED AND NO
CHARACTERS MISMATCH
DO
POINT TO NEXT WORD LETTER;
POINT TO NEXT LIST PREFIX LETTER;
GET THE LIST PREFIX LETTER;
GET THE WORD LETTER;
COMPARE THE TWO TO EACH OTHER;
ENDWHILE;
IF
ALL CHARACTERS MATCHED BETWEEN THE
LIST PREFIX AND THE CANDIDATE WORD
THEN
SAVE PREFIX-LENGTH FOR HYPHENATION;
GET THE PREFIX LENGTH;
UPDATE WORD START ADDRESS TO REFLECT
PREFIX STEM PROCESSING;
UPDATE WORD LENGTH ALSO TO REFLECT
PREFIX STEM PROCESSING;
FLAG WORD AS BEING PREFIX PROCESSED;
FLAG AS END OF PREFIX SEARCH;
ELSE
ADJUST PREFIX LIST POINTER TO POINT
TO THE NEXT PREFIX TO BE TRIED;
GET NEXT LIST ENTRY BYTE TO TEST
FOR END OF PREFIX LIST;
ENDIF;
RETURN
(TO SVRPPS WITH PREFIX STEM RESULT);
ENDSEGMENT(SVRPCS);
______________________________________
The instruction memory 14 also contains routines for truncating suffixes from the input word received by input register 16 under control of processor 10. Table IV is a program listing of the suffix preprocessor subroutine. The suffix preprocessor subroutine processes apostrophe and "S" suffixes and calls the word ending reconstruction subroutine listed in Table VIII.
TABLE IV
______________________________________
Suffix Preprocessor Subroutine
______________________________________
BEGINSEGMENT(SVRSPS)
ENDTEXT;
ENTER SPS, SAVE THE LINKAGE REGISTER;
NOTE
ALL SUFFIX PROCESSING IS PREDICATED
ON THE WORD BEING LONG ENOUGH TO
HAVE A USEABLE STEM;
IF
WORD IS LONG ENOUGH FOR ---'
THEN
POINT TO LAST CHARACTER IN WORD;
IF
LAST CHARACTER IS APOSTROPHE
THEN
GET APOSTROPHE SUFFIX LIST;
CALL (SVRSTS)
TO TRY TO SUFFIX PROCESS WORD;
ENDIF;
IF
WORD IS NOW LONG ENOUGH FOR ---S
THEN
POINT TO LAST CHARACTER IN WORD;
IF
LAST CHARACTER IS THE LETTER S
THEN
GET `S` SUFFIX LIST;
CALL (SVRSTS)
TO TRY TO SUFFIX PROCESS WORD:
ENDIF;
IF
WORD IS STILL LONG ENOUGH TO
SUPPORT ---ED or ---AL
THEN
POINT TO LAST CHARACTER IN WORD;
IF
LAST CHARACTER IS THE LETTER D
THEN
CALL (SVRS1S)
TO CHECK REST OF SUFFIX;
ELSE
IF
THE LAST LETTER IS LETTER L
THEN
CALL (SVRS2S)
TO CHECK REST OF SUFFIX;
ELSE
NOTE
THE SUFFIXES -ING, -ION,
ALLY ARE GOING TO BE
CHECKED HERE ALTHOUGH
THEIR LENGTH REQUIREMENTS
WILL BE CHECKED IN THEIR
RESPECTIVE SUBROUTINES;
IF
THE LAST LETTER IS G
THEN
CALL (SVRS3S)
TO CHECK REST OF SUFFIX:
ELSE
IF
THE LAST LETTER IS N
THEN
CALL (SVRS4S)
TO CHECK SUFFIX MORE;
ELSE
IF
THE LAST LETTER IS Y
THEN
CALL (SVRS5S)
TO CHECK SUFFIX;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
IF
THE SUFFIX HAS MULTIPLE VARIANTS
THEN
ADJUST THE CASE COUNT TO ALLOW
ANOTHER PASS THROUGH THE ALGORITHMS
WITH AN ALTERNATE VARIATION OF THE
SUFFIX STEM IF THE PRESENT ONE DOES
NOT VERIFY IN THE DRM;
ENDIF;
RETURN
(TO CALLER WITH SUFFIX STEM RESULT);
ENDSEGMENT(SVRSPS);
______________________________________
Table V contains an exemplary list of legal suffixes which are stored in the prefix/suffix memory 12. The suffix processing rules also include the constraint that the word length N be at least three characters excluding the suffix. The suffix preprocessor subroutine makes a preliminary check of each of the assigned legal suffixes against the input word to determine if its length N is sufficient to contain the requisite number of characters plus the suffix. The result of this character check causes the suffix subroutine to be branched to which is identified as being equal to the word ending. The subroutine for processing each of the defined legal suffixes other than apostrophe and "S" are listed in Table VI.
TABLE VI
______________________________________
Suffix Processor Subroutines
______________________________________
BEGINSEGMENT(SVRS1S)
ENTER S1S;
GET THE NEXT TO LAST LETTER IN WORD;
IF
THE CHARACTER IS LETTER E
THEN
GET "ED" SUFFIX LIST;
CALL (SVRSTS)
TO TRY TO SUFFIX PROCESS THE WORD;
ENDIF;
RETURN
(TO SVRSPS WITH SUFFIX STEM RESULT);
ENDSEGMENT(SVRS1S);
BEGINSEGMENT(SVRS2S)
ENTER S2S;
GET THE NEXT TO LAST LETTER IN WORD;
IF
THE CHARACTER IS LETTER A
THEN
GET "AL" SUFFIX LIST;
CALL (SVRSTS)
TO TRY TO SUFFIX PROCESS THE WORD;
ENDIF;
RETURN
(TO SVRSPS WITH SUFFIX STEM RESULT);
ENDSEGMENT (SVRS2S);
BEGINSEGMENT(SVRS3S)
ENTER S3S;
IF WORD IS LONG ENOUGH FOR ---ING
THEN
GET NEXT TO LAST CHARACTER IN WORD;
IF
THE CHARACTER IS THE LETTER N
THEN
GET NEXT PRECEDING LETTER IN WORD;
IF
THE CHARACTER IS THE LETTER I
THEN
GET "ING" SUFFIX LIST;
CALL (SVRSTS)
TO TRY SUFFIX PROCESSING WORD;
ENDIF;
ENDIF;
ENDIF;
RETURN
(TO SVRSPS WITH SUFFIX STEM RESULT);
ENDSEGMENT(SVRS3S);
BEGINSEGMENT(SVRS4S)
ENTER S4S;
IF
WORD IS LONG ENOUGH FOR ---ION
THEN
GET NEXT TO LAST CHARACTER IN WORD;
IF
THE CHARACTER IS THE LETTER O
THEN
GET NEXT PRECEDING LETTER IN WORD;
IF
THE CHARACTER IS THE LETTER I
THEN
GET "ING" SUFFIX LIST;
CALL (SVRSTS)
TO TRY SUFFIX PROCESSING WORD;
ENDIF;
ENDIF;
ENDIF;
RETURN
(TO SVRSPS WITH SUFFIX STEM RESULT);
ENDSEGMENT(SVRS4S);
BEGINSEGMENT(SVRS5S)
ENTER S5S;
IF
WORD IS LONG ENOUGH FOR ---ALLY
THEN
GET NEXT TO LAST CHARACTER IN WORD;
IF
THE CHARACTER IS THE LETTER L
THEN
GET NEXT PRECEDING LETTER IN WORD;
IF
THE CHARACTER IS THE LETTER L
THEN
GET NEXT PRECEDING LETTER;
IF
THE CHARACTER IS THE LETTER A
THEN
GET "ALLY" SUFFIX LIST;
CALL (SVRSTS)
TO SUFFIX PROCESSING WORD;
ENDIF;
ENDIF;
ENDIF;
ENDIF;
RETURN
(TO SVRSPS WITH SUFFIX STEM RESULT);
ENDSEGMENT(SVRS5S);
BEGINSEGMENT(SVRSSS)
ENTER SSS, SAVE THE LINKAGE REGISTER;
IF
THE WORD UNDER TEST IS LONG ENOUGH
TO PERFORM PLURAL/POSSESSIVE CHECKS
THEN
POINT TO LAST CHARACTER IN WORD;
IF
THE LAST CHARACTER IN THE WORD IS
THE LETTER S OR AN APOSTROPHE
THEN
IF
LAST LETTER IN THE WORD IS S
THEN
ADJUST NEW-WORD-END POINTER;
IF
NEXT TO LAST CHARACTER IN
THE WORD IS AN APOSTROPHE
THEN
ADJUST NEW-WORD-END POINTER;
ENDIF;
ENDIF;
COMPUTE TRUE WORD END ADDRESS;
SUBTRACT NEW-WORD-END ADDRESS;
SAVE REMOVEABLE SUFFIX LENGTH;
CALL (SVRCSS)
TO CHECK FOR USEABLE SUFFIX;
NOTE
THE CONTENTS OF R12 RETURNED
WILL DETERMINE THE NUMBER OF
CHARACTERS (0 OR 1 OR 2) TO BE
REMOVED FROM THE TESTED WORD;
DECREMENT WORD LENGTH BY PLURAL/
POSSESSIVE REMOVAL, IF ANY;
ENDIF;
ENDIF;
RETURN
(TO CALLER WITH PLURALS PROCESSED);
ENDSEGMENT(SVRSSS);
______________________________________
Each of the defined suffixes has associated with it a set of rules which define the reconstruction of the stem word ending following removal of the suffix. These reconstruction rules are listed in Table VII. The program subroutines for executing the stem word ending reconstruction are listed in Table VIII.
TABLE VII
______________________________________
Word Ending Reconstruction Rules
______________________________________
The following suffix rules for each suffix list
are attempted sequentially.
# = ANY CONSONANT
$ = ANY VOWEL
.cent. = ANY LETTER
(1) SUFFIX XXX'
S' .fwdarw..fwdarw.
S
(2) SUFFIX XXXS
#IES .fwdarw..fwdarw.
#Y
CHES .fwdarw..fwdarw.
CH
SHES .fwdarw..fwdarw.
SH
SSES .fwdarw..fwdarw.
SS
#SES .fwdarw..fwdarw.
#SE
XES .fwdarw..fwdarw.
X
.cent.'S .fwdarw..fwdarw.
.cent.
FS .fwdarw..fwdarw.
FS
JS .fwdarw..fwdarw.
JS
QS .fwdarw..fwdarw.
QS
SS .fwdarw..fwdarw.
SS
US .fwdarw..fwdarw.
US
XS .fwdarw..fwdarw.
XS
ZS .fwdarw..fwdarw.
ZS
OES .fwdarw..fwdarw.
OES
CHS .fwdarw..fwdarw.
CHS
SHS .fwdarw..fwdarw.
SHS
#OS .fwdarw..fwdarw.
#OS
#YS .fwdarw..fwdarw.
#YS
.cent.S .fwdarw..fwdarw.
.cent.
(3) SUFFIX XXXED
IED .fwdarw. .fwdarw.
Y or I
$YED .fwdarw..fwdarw.
$Y
FERED .fwdarw..fwdarw.
FERED
ERED .fwdarw..fwdarw.
ER
ORED .fwdarw..fwdarw.
OR
ENED .fwdarw..fwdarw.
EN
EED .fwdarw..fwdarw.
EE
AED .fwdarw..fwdarw.
A
HED .fwdarw..fwdarw.
H
WED .fwdarw..fwdarw.
W
OED .fwdarw..fwdarw.
O or OE
UED .fwdarw..fwdarw.
UE
XED .fwdarw..fwdarw.
X
$C#ED .fwdarw..fwdarw.
$CK or $C
#$#ED .fwdarw..fwdarw.
#$#E
QU$#ED .fwdarw..fwdarw.
QU$#E
#ED .fwdarw..fwdarw.
# or #E
(4) SUFFIX XXXAL
CAL .fwdarw..fwdarw.
C
IAL .fwdarw..fwdarw.
Y
HAL .fwdarw..fwdarw.
H
XAL .fwdarw..fwdarw.
X
SAL .fwdarw..fwdarw.
SE
UAL .fwdarw..fwdarw.
UE
VAL .fwdarw..fwdarw.
VE
QAL .fwdarw..fwdarw.
QAL
$#AL .fwdarw..fwdarw.
$#E or $#
#LAL .fwdarw..fwdarw.
#LE or #L
##AL .fwdarw..fwdarw.
##
(5) SUFFIX XXXING
FERING .fwdarw..fwdarw.
FERING
ERING .fwdarw..fwdarw.
ER
ORING .fwdarw..fwdarw.
OR
ENING .fwdarw..fwdarw.
EN
HING .fwdarw..fwdarw.
H
UING .fwdarw..fwdarw.
UE
XING .fwdarw..fwdarw.
X
WING .fwdarw..fwdarw.
W
UEING .fwdarw..fwdarw.
UEING
#EING .fwdarw..fwdarw.
#EING
$ING .fwdarw..fwdarw.
$
CKING .fwdarw..fwdarw.
CK or C
#$#ING .fwdarw..fwdarw.
#$#E
QU$#ING .fwdarw..fwdarw.
QU$#E
#ING .fwdarw..fwdarw.
# or #E
(6) SUFFIX XXXION
XION .fwdarw..fwdarw.
X
CION .fwdarw..fwdarw.
CION
##ION .fwdarw..fwdarw.
##
$#ION .fwdarw..fwdarw.
$#E
(7) SUFFIX XXXALLY
CALLY .fwdarw..fwdarw.
C
IALLY .fwdarw..fwdarw.
Y
HALLY .fwdarw..fwdarw.
H
XALLY .fwdarw..fwdarw.
X
SALLY .fwdarw..fwdarw.
SE
UALLY .fwdarw..fwdarw.
UE
VALLY .fwdarw..fwdarw.
VE
QALLY .fwdarw..fwdarw.
QALLY
$#ALLY .fwdarw..fwdarw.
$#E or $#
#LALLY .fwdarw..fwdarw.
#LE or #L
##ALLY .fwdarw..fwdarw.
##
______________________________________
OPERATION Referring now to FIG. 2 a flow diagram of the operation of the stem processing algorithm in the context of verifying the correctness of the spelling of an input word is shown. Table IX shows the main stem processing subroutine that controls testing of the input word to determine if it contains suffixes or prefixes that must be truncated. The stem processing subroutine provides for four possible passes of the input word through the processing routines to remove prefixes and suffixes. While the program routine provides for a separate pass to remove plurals, the plurals are treated as regular suffixes in the flow diagram of FIG. 2 for simplicity.
TABLE IX
______________________________________
Main Stem Processing Subroutine
______________________________________
BEGINSEGMENT(SVRSCS)
ENTER SCS;
INITIALIZE PREFIX LENGTH FOR HYPHEN;
RESET SUFFIX ADD-E AND ADD-Y FLAGS;
CASENTRY(STEM PROCESSING CASE)
PASS 1 - SUFFIX/PREFIX PROCESSING;
PASS 2 - PLURAL/PREFIX PROCESSING;
PASS 3 - SUFFIX PROCESSING;
PASS 4 - PLURAL PROCESSING;
NOTE
PLURAL PROCESSING REFERS TO THE
STRIPPING OFF OF PLURALS FOR THE
SUFFIXES THAT ARE HANDLED BY THE
STEM PROCESSING ALGORITHM - I.E.,
INGS BECOMES ---ING, ETC.;
CASE(1 - SUFFIX/PREFIX PROCESSING)
ATTEMPT SUFFIX/PREFIX REMOVAL;
CALL (SVRSPS)
TO SUFFIX PROCESS THE WORD;
CALL (SVRPPS)
TO PREFIX PROCESS THE WORD;
NOTE
THE FOLLOWING TESTS ARE DESIGNED
TO ALLOW THE WORD TO FOLLOW THE
SHORTEST PATH THROUGH THE CASES
DURING VERIFICATION;
IF
NO PREFIX AND NO SUFFIX PROCESSED
THEN
INCREMENT CASE NUMBER BY THREE;
ELSE
IF
ONLY ONE RULE PROCESSED
THEN
INCREMENT CASE NUMBER BY TWO;
ENDIF;
ENDIF:
CASE(2 - PLURAL/PREFIX PROCESSING)
ATTEMPT PLURAL/PREFIX REMOVAL;
CALL (SVRSSS)
TO PLURAL PROCESS THE WORD;
CALL (SVRPPS)
TO PREFIX PROCESS THE WORD;
CASE(3 - SUFFIX PROCESSING)
ATTEMPT SUFFIX REMOVAL;
CALL (SVRSPS)
TO SUFFIX PROCESS THE WORD;
CASE(4 - PLURAL PROCESSING)
ATTEMPT PLURAL REMOVAL;
CALL (SVRSSS)
TO PLURAL PROCESS THE WORD;
ENDCASE;
RETURN
(TO SVRAHAS WITH PROCESSED WORD);
ENDSEGMENT(SVRSCS);
______________________________________
The input word 20 is tested at block 22 by processor 10 under control of the suffix preprocessor subroutine listed in Table IV to determine if the input word contains a suffix. The suffix preprocessor subroutine is branched to as part of Case 1 processing under the main stem processing routine of Table IX. If a suffix equal to one of the defined legal suffixes of Table V is found, it is removed at block 24 under the control of the appropriate subroutine listed in Table VI. If the suffix is removable, the word end is reconstructed using the reconstruction rules listed in Table VII under the control of the program subroutines listed in Table VIII. A flag F1 is then set at block 26 to indicate that the suffixes have been processed. Following suffix processing, or if no suffix is determined to exist, a branch is taken to connector 2 wherein the input word is tested at block 28 to determine if it contains a prefix. The prefix preprocessor subroutine tests the word to determine if it contains a sufficient number of characters to have a legal prefix. The legal prefix check subroutine listed in Table III tests to determine if one of the legal prefixes listed in Table I and stored in the prefix/suffix memory 12 matches the beginning characters of the word and adjusts the beginning address of the word to remove the prefix characters at block 30 if a match occurs. A flag is set at F2 in block 32 to indicate that prefix processing has occurred. Following prefix processing, or if no legal prefix is found to exist in the word, the input word is compared to the contents of dictionary memory 12A at block 34. During suffix processing and prefix processing as described above, legal prefixes and suffixes are truncated from the input word. The dictionary memory 12A then contains only stem words, that is, words having no prefixes or suffixes. This significantly reduces the amount of storage required to hold the dictionary by eliminating the need to store multiple versions of the same word. The words stored in the dictionary may be represented by bytes having a fixed number of bits for each character or by some form of data compaction such as run-length encoding or Huffman coding. In the preferred embodiment of this invention, however, the words are stored in the dictionary in the form of the vector representation disclosed in U.S. Pat. No. 3,995,254, entitled "Digital Reference Matrix For Word Verification", filed July 16, 1975 and issued Nov. 30, 1976 to Walter Steven Rosenbaum and assigned to the same assignee as the present application. If the input word matches an entry in the dictionary memory 12A then a signal is produced by the processor 10 into output register 18 to indicate that the input word is correctly spelled. Following the attempt to match the input word to the contents of the dictionary memory, if no match occurs, a check is made to determine if flags F1 and F2 are set at block 38. If both flags F1 and F2 are set, then at block 40 the removed prefix is reinstated to the input word. The input word with the prefix reinstated is compared to the contents of the dictionary memory at block 42. If the word is found to be in the dictionary at block 42, a signal is produced at register 18 to so indicate through connector 4. However if the word is not found to be in the dictionary memory 12A, the prefix is once again removed at block 44 and the removed suffix(es) is reinstated at block 46. The input word now having a suffix and no prefix is compared to the contents of the dictionary memory 12A at block 48. If a match occurs the signal is produced at output register 18 as previously described. If no match occurs, or if the input word had only a prefix or a suffix, a check is made at block 50 to determine if either F1 or F2 is set. In any case, only F1 or F2 will be set since F1 was cleared at block 47 following reinstatement of the suffix. If processing had continued through block 40-48 then only F2 would be set and the prefix would be reinstated at block 52. The reinstatement of the prefix at block 52 would enable a test at block 54 of the entire word including prefix and suffix to determine if it is in the dictionary memory 12A at block 54. If the word does compare equal to an entry in the dictionary memory 12A, then the signal indicating a match is output to register 18. If block 50 had been branched to from block 38, the indication at 50 would be that only F1 or F2 was set. At block 52 the appropriate prefix or suffix would be reinstated and the contents of the dictionary memory 12A would be tested at block 54. If neither flag F1 nor F2 were set at block 50 or if the test at block 54 came up negative then an indication would be output by processor 10 to output register 18 indicating that the word is not found in the dictionary memory 12A, and consequently may not be correctly spelled. Reinstatement of the prefix and/or suffix to the input word may be accomplished by readjusting the start and end addresses for the word following an unsuccessful attempt to verify the word or by maintaining two registers one of which contains an unmodified version of the word. The main stem processing routine listed in Table IX executes each of the passes 1-4 using combinations of the prefix and suffix as shown in the flow diagram of FIG. 2 in attempting to verify whether the input word is spelled correctly. While this invention has been described with reference to a specific set of computer instructions and with respect to a specified list of defined legal prefixes and suffixes, it will be understood by those skilled in the art that the spirit of this invention can be implemented in other computer languages and that the list of legal prefixes and suffixes may be modified without avoiding the scope of the invention claimed herein. The preferred embodiment of the invention has been described using an application to the English language. However, the described technique is equally applicable to many other languages. Furthermore, while the preferred embodiment of this invention has been shown and described as a number of programs for controlling a general purpose processor, it is well recognized that the invention could be implemented as a special purpose processor utilizing microcode to perform the same functions.
|
Same subclass Same class Consider this |
||||||||||
