Karl Ove Hufthammer

Ordbanken – norsk bøying på ein lett måte

Kva er fleirtal av ordet «forum» på nynorsk? Kva heiter «å lata» i presens, preteritum og imperativ? Heiter det offisielt «ei appelsin», «ein appelsin» eller «eit appelsin»? Når du er ferdig med å lesa nokre bøker, er bøkene då «leste», eller er dei «lesne»? Tilsvarande, når du ein varm sommarkveld sit og nyt ei korg ferske jordbær, kva vil du seia jordbæra er etterpå? «Nytne»? «Nautne»? «Nøtne»?

Bøying på norsk er ikkje alltid like lett. Heldigvis har me Bokmålsordboka og Nynorskordboka på nett, men oppføringane der er ikkje alltid fullstendige nok til å vera til hjelp for oss ikkje-filologar. Dette er for eksempel det ordbøkene seier om «å lese» og «å nyte»:

Her finn me verken «leste» eller «lesne», sidan ordboksoppføringane ikkje viser fullstendig bøying. Men eitt av alternativa er rett, og me kan finna fram til dette om me veit å lesa oppføringane og kjenner grundig til reglane for samsvarsbøying på norsk. Språkrådet har ei enkel men ufullstendig innføring i full samsvarsbøying, og i bladet Statsspråk nr. 4/97, finn me ei meir omfattande oversikt (med overskrifter som «Berre for spesialistar» og «Berre for professorar»). Men det er tungt å læra og å hugsa alle desse reglane – finst det ikkje ei lettare løysing? Jo, no finst det endeleg det!

[Oppdatering august 2012: Ordbøkene på nett er no kraftig forbetra, slik at dei òg viser fullstendig bøying for ord. Men det er likevel mange fordelar med å bruka programmet omtalt her, so les vidare!]

Prøv Linux-programmet Ordbanken. Med dette er fullstendige bøyingar av alle orda på bokmål og nynorsk berre nokre tastetrykk unna. Syntaksen er veldig enkel:
ordbanken [VAL] grunnord [KRITERIUM1] [KRITERIUM2] …

Eksempel: ordbanken appelsin

appelsin appelsin subst mask appell eint ub
appelsin appelsinen subst mask appell eint bu
appelsin appelsinar subst mask appell fl ub
appelsin appelsinane subst mask appell fl bu

Her viser koden «mask» og blåfargen at ordet berre kan vera «hankjønn» på nynorsk, sjølv om mange dialektar har det som hokjønn eller inkjekjønn. (Det finst for øvrig ord som kan vera både han-, ho- og inkjekjønn på nynorsk, som for eksempel «greip».)

Koden «subst» viser at det er snakk om eit substantiv, mens «eint» og «fl» og «bu» og «ub» indikerer høvesvis eintal, fleirtal, bunden og ubunden form. Det finst òg mange andre kodar. Her er eit eksempel for ordet «hoppe»:

hoppe hoppa adj <perf-part> fl
hoppe hoppa adj <perf-part> bu eint
hoppe hoppa adj <perf-part> m/f ub eint
hoppe hoppa adj <perf-part> nøyt ub eint
hoppe hoppande adj <pres-part>
hoppe hoppa subst fem appell eint bu
hoppe hoppe subst fem appell eint ub
hoppe hoppene subst fem appell fl bu
hoppe hopper subst fem appell fl ub
hoppe hoppast verb
hoppe hopp verb imp
hoppe hoppa verb imp
hoppe hoppe verb imp
hoppe hoppa verb inf
hoppe hoppe verb inf
hoppe hoppa verb perf-part
hoppe hoppar verb pres
hoppe hoppa verb pret

Det kan altso vera snakk om både eit verb eller eit substantiv. Me kan òg filtrera etter dei ulike kodane, so viss me berre var interesserte i substantivet, kunne me skriva:
ordbanken hoppe subst

Her er nokre andre brukseksempel. Merk at oppslagsordet må vera fullstendig, mens det held å bruka starten av eventuelle kodar.

Bøying av ordet «å lese»:
ordbanken lese

Eller med a-infinitiv:
ordbanken lesa

Berre perfektum partisipp-former:
ordbanken lese perf

Ordet «hoppe», men berre som substantiv:
ordbanken hoppe subst

Bøying av «å finnes» på bokmål:
ordbanken --sprak=nb finnes

Fleirtal av substantivet «hoppe» på bokmål:
ordbanken -snb hoppe su fl

Ordet «annan», men utan fargekoding:
ordbanken --ikkje-fargekod annan

