[voikko] Voinko käyttää Voikkoa sanojen ohjelmalliseen "kasaamiseen"

Harri Pitkänen hatapitk at iki.fi
Thu May 3 23:23:47 EEST 2018


Hei!

Mika Vilpas kirjoitti 2018-05-02 23:25:
> 1. Voinko tehdä ohjelmallisesti kutsuja jollekin Voikon osalle
> tyyliin "antaisitko tämän sanan monikkomuodon: koira" -> vastaus:
> "koirat"? Oma ohjelmani luonnollisesti pitäisi huolta, että
> pyydetään järkeviä asioita.

Tämä ei vielä ole mahdollista, mutta toiminnallisuus on kyllä 
mahdollista toteuttaa, koska nykyisen sanastoformaatin suunnittelussa se 
on jo huomioitu. Lisää tästä viestini lopussa.

> 2. (liittyen kysymykseen 1) Onko mahdollista luoda yhdyssanoja?
> Esimerkiksi "noita-akka" viivan kera.

Voikko tukee yhdyssanoja varsin hyvin, joten tästä tuskin tulee ongelmaa 
sanamuotojen generoinnissakaan.

> 3. Toimiakseen stenotyyppimoottori tarvitsee käytetyn kielen
> sanaston. Voinko hyödyntää Voikon käyttämiä sanastoja? Kuinka
> sen lisensointi soveltuu tällaiseen tarkoitukseen? Oman ohjelmistoni
> aion julkaista vapaalla lähdekoodilla ja ilmaiseksi, mikä on
> käsittääkseni lähellä myös Voikko-projektin mallia.

Voikon sanasto on käytettävissä GNU GPL 2.0:n tai uudempien versioiden 
ehdoilla. Eli tämä kyllä onnistuu.

> Viesti on melko perusteellinen, mutta halusin kertoa hieman taustoja
> ja motivaatiota keskustelun pohjaksi.
> 
> Mikäli innostustani riittää, voisin nähdä myös itse
> kirjoittavani em. ominaisuuksia johonkin Voikon osiin mahdollisuuksien
> mukaan.

Projektisi kuulostaa kiinnostavalta. Jos haluat saada käsityksen mitä 
kysymyksen 1) ratkaiseminen vaatii, kannattaa ladata Githubista 
corevoikko/voikko-fi ja rakentaa sanasto siitä ohjeiden mukaisesti. Sen 
jälkeen voit tutkia sanastoa (transduktoria) foma-työkalulla. Jotenkin 
näin:

$ make vvfst
(tulosteet ohitettu)
$ foma
(tulosteet ohitettu)
foma[0]: read att vvfst/all.att
Reading AT&T file: vvfst/all.att
7.5 MB. 431963 states, 493431 arcs, Cyclic.
foma[1]: apply down koirat
[Ln][Xp]koira[X]koir[Sn][Nm]at

Tästä näet, että Voikon käyttämää transduktoria ei voi sellaisenaan 
suoraan hyödyntää haluamallasi tavalla. Tuossa sinun 
käyttötarkoituksessasi pitäisi kieliopillinen muoto saada ensin 
lyhennettyä muotoon [Xp]koira[X][Sn][Nm]. Tämä kyllä onnistuu 
transduktoria ohjelmallisesti muokkaamalla. Sen jälkeen saisit haluamasi 
tuloksen foman apply up -komennolla, tai vastaava toiminto voitaisiin 
koodata myös libvoikko-kirjastoon.

Periaatteessa ei siis mitään rakettitiedettä, mutta kun hommaan ryhtyy, 
vastaan tulee erinäisiä yksityiskohtia, eli ihan vähällä siinä ei pääse.

Harri


More information about the voikko mailing list