Funksjonsblokk SOUNDEX

Funksjonsblokken SOUNDEX beregner lydlikheten til en streng.

Soundeksverdier har egenskapen at ord som uttales likt genererer samme soundeksverdi. Dette kan brukes til søk i databaser når du kjenner uttalen, men ikke den eksakte stavemåten. Funksjonen Soundex returnerer en streng på fire tegn, begynnende med en bokstav.

Inngang STR

Inngangen definerer den strengen som skal beregnes.

Utgang

Returnerer en streng med Soundex-koden.

Grunnregler

Hver soundeks-kode består av en bokstav fulgt av tre siffer, for eksempel A532 for Antcas. Har ordet som skal kodes så mange bokstaver at man kunne generere flere siffer, bryter man etter det tredje sifferet. Har ordet for få bokstaver, fyller du de siste sifrene med nuller. Det asiatiske navnet Lee blir derfor kodet som L000.

Siffer Representerte bokstaver
1 B, F, P, V
2 C, G, J, K, Q, S, X, Z
3 D, T
4 L
5 M, N
6 R

Vokalene A, E, I, O og U og konsonantene H, W og Y skal ignoreres, unntatt for det første tegnet. Videre kan det defineres for det tyske språket: Umlautene Ä, Ö og Ü skal ignoreres, det "skarpe S" ß kodes som det enkle S.

Har flere påfølgende bokstaver i den opprinnelige strengen samme soundeks-kode, vises denne bare én gang i resultatet, fra abfx blir det derfor omtrent A120 (a forblir, fordi første bokstav, b og f gir begge samme kode 1, x gir 2, til slutt legges en null til for å få fire tegn).

Ved den praktiske anvendelsen av Soundex-metoden blir hovedsakelig to punkter kritisert: For det første er den svært rettet mot det engelske språket, og for det andre tilbyr den bare en meget grov analyse.

Likevel må det understrekes at algoritmen som presenteres sannsynligvis er den mest brukte for fonetisk søk. Dette har sikkert bidratt til at en tilsvarende PL/SQL-standardkommando ble implementert i databasen Oracle allerede tidlig.