Same som over, berre mindre å skriva:
ordbanken -F annan

Lagra resultatet som HTML i fila «annan.html»:
ordbanken --html annan > annan.html

Alle oppslagsorda som startar på «kr», etterfølgd av éin vilkårleg bokstav, so bokstavane «ss», so eventuelt nokre vilkårlege bokstavar, og til slutt ein «d». Dette finn blant anna ordet «kryssord»:
ordbanken kr_ss%d

Alle oppslagsorda som sluttar på «rama» men ikkje på «drama» (klarar du å komma på eit‽):
ordbanken -r [^d]rama$

Bokmålsord med minst 5 etterfølgjande vokalar (det finst fleire!):
ordbanken -snb -r "[aeiouyæøå]{5}"

Programmet støttar òg autofullføring via «bash completion». Viss du har installert og slått på dette, kan du bruka tabulator- tasten slik (køyr ordbanken --eksempel for fleire eksempel):

$ ordbanken -[tab]

(Liste over alle mulege argument vart vist.)

$ ordbanken --sprak nn ym[tab]

(Liste over alle nynorskord som startar med «ym» vart vist.)

$ ordbanken --sprak nn hoppe [tab]

(Liste over alle filtreringskriteria me kan bruka for nynorskordet «hoppe».)

Orddatabasen som vert brukt er Norsk ordbank, som vert utvikla og vedlikehalden av Universitet i Bergen, i samarbeid med Språkrådet. Bokmålsordboka og Nynorskordboka på nett brukar for øvrig den same databasen.

Programmet er heilt gratis og fri programvare, og er tilgjengeleg under GNU GPL versjon 3 eller seinare. Du kan lasta det ned frå den offisielle prosjektsida, som ein openSUSE-pakke eller som ein Gentoo-pakke. Du kan òg melda deg på e-postlista vår dersom du vil diskutera programmet og/eller halda deg oppdatert på utviklinga.

Til slutt, her er svara på spørsmåla i innleiingsteksten:

