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
muokkaaOsien 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ä
muokkaaSeuraava 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."