Trokeemankeli 0.4
Käyttöohje

1. Johdanto

KaRuSen Trokeemankeli on kalevalamitan tarkistusohjelma, joka on ollut käytettävissä Kalevalaisen Runokielen Seuran WWW-sivuilla noin vuodesta 2001. Tämä ohje koskee Trokeemankelin itsenäistä, omalle koneelle ladattavaa versiota. Ladattava versio on vasta kehitteillä eikä sisällä aivan kaikkia verkkoversion toimintoja. Myös tämä dokumentaatio täydentyy tulevissa versioissa.

Ladattavaan Trokeemankeliin kuuluu graafinen käyttöliittymä ja komentorivityökalu, jotka tarjoavat samat perustoiminnot. Komentorivityökalu on tarkoitettu erityisesti tilastojen laskemiseen suurista tekstimääristä. 

2. Asentaminen

Ohjelma on saatavilla kahdessa muodossa: Windowsin asennusohjelmana, joka asentaa sovellusten ajettavat binääritiedostot, sekä Python-lähdekoodina. Windowsin binäärimuotoiset versiot eivät tarvitse muita ohjelmia toimiakseen. Python-skriptien käyttäminen vaatii, että koneelle on asennettu Python 2.3 tai uudempi. Graafinen käyttöliittymä tarvitsee myös wxPython-kirjaston.

2.1. Windows ja asennusohjelma

Hae asennusohjelma (trokeemankeli_[versio].exe) osoitteesta http://www.iki.fi/harri.perala/trokeemankeli/download/ ja aja se. Asennus

Trokeemankelin poistaminen Lisää tai poista sovellus -toiminnolla ei tällä hetkellä palauta polkuasetuksia, joten asennushakemisto jää kummittelemaan polulle.

Asennuksen jälkeen tietokone on käynnistettävä uudelleen, jotta muutetut polkuasetukset tulevat voimaan. Avaa uudelleenkäynnistyksen jälkeen Command Prompt (Komentorivi) ja anna esim. seuraava käsky: 

> trokeemankeli -i "Yksi, kaksi, kolme, neljä"

Tuloksen pitäisi näyttää tältä:

1 OK Yk-si kak-si kol-me nel-jä

Esimerkin ä-kirjain näkyy kuitenkin todennäköisesti oletusasetuksilla väärin.

2.1.1. Komentorivi-ikkunan asetusten säätäminen

Jotta skandit näkyisivät oikein ohjelman tulostuksessa, on tarpeen vaihtaa koodisivua ja käytettävää fonttia. Tulokset tosin näkyvät joka tapauksessa oikein, jos ohjaat tulostuksen tiedostoon ja avaat sen jollain Windowsin tekstieditorilla.

Tarvittavat muutokset ovat (ohje poimittu eräästä news-postauksesta, kokeiltu Windows XP:ssä):

  1. Anna käsky: 

    > CHCP 1252 
    En tiedä, onko mahdollista saada tätä koodisivua oletukseksi. Jos ei, käsky on annettava uudestaan aina, kun uusi komentorivi-ikkuna avataan.
  2. Klikkaa ikkunan otsikkopalkkia hiiren kakkospainikkeella ja valitse Ominaisuudet. Valitse avautuneesta dialogista välilehti Fontti ja valitse listalta Lucida Console.

2.2. Python-skriptit

Alkuperäiset Python-skriptit (joista Windowsin binääritiedostot on käännetty PyInstallerilla) ovat saatavissa zip-pakettina samasta osoitteesta. Ajettavat skriptit trokeemankeli.py ja trokeemankeligui.pyw ovat hakemistossa trokeemankeli/src. Tästä eteenpäin ohjeissa oletetaan, että käytössä ovat Windowsin .exe-versiot.

3. Sovellukset

3.1. Komentorivityökalu

Komentorivityökalulla voidaan tarkistaa tekstitiedostona tallennettu runo. Seuraava käsky tarkistaisi tiedoston runo.txt ja kirjoittaisi tulokset tiedostoon tulos.txt:

> trokeemankeli -f runo.txt > tulos.txt

