Procedure
The algorithm, as described in ''Name Search Techniques'', is: #If the first letters of the name are #:'MAC' then change these letters to 'MCC' #:'KN' then change these letters to 'NN' #:'K' then change this letter to 'C' #:'PH' then change these letters to 'FF' #:'PF' then change these letters to 'FF' #:'SCH' then change these letters to 'SSS' #If the last letters of the name are #:'EE' then change these letters to 'Y␢' #:'IE' then change these letters to 'Y␢' #:'DT' or 'RT' or 'RD' or 'NT' or 'ND' then change these letters to 'D␢' #The first character of the NYSIIS code is the first character of the name. #In the following rules, a scan is performed on the characters of the name. This is described in terms of a program loop. A pointer is used to point to the current position under consideration in the name. Step 4 is to set this pointer to point to the second character of the name. #Considering the position of the pointer, only one of the following statements can be executed. ##If blank then go to rule 7. ##If the current position is a vowel (AEIOU) then if equal to 'EV' then change to 'AF' otherwise change current position to 'A'. ##If the current position is the letter ##:'Q' then change the letter to 'G' ##:'Z' then change the letter to 'S' ##:'M' then change the letter to 'N' ##If the current position is the letter 'K' then if the next letter is 'N' then replace the current position by 'N' otherwise replace the current position by 'C' ##If the current position points to the letter string ##:'SCH' then replace the string with 'SSS' ##:'PH' then replace the string with 'FF' ##If the current position is the letter 'H' and either the preceding or following letter is not a vowel (AEIOU) then replace the current position with the preceding letter. ##If the current position is the letter 'W' and the preceding letter is a vowel then replace the current position with the preceding position. ##If none of these rules applies, then retain the current position letter value. #If the current position letter is equal to the last letter placed in the code then set the pointer to point to the next letter and go to step 5.References
{{reflistExternal links