Wikisanakirja:Semanttinen merkkaus

Tässä ohjeessa kuvataan toiminnallisuutta jonka kehitys on vielä kesken. Sivu on tarkoitettu lähinnä kehityksen apuvälineeksi, ei yleiseen käyttöön.

Osa Wikisanakirjasta löytyvästä aineistosta, lähinnä taivutustiedot, on varustettu semanttisilla merkinnöillä, jota voidaan käyttään esimerkiksi tietojenkäsittelyssä. Tälle sivulle on koottu merkintöjen dokumentaatio.

Toistaiseksi merkkaus löytyy kaiksista suomen substantiivien taivutustaulukoista sekä osasta venäjän substantiivien taulukoista.

Taivutustaulukon sisältämät linkit on kääritty span-elementtiin, jolla on class-attribuutti linkki sekä data-kuvaus-attribuutti. Esim. sivun tieto taivutustaulukon kohdassa yksikön elatiivi on seuraavanlainen koodi.

<span class="Zzzz linkki" data-kuvaus="tm/*/s/y-elat" lang="fi">
<a ...>...</a>
</span>

Taivutusmuodoilla data-kuvaus-attribuutin arvo noudattaa seuraavaa muotoa: tm/<kieli>/<sanaluokka>/<taivutusmuodon tunnus>.

Merkkijonon alkuosassa eri osat on eroteltu vinoviivoilla ja loppuosa viivoilla. Alkuosaa käytetään taivutusmuotoja luovien artikkelipohjien järjestämiseen eikä sitä tarvitse taivutusmuotojen hakemiseen. Ainoa oleellinen osa on ensimmäinen.

Ensimmäinen osa on taivutusmuodilla aina joko tm tai tmx. Jälkimmäinen tarkoittaa, että kyseisen linkin takana on lisää taivutusmuotoja. Tätä käytetään esimerkiksi verbien nominaalimuodoilla.

Kieli osaa käytetään luontipohjien järjestämiseen eikä sillä ole merkitystä tässä. Linkin osoittaman sanan kielen saa tarvittaessa span-elementin lang-attribuutista. Kieli osan arvo on joko sama kuin lang-attribuutin arvo tai *.

Sanaluokka kertoo linkin sanan sanaluokan sen arvo on jokin seuraavista.

merkintä merkitys
a adjektiivi
adv adverbi
n yhteinen nomineille
s substantiivi
v verbi

Tätä tietoa ei luultavasti yleensä tarvita, sillä taivutusmuodon nimi kertoo kaiken oleellisen sanan käyttöyhteydestä.

Taivutusmuodon tunnus-osa sisältää taivutusmuodon kuvaavia lyhenteitä viivoilla erotettuna. Nämä lyhenteet on lueteltu allaolevassa taulukossa.

Esim. tm/*/s/y-gen tarkoittaa yksikön genetiiviä.

Jos linkin kohde kuvaa useampaa taivutusmuotoa, on nämä merkitty joko erillisillä linkeillä tai samaan linkkiin merkityllä toisella taivutusmuodon tunnuksella välillä erotettuna. Viinoviivoin eroteltua alkuosaa ei toisteta. Esim.

tm/*/s/y-nom y-akk vastaa erillisiä linkkejä tm/*/s/y-nom ja tm/*/s/y-akk

Taivutusmuotojen lyhenteet

muokkaa

Osien välisen järjestyksen näkee parhaiten artikkelipohja/tm -sivulta.

merkintä merkitys
abess abessiivi
abl ablatiivi
adess adessiivi
akk akkusatiivi
all allatiivi
dat datiivi
elat elatiivi
ess essiivi
gen genetiivi
ill illatiivi
iness inessiivi
ins instruktiivi
instrum instrumentaali
kom komitatiivi
mon monikko
nom nominatiivi
part partitiivi
pre prepositionaali
tr translatiivi
y yksikkö

Esimerkkejä

muokkaa

Seuraava Python-ohjelma hakee kana-sanan monikon partitiivin ja tulostaa sen lauseessa.

Tässä käytetään apuna Requests- ja BeautifulSoup-kirjastoja.

import requests
from bs4 import BeautifulSoup

# Haetaan ''kana''-sivun sisältö.
url = 'https://fi.wiktionary.org/w/index.php'
resp = requests.get(url, params = {'title' : 'kana'})
soup = BeautifulSoup(resp.text, 'lxml')
    
# Valitaan sivulta span-elementit, joihin on merkitty 'data-kuvaus'-attribuutti, jonka arvossa on 'mon-part'.
tmElems = soup.select('span[data-kuvaus*=mon-part]')
# Tuloksena on aina lista, koska samannimisiä taivutusmuotoja voi olla useita.
if len(tmElems) == 0:
    raise Exception("Taivutusmuotoa ei löytynyt")

# Span-elementtien tekstisisältö on sanan taivutusmuoto.
print(f"Pihalla on {tmElems[0].text}.") # Tulostaa "Pihalla on kanoja."