Ohjelman suorittava käsky on muotoa:

trokeemankeli [nolla tai useampia parametreja]

Ohjelma käsittelee yhden ajon aikana yhden syötteen. Käyttäjä voi antaa syötteen komentoriviparametrina tai käskeä ohjelmaa lukemaan sen tiedostosta. Jos kumpaakaan ei ole määritelty, syöte luetaan syötevirrasta (jolloin se voi olla ohjattu toisen ohjelman tulostuksesta tai tiedostosta). Tämän vuoksi ohjelmaa voi halutessaan käyttää myös käynnistämällä sen ilman parametreja, kirjoittamalla yhden tai useampia rivejä tekstiä ja päättämällä syötteen painamalla uuden rivin alussa Control-Z ja enter.

Kaikilla parametreilla on pitkä ja lyhyt muoto. Parametrit ovat:

-f tiedosto
--file tiedosto
Lue syöte tiedostosta tiedosto.
-i "syöte"
--input "syöte"
Käytä syötteenä merkkijonoa syöte. Välilyöntejä sisältävä merkkijono vaatii ympärilleen lainausmerkit. Syötteeseen on mahdollista saada useita säkeitä erottamalla ne kauttaviivalla. 
-r
--raw
Tulosta tulokset muodossa, joka on tarkoitettu jatkokäsiteltäväksi muilla ohjelmilla. Ks. tulostusformaatin määrittely.
-m
--markup
Tulosta tulokset HTML-muodossa. Ei todennäköisesti tarpeellinen tavallisessa käytössä.
-s
--summary
Älä esitä rivikohtaisia tuloksia vaan yhteenveto syötteen sisällöstä.
-y
--rawsummary
Kuten -s, mutta esitä yhteenveto muodossa, jota on helpompi käsitellä ohjelmallisesti.

Syötteen lähteen valitsevista parametreista fi voi antaa korkeintaan yhden, samoin tulostusmuodon valitsevista parametreista rmsy.

Parametreja voi kirjoittaa yhteen, esim. trokeemankeli -ri syöte tekee saman kuin trokeemankeli -r -i syöte.

3.2. Graafinen käyttöliittymä

Graafinen sovellus käynnistetään Käynnistä-valikosta. Tarkastettava teksti syötetään vasemmanpuoleiseen tekstikenttään, ja tulokset ilmestyvät Tarkasta-nappia painamalla oikealle puolelle. Ohjelma tekee syötetylle tekstille samat tarkistukset kuin komentorivityökalukin, mutta yhteenvetoa ei ole käytettävissä.

3.3. Eroja verkkoversioon

Kalevalaisen Runokielen Seuran WWW-sivuilla toimiva Trokeemankeli on ainakin toistaiseksi kokonaan eri sovellus kuin itsenäinen versio. Eroja verkkoversioon ovat muun muassa:

4. Toiminnot

4.1. Syötteen käsittely

4.1.1. Syötteen muoto

Ennen syötteen tavutusta ja analysointia joitain merkkejä korvataan toisilla merkeillä ja joitain poistetaan kokonaan.

Merkit aeiouyäö'bcdfghjklmnpqrstvwxz (isoina ja pieninä) tunnistetaan sellaisenaan kirjaimiksi. Huomaa, että joukossa on myös heittomerkki, joka tulkitaan konsonantiksi. Vierasperäisten konsonanttien äännearvoja ei yritetä arvailla, joten esim. x:ää ei tulkita ks:ksi.

Vokaalien tarkemerkeillä varustettuja versioita muunnetaan tavallisiksi versioiksi seuraavasti:

áāâãå -> a
éčęë -> e
íėîī -> i
ķōôõ -> o
úųûü -> u
ũ˙ -> y

Kaikki merkit, joita edellä ei ole lueteltu, poistetaan syötteestä. Konsonanttien kanssa ei siis tehdä muunnoksia, vaan esim. ņ poistetaan. Saman kohtalon kokevat vokaaleista ø ja æ. Näiden harvinaisempien merkkien käsittely on valittu melko mielivaltaisesti ja saattaa muuttua jatkossa.

