Open sov-aperogiannakis opened 7 years ago
Nun bin ich etwas verwirrt. Guckst du hier: #7 Was gilt nun?
Da fragt du mich aber etwas. Ich bin auch etwas verwirrt. Der Tabelle nach muss es meiner Meinung nach eine 8 sein:
C | nicht vor A, H, K, O, Q, U, X | 8
C als letztes Zeichen kommt ja nicht "vor" diesen Buchstaben. Ich kenne die Java-Implementierung nicht und leider hatte ich noch nicht die Zeit dazu, da etwas tiefer einzusteigen.
Tatsache ist, dass deine PHP und SQL-Implementierungen diesbezüglich auch unterschiedlich implementiert sind, so dass ich von einem Fehler im PHP-Code ausging. Das Issue ist mir leider entgangen.
Die meisten Implementierungen, die ich in meiner Webrecherche finden konnte, errechnen für ein C am Wortende eine 8. Hier orientieren sie sich wohl auch am Wikipedia-Artikel. Die Tabelle dort entspricht der, die Martin Wilz in seiner Magisterarbeit beschreibt.
Ich habe die Vermutung, dass man sich hier eher an die Endungen von Familiennamen mit slavischen Ursprung orientiert hat, z.B. Petrovic, aber auch nach Wörtern wie PC [pe:tse:]. Aber ohne einen direkten Blick in den Originalartikel von Hans Joachim Postel kann ich nicht mit Sicherheit sagen, weshalb es eine 8 und nicht eine 4 ist (wenn er überhaupt darauf eingegangen ist).
x3m_soundex_ger.php, Zeile 185:
Defaultwert für 'c', wenn sonst keine Regel zutrifft, sollte laut Tabelle eigentlich 8 sein. (in x3m_soundex_ger.sql ist es korrekt implementiert.)