Mini Shell
# phonetic_english.h - phonetic transformation rules for use with phonetic.c
# Copyright (C) 2000 Bj�rn Jacke
#
# This rule set is based on Lawrence Phillips original metaphone
# algorithm with modifications made by Michael Kuhn in his
# C implantation, more modifications by Bj�rn Jacke when
# converting the algorithm to a rule set and minor
# touch ups by Kevin Atkinson
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1 as published by the Free Software Foundation;
#
# This library is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
#
# Bj�rn Jacke may be reached by email at bjoern.jacke@gmx.de
#
# Changelog:
#
# 2000-01-05 Bj�rn Jacke <bjoern.jacke@gmx.de>
# - first version with translation rules derived from
# metaphone.cc distributed with aspell 0.28.3
# - "TH" is now representated as "@" because "0" is a
# meta character
# - removed TH(!vowel) --> T; always use TH --> # instead
# - dropped "^AE" -> "E" (redundant)
# - "ing" is transformed to "N", not "NK"
# - "SCH(EO)" transforms to "SK" now
# - added R --> SILENT if (after a vowel) and no (vowel or
# "y" follows) like in "Marcy" or "abort"
# - H is SILENT in RH at beginning of words
# - H is SILENT if vowel leads and "Y" follows
# - some ".OUGH.." --> ...F exceptions added
# - "^V" transforms to "W"
# 2000-01-07 Kevin Atkinson <kevinatk@home.com>
# Converted from header to data file.
#
version 1.1
AH(AEIOUY)-^ *H
AR(AEIOUY)-^ *R
A(HR)^ *
A^ *
AH(AEIOUY)- H
AR(AEIOUY)- R
A(HR) _
BB- _
B B
CQ- _
CIA X
CH X
C(EIY)- S
CK K
COUGH^ KF
CC< C
C K
DG(EIY) K
DD- _
D T
�< E
EH(AEIOUY)-^ *H
ER(AEIOUY)-^ *R
E(HR)^ *
ENOUGH^$ *NF
E^ *
EH(AEIOUY)- H
ER(AEIOUY)- R
E(HR) _
FF- _
F F
GN^ N
GN$ N
GNS$ NS
GNED$ N
GH(AEIOUY)- K
GH _
GG9 K
G K
H H
IH(AEIOUY)-^ *H
IR(AEIOUY)-^ *R
I(HR)^ *
I^ *
ING6 N
IH(AEIOUY)- H
IR(AEIOUY)- R
I(HR) _
J K
KN^ N
KK- _
K K
LAUGH^ LF
LL- _
L L
MB$ M
MM M
M M
NN- _
N N
OH(AEIOUY)-^ *H
OR(AEIOUY)-^ *R
O(HR)^ *
O^ *
OH(AEIOUY)- H
OR(AEIOUY)- R
O(HR) _
PH F
PN^ N
PP- _
P P
Q K
RH^ R
ROUGH^ RF
RR- _
R R
SCH(EOU)- SK
SC(IEY)- S
SH X
SI(AO)- X
SS- _
S S
TI(AO)- X
TH @
TCH-- _
TOUGH^ TF
TT- _
T T
UH(AEIOUY)-^ *H
UR(AEIOUY)-^ *R
U(HR)^ *
U^ *
UH(AEIOUY)- H
UR(AEIOUY)- R
U(HR) _
V^ W
V F
WR^ R
WH^ W
W(AEIOU)- W
X^ S
X KS
Y(AEIOU)- Y
ZZ- _
Z S
#The rules in a different view:
#
# Exceptions:
#
# Beginning of word: "gn", "kn-", "pn-", "wr-" ----> drop first letter
# "Aebersold", "Gnagy", "Knuth", "Pniewski", "Wright"
#
# Beginning of word: "x" ----> change to "s"
# as in "Deng Xiaopeng"
#
# Beginning of word: "wh-" ----> change to "w"
# as in "Whalen"
# Beginning of word: leading vowels are transformed to "*"
#
# "[crt]ough" and "enough" are handled separately because of "F" sound
#
#
# A --> A at beginning
# _ otherwise
#
# B --> B unless at the end of word after "m", as in "dumb", "McComb"
#
# C --> X (sh) if "-cia-" or "-ch-"
# S if "-ci-", "-ce-", or "-cy-"
# SILENT if "-sci-", "-sce-", or "-scy-", or "-cq-"
# K otherwise, including in "-sch-"
#
# D --> K if in "-dge-", "-dgy-", or "-dgi-"
# T otherwise
#
# E --> A at beginnig
# _ SILENT otherwise
#
# F --> F
#
# G --> SILENT if in "-gh-" and not at end or before a vowel
# in "-gn" or "-gned" or "-gns"
# in "-dge-" etc., as in above rule
# K if before "i", or "e", or "y" if not double "gg"
#
# K otherwise (incl. "GG"!)
#
# H --> SILENT if after vowel and no vowel or "Y" follows
# or after "-ch-", "-sh-", "-ph-", "-th-", "-gh-"
# or after "rh-" at beginning
# H otherwise
#
# I --> A at beginning
# _ SILENT otherwise
#
# J --> K
#
# K --> SILENT if after "c"
# K otherwise
#
# L --> L
#
# M --> M
#
# N --> N
#
# O --> A at beginning
# _ SILENT otherwise
#
# P --> F if before "h"
# P otherwise
#
# Q --> K
#
# R --> SILENT if after vowel and no vowel or "Y" follows
# R otherwise
#
# S --> X (sh) if before "h" or in "-sio-" or "-sia-"
# SK if followed by "ch(eo)" (SCH(EO))
# S otherwise
#
# T --> X (sh) if "-tia-" or "-tio-"
# 0 (th) if before "h"
# silent if in "-tch-"
# T otherwise
#
# U --> A at beginning
# _ SILENT otherwise
#
# V --> V if first letter of word
# F otherwise
#
# W --> SILENT if not followed by a vowel
# W if followed by a vowel
#
# X --> KS
#
# Y --> SILENT if not followed by a vowel
# Y if followed by a vowel
#
# Z --> S
Zerion Mini Shell 1.0