Merkeillä /, + ja - on erikoismerkitys. Kauttaviiva vastaa rivinvaihtoa:

> trokeemankeli -i "Väinämöinen, Väinämöinen! / Miksi oot sie Väinämöinen?"
1 OK Väi-nä-möi-nen Väi-nä-möi-nen
2 OK Mik-si oot sie Väi-nä-möi-nen

Yhdysmerkillä taas voidaan erottaa yhdyssanan osat, jolloin osia käsitellään runomitan kannalta kuin kahta erillistä sanaa.  Yhdyssanojen osien merkitseminen auttaa myös tavutusta. Kun näin merkitty yhdyssana esitetään tuloksissa tavutettuna, osat on erotettu yhtäsuuruusmerkillä. Esimerkiksi:

> trokeemankeli -i "kerrostalon kellarissa"
1 OK ker-ros-ta-lon kel-la-ris-sa
> trokeemankeli -i "kerros-talon kellarissa"
1 Virhe ker-ros=ta-lon kel-la-ris-sa
Virhe: Lyhyt alkutavu runojalan nousussa. (ta)

Yhdysmerkin tilalla voi käyttää +-merkkiä, jonka merkitys on täsmälleen sama. Ajatuksena on, että tekstin tarkastamista varten lisätyt plusmerkit on helppo poistaa jälkikäteen etsi ja korvaa -toiminnolla koskematta yhdysmerkkeihin, jotka saattavat kuulua tekstiin.

Syötteestä poistetaan tyhjät rivit, samoin kuin rivit, joilla ei ole muunnosten jälkeenkään aakkosiksi tunnistettavia merkkejä. Myös ylimääräinen tyhjä tila riveillä poistetaan, niin että rivin alussa ja lopussa ei ole tyhjää ja sanojen välissä on aina tasan yksi välilyönti.

> trokeemankeli -i " *** / Kyöpelit tuvilla Tuonen / *** "
1 OK Kyö-pe-lit tu-vil-la Tuo-nen

4.1.2. Tavutus

Säkeen teksti tavutetaan kahdessa vaiheessa: aluksi tehdään oletustavutus, minkä jälkeen tavutusta saatetaan korjata lisäämällä tai poistamalla tavurajoja. Oletustavutus tulkitsee seuraavat vokaaliparit diftongeiksi sijainnista riippumatta:

Seuraavat tulkitaan diftongeiksi ainoastaan sanan ensimmäisessä tavussa ja vokaaliyhtymiksi muualla:

U- ja y-loppuiset vokaaliparit voivat suomen kielessä esiintyä jälkitavuissa sekä diftongeina että vokaaliyhtyminä [1]. Kalevalan tekstissä ne näyttävät olevan tavallisesti vokaaliyhtymiä. Huomaa, että jos yhdyssanan osia ei syötteessä ole erotettu, oletustavutus tuottaa sellaisia tavujakoja kuin "vaah-ti-le-u-ka" ja "Kau-ko-mi-e-li".

Oletustavutuksen tulosta voidaan tarvittaessa korjailla käyttäen hyväksi sitä oletusta, että syötetty tekstirivi on virheetön kalevalamittainen säe. Jos säe todetaan oletustavutuksen perusteella virheelliseksi, ohjelma kokeilee erilaisia vaihtoehtoisia tavutuksia. Jos jokin näistä on virheetön, se hyväksytään lopulliseksi tavutukseksi. Vaihtoehtoisissa tavutuksissa voidaan vapaasti poistaa tai lisätä vokaalien välisiä tavurajoja, jolloin myös yleiskielestä poikkeavat diftongit ja tarkoituksella tehdyt diftongien katkaisut (esim. "toisinpa tänäi päänä") saattavat tavuttua oikein. Pitkää vokaalia ei koskaan katkaista.