38 kommentarar

  1. Forresten, på Mac fungerer ikkje cp -t eller extended regexp i sed. Eg nyttar SuperSed (sudo port install ssed om ein har MacPorts) i staden for sed, då må install-delen i Makefile sjå slik ut:

    (evt. kunne Makefile sjekka for sed-versjon og nytta ssed om det var tilgjengeleg. Det er vel ikkje verdt det å omskrive alle sed-uttrykk til vanleg regexp …)

  2. Ja, eg har brukt GNU-utvidingane til cp og sed. Eg har no endra cp -t og ein del anna for å gjera Makefile-fila POSIX-kompatibel (denne versjonen ligg i SVN), men er usikker på nokre av endringane du foreslår. Korfor treng du '' og -e i sed-kommandoane? Det skal ikkje vera nødvendig ifølgje POSIX.

    I prinsippet skal uansett no både Makefile-fila og ordbanken-skriptet vera POSIX-kompatible, men sistnemnte brukar GNU-utvidingane til sed. På sikt skal eg kanskje sjå om eg kan klara å unngå dette òg.

  3. UNIX har

    -i[SUFFIX], --in-place[=SUFFIX]
    edit files in place (makes backup if extension supplied)

    medan Mac (BSD?) har:

    -i extension
    Edit files in-place, saving backups with the specified extension.

    dvs. dei krev eit argument til -i. Det er heilt sikkert ikkje POSIX (den innebygde sed-en til Mac er ganske irriterande).

  4. OK. Eg har uansett fjerna -i frå koden, so iallfall Makefile-fila skal fungera på både POSIX-system og på Mac.

    Planane vidare er for øvrig å gjera nokre større endringar i filformatet for å gjera oppslag og autofullføring raskare.

  5. Dette ser veldig bra ut! Hva med ordbankensøk online? Hadde vært gull for oss som ikke har lov til å installere ting på jobb-PCen 🙂

    1. Eg har tenkt på ei slik nettenesta, men har ikkje nokon konkrete planar. Men det var ein annan som nemnte at han vurderte å laga noko slikt, so det vert kanskje noko av.

  6. Etter endringa i fullform_nn.dat får eg ikkje noko treff med look på Mac OS X. Om eg køyrer

    look hei ordbanken-for-to-versjonar-sidan/fullform_nn.dat

    får eg masse treff, men ingenting med dei to nyaste versjonane. Eg reknar med det har å gjere med dei sorteringstala som no står først i fullform_nn.dat… skal dei vere der? T.d.

    36118 heimeyrke heimeyrke subst nøyt appell fl ub klammeform 811 3

    Eg kan skrive «look 36118 …» og få opp treffet. Veit du kva som er gale?

    1. Verken talkodane på starten eller slutten av linjene skal vera med i .dat-filene; dei skal berre stå i .txt-filene. Her har det skjedd noko gale ved genereringa. Får du nokon feilmelding når du kjører skriptet som lagar filene?

      1. Det var visst nokre kommandoar som ikkje var heilt POSIX-kompatible. Har du høve til å testa SVN-versjonen? Der er iallfall dette retta. (Men kommandoane har ikkje vore POSIX-kompatible nokon gong, so det er rart viss ting verka før men ikkje no.)

        1. Forrige gong eg fekk det til å fungere nytta eg jo ssed i skript/optimer, dette fungerte no au (i SVN-versjonen).

          Men då eg prøvde med vanleg sed (dvs. utan å endre noko frå SVN-versjonen) heldt `make» på i ein time utan at noko skjedde, veit ikkje kvifor… (Det er godt mogleg at darwin-sed rett og slett ikkje er POSIX :-/ )

          1. Grunnen til at følgjer POSIX, er jo at eg ønskjer at programmet skal vera kompatibelt på tvers av ulike plattformer og versjonar av program. Derfor brukar eg berre dei standard sed-kommandoane.

            At darwin-sed ikkje støttar dei, er iallfall veldig kritikkverdig. Det kan jo òg vera at programmet berre er veldig tregt. Du kan eventuelt prøva å kjøra det på ei redusert .txt-fil med berre ei handfull linjer, for å sjå kva som skjer.

          2. Eg fann, eg fann!

            Første sed-linja i skript/optimer har ein «\n» i seg. Darwin-sed taklar ikkje «\n» (eller «\t»). Eg pleier å rett og slett skrive

            N=»\\
            »
            sed …${N}…

            i staden. Dette fungerte iallfall for meg =D

          3. Det kan eg nok ikkje endra. POSIX-standarden seier at «The escape sequence «\n» shall match a <newline> embedded in the pattern space. A literal <newline> shall not be used in the BRE of a context address or in the substitute function.»

            Du får melda frå om feilen til utviklarane av Darwin-sed …

          4. Nei, det er ikkje tvetydig, so vidt eg kan sjå. Eg har brukt ein \n i substitute-funksjonen, og denne reagerer på ein <newline> (eit linjeskift) i «pattern space». Den einaste måten ein <newline> kan komma inn i «pattern space» på, er via hold-funksjonen.

    1. Ja, «-W posix» trengst (ironisk nok for å bruka ein ikkje-POSIX-funksjon for å seia at POSIX-modus skal brukast). Viss ikkje standardprogrammet på Mac taklar dette, er det ikkje POSIX-kompatibelt.

  7. Slenger meg på oppfordringen om en nettjeneste, som jeg kunne brukt sammen med følgende:

    Firefox-tips: Med nøkkelord for søkemotorer kan man sette opp «søkekommandoer» i adressefeltet til Firefox (pilen i søkefeltet, «Behandle søkemotorer», «Rediger nøkkelord»; Add to Search Bar for å legge til egne søk). Dersom jeg vil slå opp ordet «hjelpe» i Bokmålsordboka, trykker jeg Alt + D (for å skifte til adressefeltet) og skriver

    o hjelpe

    og bam!, definisjonen kommer opp. (Flere eksempler: d slår opp på Dictionary.com, iIMDb og wWikipedia.)

    Prøv selv – det sparer enormt med tid.

    I hvert fall, dersom Ordbanken fantes som nettjeneste, kunne jeg omdirigert o <ord> til denne og sluppet å forholde meg til kryptiske grammatikkoder. (En annen mulighet ville være å skrive en liten Firefox-utvidelse som dro nytte av --html-valget.)

  8. Ordbanken finst no i ei fin AUR-pakke for Arch Linux-brukarar:
    http://aur.archlinux.org/packages.php?ID=40462

    Eg måtte ikkje gjere noko spesielt for å få laga pakka, utanom desse linjene:

    sed -i 's%PREFIX=${DESTDIR}/usr/local%PREFIX=${DESTDIR}/usr%' Makefile
    sed -i 's%mappe="/usr/local/share/ordbanken"%mappe="$(dirname $0)/../share/ordbanken"%' skript/ordbanken

    sidan AUR-pakker først blir installert som vanleg brukar til ei midlertidig mappe, og så installert under /usr (ikkje /usr/local, sidan local berre skal ha ting ein installerer utan å gå vegen gjennom byggesystemet til distribusjonen)

  9. Jeg tror ikke programmet fungerer helt som det skal på Ubuntu 10.04. Her er resultatet for ordbanken appelsin:

    appelsin appelsinen subst mask appell ent be
    appelsin bergamottappelsinen subst mask appell ent be
    appelsin blodappelsinen subst mask appell ent be
    appelsin appelsin subst mask appell ent ub
    appelsin bergamottappelsin subst mask appell ent ub
    appelsin blodappelsin subst mask appell ent ub
    appelsin appelsinene subst mask appell fl be
    appelsin bergamottappelsinene subst mask appell fl be
    appelsin blodappelsinene subst mask appell fl be
    appelsin appelsiner subst mask appell fl ub
    appelsin bergamottappelsiner subst mask appell fl ub
    appelsin blodappelsiner subst mask appell fl ub

    1. Ja, det er visst ein stygg feil i Ubuntu, og som ikkje ser ut til å finnast i nokon andre distroar. Programmet look fungerer rett og slett ikkje skikkelig på Ubuntu.

      Du kan endra ordbankprogrammet til å ikkje bruka look, for eksempel ved å endra linja LOOK_FINST=$? til LOOK_FINST=1. Programmet vil då fungera mykje tregare, men vil gje rett svar.

  10. Du byrjar soleis: ‹Kva heiter «å late» i presens, preteritum og imperativ?›

    Heiter det offisiellt «å late»? Finst det ei over-nemneform som har e-infinitiv?

    Sjølv nyttar du a-infinitiv. M.a.o.: ‹Kva heiter «å lata» i presens, preteritum og imperative›.

    Berre dersom brukaren kan velja mellom a-infinitiv og e-infinitiv (og kløyvd infinitiv), kan Ordbaken seiast vera fullstendig på verbformene.

    1. Nei, a-infinitiv og e-infinitiv er jamstilte. Men ordbanken har berre éi av formene som oppslagsord (e-varianten), nett som andre ordlister. Det kan ein for so vidt meina kva ein vil om, men slik er det. Det gjeld for øvrig òg andre typar ord. For eksempel er berre «andast», ikkje «andas» oppslagsord, sjølv om «å andas» er ein heilt lovlig infinitiv.

  11. «Å andas» er ei klammeform, og klammeformer har i praksis aldri vore heilt lovlege — annat en i hovuda til sume prinsippielle sjeler. Det er synd at ei form som er heilt lovleg (a-infinitiv) i ordboka vert handsama på same måte som ei klammeform (andas).

    Eg er elles ute etter kva dette me oppslagsformene i praksis har å seia: Det fører til auka bruk av e-infinitiv at det jamt over er e-infinitiv som vert nytta til oppslagsform. Og du kan vera trygg på at det å taka ut «andas» frå lista verkar i same retning.

    Me har tri infinitivar i nynorsk: a-, e- og kløyvd infinitiv. Det mest logiske, dersom ein ikkje vil skriva alle tri formene i kvart oppslag, hadde vore å nytta kløyvd infinitiv som oppslagsform. Då hadde det vore lettare å få inn kløyvd infitiv – for dei som vil nytta honom, so vel som lettare – for alle andre, å skjøna at ein sjølv må velja infinitiv. I tillegg hadde alle a-infinitivsnyttarar funne «sin eigen» infinitiv att i ordboka – for sume verb. I tillegg hadde produsentane av elektroniske ordbokøker då måtta gjort ein skikkeleg jobb når det galdt det med gode brukaropplevingar når ordboksnyttaren spør etter ein annan infinitiv en den som ordet står førd med.

    Koss det no er med det ovannemnde, so var poengen å få fram at ordbanken ikkje er so komplett som ein kunne få inntrykk av.

    No er det er ikkje noko nytt at ein ikkje kan slå opp på a-infinitiv/kløyvd infinitiv. På det viset skjønar eg at du, i siste artikkelen din om saka, framhevar at «andas» er teke ut, utan å samstundes poengtera at a-infinitiv òg vantar. Men det hadde vore rimeleg å poengtera – einkvan staden, i nærleiken av ordbanken-filene – kva slag svar ordbanken ikkje gjev. Kan ein t.d. finna «vere» der (som i «takka vere» – som det jo alltid skal heita, sidan det ikkje er ein infinitiv) ?

Legg til kommentar

E-postadressa vert ikkje synleg for andre. Obligatoriske felt er merkte med *.