I found this algorithm earlier from wikipedia. If this can be implmented into TCL, it can be used as a scorer for drone nicks.
Source: http://en.wikipedia.org/wiki/SoundexThe Soundex code for a name consists of a letter followed by three numbers: the letter is the first letter of the name, and the numbers encode the remaining consonants.
Similar sounding consonants share the same number so, for example, the labial B, F, P and V are all encoded as 1. Vowels can affect the coding, but are never coded directly unless they appear at the start of the name.
The exact algorithm is as follows:
Retain the first letter of the string
Remove all occurrences of the following letters, unless it is the first letter: a, e, h, i, o, u, w, y
Assign numbers to the remaining letters (after the first) as follows:
b, f, p, v = 1
c, g, j, k, q, s, x, z = 2
d, t = 3
l = 4
m, n = 5
r = 6
If two or more letters with the same number were adjacent in the original name (before step 1), or adjacent except for any intervening h and w (American census only), then omit all but the first.
Return the first four characters, right-padding with zeroes if there are fewer than four.
Using this algorithm, both "Robert" and "Rupert" return the same string "R163" while "Rubin" yields "R150".