Jotta ohjelma ei hyväksyisi selvästi virheellisiä säkeitä, vaihtoehtoisia tavutuksia on rajoitettu vaatimalla, että ne poikkeavat (tiettyjen sääntöjen mukaan) riittävän vähän oletustavutuksesta. Rajoituksista huolimatta ohjelma saattaa kuitenkin joissain tapauksissa kelpuuttaa virheellisen säkeen. Ohjelmaa on testattu aineistolla, joka sisältää 38 virheetöntä, mutta tavutukseltaan hankalaa Kalevalan säettä sekä 38 virheellistä säettä eri lähteistä. Seuraavassa taulukossa on esitetty tulokset ladattavan Trokeemankelin versiolla 0.4 sekä verkkoversiolla (helmikuussa 2010).

vääriä hylkäyksiä vääriä hyväksymisiä
0.4 1/38 1/38
verkkoversio 11/38 0/38

Testiaineiston hyväksytty virheellinen rivi oli "piäty veri vuotamasta", joka tulkittiin yhdeksäntavuiseksi säkeeksi "piä-ty ve/ri vu/o-ta/mas-ta".

4.1.3. Tarkistukset

Ohjelman antamat ilmoitukset on jaettu virheisiin, varoituksiin ja muihin kommentteihin. Nykyiseen versioon on toteutettu seuraavat tarkistukset.

Virheet:

Varoitukset:

Kommentit:

4.2. Tulokset

4.2.1. Normaali tulostus

Graafisessa käyttöliittymässä tulokset näyttävät suunnilleen seuraavalta:

# Tulos Muoto Säe
1 Virhe 224 Van-ha / va-ka / Väi-nä/möi-nen
Virhe: Lyhyt alkutavu runojalan nousussa.

Muoto-sarakkeen numerot tarkoittavat tavujen määrää säkeen sanoissa.

Komentorivityökalulla voi tulostaa myös yhteenvedon (parametri -s), johon kuuluvat seuraavat tiedot:

4.2.2. Ohjelmallisesti luettavat tulosformaatit

Koneellisesti luettavan tulosteen (parametri -r) rivit koostuvat kymmenestä "|"-merkillä erotetusta kentästä, joiden sisällä voi edelleen olla useampia kenttiä:

virhetaso|lyhyt säkeen muoto|pitkä säkeen muoto|tavutyypit|teksti|tavukohtaiset virheet|säekohtaiset virheet ja varoitukset|alkusoinnut|tavutuksen muokkaus|murtosäe

Kentät tavukohtaiset virheet, säekohtaiset virheet ja varoitukset ja alkusoinnutvoivat olla tyhjiä.

1. virhetaso: yksi merkki, joka on joko "0" = ei virheitä eikä varoituksia, "1" = varoituksia, mutta ei virheitä tai "2" = virheitä.

2. lyhyt säkeen muoto: jokaista sanaa edustaa numero, joka ilmoittaa tavujen määrän. Huom: jos säe koostuu kymmentavuisesta tai pitemmästä sanasta, tämän kentän sisältöä ei ole mahdollista tulkita oikein.

3. pitkä säkeen muoto: jokaista tavua edustaa jokin neljästä kirjaimesta: "l" = lyhyt, "L" = lyhyt alkutavu, "p" = pitkä, "P" = pitkä alkutavu. Huomaa, että myös yksitavuiset sanat merkitään "L" tai "P".

4. tavutyypit: jokaista tavua edustaa kirjain väliltä "a" - "l". Kirjaimet kuvaavat tavun muotoa seuraavan taulukon mukaisesti:

C-C -C C- -
diftongi a (kaik) b (aik) c (kai) d (ai)
pitkä vokaali e (kaak) f (aak) g (kaa) h (aa)
lyhyt vokaali i (kak) j (ak) k (ka) l (a)

Yhden konsonantin ja useamman konsonantin sarjan välille ei tehdä eroa, joten tavut "ak" ja "ank" ovat molemmat tyyppiä "j".

5. teksti: sarja sanoja, jotka on erotettu yhdellä välilyönnillä. Sana koostuu yhdestä tai useammasta osasta, joiden erottimena on "=" (esim. "Kau-ko=mie-li"). Sanan osa koostuu tavuista, joiden erotin on "-".

