Ordbank-APIen er en REST-API som gir tilgang til ord (lemma) og relaterte ressurser i ordbanken.
For å få en beskrivelse av et lemma kan man enten søke eller slå direkte opp på ID. Andre ressurser kan slås opp på ID, eller listes ut. Spesifikasjonen til APIen ligger her
Lemma er en fagterm for et oppslagsord i en ordbok e.l. I ordbanken kan man søke etter, eller slå opp på lemma.
Spesifikasjonen til denne operasjonen finner du her
GET /api/lemmas/34290 HTTP/1.1
Accept: application/json
…resulterer i
HTTP/1.1 200 Ok
Content-Type: application/json
{
"id": 34290,
"lemma": "katt",
"type": 0,
"subcat_tags": [],
"language": "nob",
"type_designation": "lemma",
"word_class": "NOUN",
"paradigm_info": [
{
"paradigm_id": 557,
"tags": ["subst", "mask", "apell"],
"standardisation": "STANDARD",
"from": "1996-01-01",
"to": null
}
],
"standardisation_timeline":[{
"from": "1996-01-01",
"to": null,
"standardisation": "STANDARD"
}]
}
Feltet lemma er det sentrale her, og inneholder grunnformen til det aktuelle ordet. Se lenger nede for forklaring av feltene type og paradigm_info.
“Katt” er et enkelt ord, la oss se på “kattedyr” som er et sammensatt ord:
{
"id": 34298,
"lemma": "kattedyr",
"type": 0,
"subcat_tags": [],
"language": "nob",
"type_designation": "lemma",
"initial_lexeme": "katt",
"final_lexeme": "dyr",
"junction": "e",
"initial_lexeme_class": 0,
"word_class": "NOUN",
"paradigm_info": [
{
"paradigm_id": 659,
"tags": ["subst", "nøyt", "apell"],
"standardisation": "STANDARD",
"from": "1996-01-01",
"to": null
}
],
"standardisation_timeline": [{
"from": "1996-01-01",
"to": null,
"standardisation": "STANDARD"
}]
}
Her kommer i tillegg feltene initial_lexeme (forledd) som er første del av det sammensatte ordet. final_lexeme er etterleddet, og junction er en streng som binder sammen de to leddene. initial_lexeme_class er ID-en til forleddets ordklasse.
Feltet type i resultatene er en numerisk verdi mellom 0 og 9 (inklusive):
| id | kode | forklaring |
|---|---|---|
| 0 | lemma | vanlig ord |
| 1 | expr | utrykk |
| 2 | suff | suffiks |
| 3 | pref | prefiks |
| 4 | abbr | forkortelse |
| 5 | symb | symbol |
| 6 | title | tittel |
| 7 | ref | ? |
| 8 | prob | ? |
| 9 | name | navn |
Feltet type_designation inneholder koden.
paradigm_info)Språkrådet fastsetter til enhver tid hva som er korrekt rettskrivning, dette kalles normering. Normering av ord er knyttet til bøyningsmønstre, på fagspråket kalt paradigmer. Dette uttrykkes i feltet paradigm_info i beskrivelsen av et lemma. Tilbake til eksemplet for “katt”:
{
"paradigm_info": [
{
"paradigm_id": 557,
"tags": ["subst", "mask", "apell"],
"standardisation": "STANDARD",
"from": "1996-01-01",
"to": null
}
]
}
Dette forteller oss at ordet “katt” skal bøyes etter paradigmet med ID 557. Det vet vi fordi verdien til standardisation er lik STANDARD som betyr “normert”, og at denne assosiasjonen mellom lemma og paradigme ikke har noen sluttdato to. Et ord kan ha flere normeringer samtidig, f.eks. ble alle bokmålssubstantiv av hunkjønn på et tidspunkt normert til også å kunne bøyes som hankjønnsord.
Feltet standardisation_timeline oppsummerer denne informasjonen med en tidslinje for hver normeringsstatus.
For å få alle bøyninger inkludert i resultatet bruker man query-parameteret inflect. Eksempel:
GET /api/lemmas/34290?inflect=true HTTP/1.1
Accept: application/json
…resulterer i
HTTP/1.1 200 Ok
Content-Type: application/json
{
"id": 34290,
"lemma": "katt",
"type": 0,
"subcat_tags": [],
"language": "nob",
"type_designation": "lemma",
"word_class": "NOUN",
"paradigm_info": [
{
"paradigm_id": 557,
"standardisation": "STANDARD",
"from": "1996-01-01",
"to": null,
"inflection": [
{
"word_form": "katt",
"tags": [
"subst",
"mask",
"appell",
"ent",
"ub"
]
},
{
"word_form": "katten",
"tags": [
"subst",
"mask",
"appell",
"ent",
"be"
]
},
{
"word_form": "katter",
"tags": [
"subst",
"mask",
"appell",
"fl",
"ub"
]
},
{
"word_form": "kattene",
"tags": [
"subst",
"mask",
"appell",
"fl",
"be"
]
}
]
}
]
}
Bøyningene kommer som lister av strenger assosiert med paradigmet som ble brukt til å produsere bøyningene. For å få info om hvilke former disse bøyningene er må man fokusere på selve paradigmet ordet er bøyd etter. Mer om dette lenger nede.
Man kan søke etter lemma. “Wildcards” i form av asterisk er tillatt.
GET /api/lemmas?query=katt* HTTP/1.1
Accept: application/json
…resulterer i
HTTP/1.1 200 Ok
Content-Type: application/json
[
{
"id": 34290,
"lemma": "katt",
"language": "nob",
"href": "/api/lemmas/34290"
},
{
"id": 34298,
"lemma": "kattedyr",
"language": "nob",
"href": "/api/lemmas/34298"
},
{
"id": 1045448,
"lemma": "katt",
"language": "nno",
"href": "/api/lemmas/1045448"
},
...
]
Siden det er potensielt mange treff i et slikt søk er resultatene i utgangspunktet strippet ned til å inneholde id og oppslagsord. Feltet href inneholder en URL for direkte oppslag på lemmaet. Query-parameter stubs=false gir fullstendige resultater. Maks. 2000 ufullstendige og maks. 300 fullstendige resultater returneres. Hvis antallet treff man får stemmer med disse tallene må man anta at resultater har blitt utelatt. I så fall bør søket gjøres mer spesifikt.
For å søke i bøyde former av ord kan man legge til query-parameteren search_inflection=true. Dette vil f.eks. gi treff på verbet “å fly” dersom man søker på “fløy”.
For å begrense søket til én av målformene. bruk query-parameter language med én av verdiene nob (bokmål) eller nno (nynorsk)
For å søke i et utvidet utvalg av ord (og uttrykk), bruk query-parameter extended_vocabulary=true
For mer info, se spesifikasjonen
Et paradigme er et bøyningsmønster. Man kan slå opp paradigmer enten på
unik ID (denne refereres det til i output for lemma), eller på kombinasjonen språk-id og kode.
Eksempel på oppslag på id:
GET /api/paradigms/135 HTTP/1.1
Accept: application/json
Eksempel på oppslag på språk (nob = bokmål) og kode (‘22A’, gir mening for de som arbeider med dette til daglig):
GET /api/paradigms/nob/22A HTTP/1.1
Accept: application/json
I begge tilfeller får man følgende resultat:
HTTP/1.1 200 Ok
Content-Type: application/json
{
"id": 135,
"language": "nob",
"code": "22A",
"description": "sterk vokalskifte_Y>ØY>O pret_0 perf_+ET adj_m/f_+ET adj_be_fl_NE",
"inflection_group": "VERB"
"inflection": [
"y+e",
null,
"y+er",
"y+es",
"øy+",
"o++et",
"o++et",
"o++et",
null,
"o+ne",
"o+ne",
"y+ende",
"y+",
null,
null
],
}
id er paradigmets unike ID.language er språket paradigmet er definert for (nob=bokmål, nno=nynorsk)code er koden leksikografene bruker til å referere til paradigmet. Samme kode kan forekomme i begge språk.description er en kort beskrivelse av paradigmet.inflection_group er IDen til bøyningsgruppen paradigmet er assosiert med (se lenger nede)inflection (bøyninger) er en liste av strenger som brukes til å bøye et ord. De grammatiske formene disse strengene representerer kan man finne ved å slå opp på paradigmets bøyningsgruppe.Alle paradigmer (unntatt noen få som ikke inneholder bøyningsinformasjon) tilhører en bøyningsgruppe. Hver slik bøyningsgruppe definerer en liste med grammatiske former, og bøyningene i et paradigme samsvarer med formene til bøyningsgruppen som paradigmet tilhører. Man kan liste ut, eller slå opp bøyningsgrupper.
Eksempel på oppslag:
GET /api/inflectionGroups/0 HTTP/1.1
Accept: application/json
…resulterer i:
HTTP/1.1 200 Ok
Content-Type: application/json
{
"id": "ADJ",
"word_class": "ADJ",
"designation": "adjektiv",
"forms": [
19,
22,
21,
20,
24,
27,
26
]
}
id er bøyningsgruppen unike idword_class er en refranse til ordklassen bøyningsgruppen tilhørerdesignation er et beskrivende navnforms er listen over de grammatiske formene alle bøyningsgruppens paradigmer må implementereKomplett utlisting:
GET /api/inflectionGroups HTTP/1.1
Accept: application/json
Resultatet er en komplett liste med objekter som ovenfor.
Hver grammatiske form tilhører en ordklasse. Formene en bøyningsgruppe bruker må tilhøre samme ordklasse som bøyningsgruppen.
Eksempel på oppslag:
GET /api/forms/0 HTTP/1.1
Accept: application/json
…resulterer i:
HTTP/1.1 200 Ok
Content-Type: application/json
{
"id": "VERB",
"word_class": "VERB",
"code": "inf"
}
id er formens unike idword_class er en refranse til ordklassen formen tilhørercode er en kode for å referere til formenKomplett utlisting:
GET /api/forms HTTP/1.1
Accept: application/json
Resultatet er en komplett liste med objekter som ovenfor.
Ordklasse er den mest generelle klassifiseringen av ord (via paradigme og bøyningsgruppe).
Eksempel på oppslag:
GET /api/wordClasses/0 HTTP/1.1
Accept: application/json
…resulterer i:
HTTP/1.1 200 Ok
Content-Type: application/json
{
"id": "NOUN",
"designation": "Substantiv"
}
id er ordklassens unike iddesignation er et beskrivende navnKomplett utlisting:
GET /api/wordClasses HTTP/1.1
Accept: application/json
Resultatet er en komplett liste med objekter som ovenfor.
For en komplett beskrivelse av API-en, se https://ordbank.uib.no/swagger-ui.html