Nada

Hur Stavas suffixregler fungerar

Stavas suffixregler beskriver hur nya böjningsformer kan bildas ur de få böjningsformer som finns i Stavas ordlista.

Suffixreglerna ligger på textfilen SLlist och läses in av Stava när programmet startas. Det är möjligt att ställa om så att en egen suffixregelfil används istället för systemets, se Stavas manual.

Regeln

orna      a, an, or

talar till exempel om att Stava ska godkänna ordet dockorna om det är så att orden docka, dockan och dockor finns i Stavas ordlista.

En regel består alltså av ett ingångssuffix följt av en lista av uppslagssuffix. Det tomma suffixet tecknas i en suffixregel som @.

Tecknet # betyder i suffixregelfilen att resten av raden är en kommentar.

För att förhindra övergenerering (det vill säga att fler ord än avsett passar in) kan man utvidga en regel med diverse tillägg.

Negation av uppslagssuffix

I suffixlistan kan man ange negerade uppslagssuffix inledda med tecknet ~
Regeln

samma      sam, ~samen

säger till exempel att varsamma ska godkännas eftersom varsam men inte varsamen finns i ordlistan. Här har man lagt till det negerade suffixet ~samen   för att förhindra att ord som balsamma ska godkännas (för balsam finns ju).

Bokstav som föregår suffix

Man kan ange att en regel bara ska användas för ord där suffixet (närmast) föregås av en viss bokstav (eller någon av en uppsättning bokstäver). Ingångssuffixet ska då föregås av dom tillåtna bokstäverna omgärdade av [ och ]. Notationen är alltså samma som i reguljära uttryck i Unix.
Exempel: Regeln

[uå]rna      @, n, r, ~dde, ~ra

godkänner suffixet -rna endast om det föregås av u eller å. Detta innebär till exempel att ordet basturna godkänns men inte vararna.

Kanske ännu mer användbart är möjligheten att förbjuda vissa bokstäver före suffixet. Ingångssuffixet ska då föregås av dom förbjudna bokstäverna omgärdade av [^ och ].
Exempel: Regeln

[^sxz]s      @, en, er

godkänner genitivsuffixet -s när det inte föregås av s, x eller z. Detta innebär till exempel att ordet films godkänns men inte sfinxs.

Bokstavsföljder som föregår suffix

Ibland vill man förbjuda att vissa bokstavssträngar föregår suffixet. Det gör man genom att ange strängarna inom parentes och avskilda med | före suffixet (och före eventuellt [ ]-uttryck).
Exempel: Regeln

(ar)ena      e, et, en, ~ar, ~er

godkänner suffixet -ena när det inte föregås av ar. Detta innebär till exempel att ordet samhällena godkänns men inte altarena.

Om man vill förbjuda el, en och er före suffixet -aste så inleder man regeln med (el|en|er)aste

Vad får föregå suffixet?

Stavas suffixregler tillämpas normalt bara om orddelen före suffixet består av minst en stavelse (det vill säga inte bara konsonanter). Detta kan man stänga av genom att skriva <B> allra först i regeln. Då får orddelen före suffixet till och med vara tomma strängen.

EBNF-grammatik för suffixregler

suffixrule ::= restriction suffix suffixlist
restriction ::= [searchfrombeginning] [forbiddenending] [allowedlastletters|forbiddenlastletters]
searchfrombeginning ::= '<B>'
suffix ::= '@' | letters
suffixlist ::= suffix {',' ['~']suffix}
forbiddenending ::= '(' letters {'|' letters} ')'
allowedlastletters ::= '[' letters ']'
forbiddenlastletters ::= '[' '^' letters ']'
letters ::= letter {letter}

Upp till Stavas hemsida.


Sidansvarig: Viggo Kann <viggo@nada.kth.se>
Senast ändrad 6 april 2020