Funktionsblock SOUNDEX

Funktionsblocket SOUNDEX beräknar ljudlikheten hos en sträng.

Soundex-värden har egenskapen att liknande uttalade ord genererar samma Soundex-värde. Detta kan användas för sökningar i databaser när du känner till uttalet men inte den exakta stavningen. Funktionen SOUNDEX returnerar en sträng med fyra tecken, börjande med en bokstav.

Ingång STR

Ingången definierar den sträng som ska beräknas.

Utgång

Returnerar en sträng med Soundex-koden.

Grundregler

Varje Soundex-kod består av en bokstav följt av tre siffror, t.ex. A532 för Antcas. Har ordet som ska kodas så många bokstäver att fler siffror skulle kunna genereras, bryts det av efter den tredje siffran. Har ordet för få bokstäver, fylls de sista siffrorna med nollor. Det asiatiska namnet Lee kommer därför att kodas som L000.

Siffra Representerade bokstäver
1 B, F, P, V
2 C, G, J, K, Q, S, X, Z
3 D, T
4 L
5 M, N
6 R

Vokalerna A, E, I, O och U samt konsonanterna H, W och Y ska ignoreras, utom i första tecknet. För det tyska språket kan man dessutom definiera: Umljuden Ä, Ö och Ü ska ignoreras, det "skarpa s" ß kodas som ett enkelt S.

Om flera på varandra följande bokstäver i den ursprungliga strängen har samma Soundex-kod, visas denna bara en gång i resultatet, av abfx blir det till exempel A120 (a behålls, eftersom första bokstaven, b och f ger båda samma kod 1, x ger 2, i slutet läggs en nolla till för att få fyra tecken).

Vid den praktiska användningen av Soundex-metoden kritiseras huvudsakligen två punkter: Å ena sidan är den mycket inriktad på det engelska språket, å andra sidan erbjuder den bara en mycket grov analys.

Trots detta kan man konstatera att algoritmen som presenteras troligen är den mest använda för fonetisk sökning. Detta har säkerligen bidragit till att en motsvarande PL/SQL-standardkommando implementerats i databasen Oracle redan mycket tidigt.