6. tavukohtaiset virheet: sarja virheilmoituksia, erotin ";". Virheilmoitus on muotoa nimi=tavut. Tavut ilmoittaa, missä tavuissa virhe esiintyy, ja on muodoltaan sarja tavujen numeroita (ensimmäinen tavu = 1), erotin ",". Nimi on yksi seuraavista merkkijonoista. Tämän ja seuraavan kentän ilmoitusten merkitykset on kuvattu edellä tarkemmin.

Esimerkki:

short_rising=3;long_falling=6

7. säekohtaiset virheet ja varoitukset: sarja virheilmoituksia ja varoituksia, erotin ";".

8. alkusoinnut: nolla tai useampia seuraavista kirjaimista: "A", "B", "C", "D". Jos kirjain esiintyy tässä kentässä, sen kuvaama alkusointutyyppi esiintyy säkeessä ainakin kerran. Kukin kirjain esiintyy kentässä korkeintaan kerran, mutta niiden järjestystä ei taata. Alkusoinnut on jaettu neljään tyyppiin:

Samassa säkeessä voi periaatteessa esiintyä jokainen näistä tyypeistä, mutta yhdelle sanaparille todetaan korkeintaan yksi alkusointutyyppi. Tyypit C ja D eivät siis sisälly tyyppeihin A ja B. Esimerkkejä:

Jos halutaan laskea erityyppisten alkusointujen yleisyys jonkin tietyn määritelmän mukaan, on huomattava, että ohjelman tunnistamat alkusointutyypit eivät välttämättä vastaa tarkasti haluttua määritelmää. Esimerkiksi Aulis Rintalan Kalevalamitan oppaan [2] mukaan vahvaksi alkusoinnuksi luetaan sanojen alkaminen samalla konsonantilla ja vokaalilla tai samalla vokaalilla, ja sanojen välissä "voi olla alkusoinnutonkin sana". Heikon alkusoinnun sanotaan tarkoittavan peräkkäisten sanojen alkamista samalla konsonantilla tai eri vokaalilla. Jos tulkitaan, että vahvassa alkusoinnussa sanojen välissä voi olla useampikin kuin yksi sana, tyyppien A ja B voitaneen katsoa vastaavan vahvaa alkusointua. Koska ohjelma ei ota huomioon sitä, ovatko sanat peräkkäin, määritelmän mukaista heikkoa alkusointua ei voi Trokeemankelilla suoraan laskea.

9. tavutuksen muokkaus: "1", jos tavutusta on korjattu muodostamalla tai katkaisemalla diftongeja, "0", jos tavutus on ensimmäisen yrityksen mukainen.

10. murtosäe: "1", jos säe on murtosäe, "0", jos se on tasasäe.

Esimerkkejä:

> trokeemankeli -ri "Lenti iät, lenti lännet"
2|2222|PlLpPlPp|ikljikii|Len-ti i-ät len-ti län-net|short_rising=3||AC|0|0
> trokeemankeli -ri "a"
2|1|L|l|a||too_short||0|0

Myös yhteenvetotulostus on mahdollista saada muodossa, jonka on tarkoitus soveltua jatkokäsiteltäväksi (parametri -y). Tavallisen yhteenvedon tietojen lisäksi tulostuksessa on erikseen ilmoitettu alkusointutyyppejä (ABCD) sisältävien säkeiden osuudet. Formaatista ei ole kirjoitettu tarkempaa kuvausta.

5. Versiohistoria

0.4 2010-02-19 Suurin osa verkkoversion ominaisuuksista toteutettu
0.3 2008-08-28 Graafinen käyttöliittymä, osa tarkistuksista toteutettu
0.2 2005-09-30 Asennuspaketin sisältöä korjattu
0.1 2005-09-24

Viitteet

[1] Ison suomen kieliopin verkkoversio, § 22 Diftongi vai vokaaliyhtymä?

[2] Rintala, Aulis. Kalevalamitan opas urbaanille runoniekalle. Uno-Soft, 1999. s. 61–65. Vastaava sisältö verkossa: Alkusointu ja muu äänneharmonia.