Kannanotto tietotekniikan kotoistuksen sekalaisiin yleismäärityksiin

Tietotekniikan kotoistus -hanke esitti helmikuussa 2005 julkisen kannanottopyynnön, joka koskee dokumenttia Sekalaisia yleismäärityksiä suomeksi. Tämän johdosta esitän seuraavan kannanoton.

Yleisiä huomautuksia

Ehdotuksesta ei ilmene valmisteilla olevan määrittelyn asema ja tarkoitettu käyttö. Erityisesti siinä ei ole erotettu toisistaan kahta eritasoista ja -tyyppistä asiaa:

Epäselväksi jää, mikä on se data, joka määrittelyn perusteella viedään CLDR-tietokantaan. Kyse on osittain selvistä asioista, osittain hyvinkin tulkinnanvaraisista. Mielestäni niille, joilla on edellytyksiä ja kiinnostusta ottaa kantaa tietojen täsmälliseen esitykseen LDML-muodossa, tulisi antaa siihen mahdollisuus, varsinkin kun tämä muoto tulee olemaan ratkaiseva tietoteknisissä järjestelmissä. Mutta joka tapauksessa tulisi selkeästi esittää, mikä todella menee CLDR-tietokantaan ja mikä on kommentaaria.

Ehdotuksessa esitetty vaihtoehtoisuus johtaa hyvin helposti harhaan, ellei edellä mainitsemaani jakoa oteta huomioon. On hyvä, että CLDR-työn yhteydessä käsitellään myös proosalla esitettäviä määrittelyjä, mutta tällöin ei tulisi luoda harhakuvaa sellaisesta vaihtoehtoisuudesta, jota ei ole.

Mielestäni kotoistusta käsittelevän asiakirjan tulisi olla kaikissa suhteissa esimerkillinen kielenkäytöltään ja merkintätavoiltaan. Virheellistä käytäntöä on nyt mm. kirjoitusasussa ”symbooli” pro ”symboli” sekä yhdysmerkin käytössä luetelmaviivana ajatusviivan sijasta. (Eri asia on, että HTML-muodossa on periaatteellisesti oikein esittää luetelma käyttäen luetelmamerkkausta, vaikka sen ulkonaista esitysmuotoa ei käytännössä saa suomen kielen sääntöjen mukaiseksi.)

Asettelu yms.

Paperin vakiokoon esittämisessä tulisi myös lukuun 210 liittää yksikön ilmaisu (mm) SI-järjestelmän periaatteiden mukaisesti. (Tämä tietysti koskee vain sanallista esitystä. LDML:ssähän yksikkö on tässä kohdassa implisiittinen.

Mittajärjestelmän käsitteleminen otsikon ”Asettelu yms.” alla ei tunnu oikeaan osuneelta. Se olisi parempi käsitellä oman otsikkonsa alla, vaikka sinne tulisi vain yksi virke.

Toisaalta vaikka CLDR-dataan ei tarvitse eikä voi tässä vaiheessa viedä muuta kuin tiedon ”metrijärjestelmän” käytöstä, olisi mielestäni sanallisessa kuvauksessa kiinnitettävä huomiota muuhunkin problematiikkaan. Metrijärjestelmäksi kutsuttu järjestelmä nimittäin on käytössä eri maissa osittain hyvinkin eri tavoilla. Yksinkertainen esimerkki tästä on litran tunnus, joka on Yhdysvalloissa suosituksen mukaan versaali ”L”, meillä vanhastaan gemena ”l”. Etuliitteitä käytetään eri tavoin; muualla on käytössä esimerkiksi hehtometri, desiaari ja dekagramma, jotka ovat meillä tuntemattomia. Tämä tulee tietotekniikassakin olennaiseksi, kun tehdään aliohjelma, joka tulostaa suureen arvon. Se, mitkä yksiköt ja etuliitteet ovat todellisuudessa käytössä jossakin kulttuuripiirissä, rajoittaa mahdollisuuksia tai ainakin tekee joistakin vaihtoehdoista muita suotavampia. Mielestäni CLDR-työssä tulisi nostaa tämä problematiikka esiin, ja jo tässä vaiheessa oli hyvä sanallisesti kuvata tilannetta ja viitata aihetta koskeviin SFS-standardeihin.

Selvyyden vuoksi saattaisi olla tarpeen sanallisessa kuvauksessa mainita, että käytännössä käytetään yhä monia metrijärjestelmään kuulumattomia yksiköitä, mm. tuumaa, hevosvoimaa, kaloria ja typografista pistettä. Näin siksi, että sanallinen kuvaus kannattaisi kääntää englanniksi, jolloin se tarjoaisi eräänlaisen pikakatsauksen suomen kielen eräisiin merkintäkäytäntöihin niillekin, jotka eivät osaa suomea mutta tarvitsevat tietoja esimerkiksi teknisiin tarkoituksiin. Tämän takia tulisi välttää ilmaisuja, jotka kuvaavat tilannetta yksipuolisesti vain normien kannalta.

Lainausmerkit

CLDR-tietoja varten tarvitaan määrittely sille, mitkä ovat ulommat ja sisemmät lainausmerkit. Tämän takia tulisi erikseen sanoa, että sisempinä lainausmerkkeinä käytetään puolilainausmerkkiä ’ (U+2019). Tämä olisi tarpeen sanallisen kuvauksen ymmärrettävyyden kannalta, koska varsin yleisesti käytetään puolilainausmerkkiä kokolainausmerkin tilalla säännöistä piittaamatta, eli nämä merkit ymmärretään väärin ikään kuin vapaasti vaihtoehtoisiksi.

Lainausmerkkien suomenkielisiä nimiä tulisi sopivassa yhteydessä harkita uudestaan. Erityisesti ”kokolainausmerkki” on ongelmallinen, koska nyt se tarkoittaa yhtä tiettyä merkkiä, jolloin puuttuu nimitys yleiskäsitteelle, joka kattaa myös kulmalainausmerkin. Lainausmerkkien käytön säännöissä olisi usein tarvetta tälle yleisemmälle nimitykselle. Jos ”kokolainausmerkki” olisi yleisnimitys, voisi erityisen merkin nimitys olla ”kaareva kokolainausmerkki”. Nimen pituus ei ole suuri haitta, koska sitä tarvitaan suhteellisen harvoin; yleisemmin on tarvetta yleiskäsitteelle. Lisäksi Ascii-merkistöön kuuluvalle lainausmerkille " (U+0022) tarvittaisiin oikeampi nimitys, sillä on erittäin harhaanjohtavaa, että nimi ”lainausmerkki” kuuluu merkille, joka ei ole suomen kielen mukainen lainausmerkki lainkaan. Käsiteltävänä olevassa määrittelyssäkin olisi hyvä varoittaa aiheesta, mutta olisi kovin omituista kirjoittaa, että lainausmerkkinä ei pidä käyttää lainausmerkkiä. (Olen ehdottanut nimityksiä ”Ascii-lainausmerkki” ja ”konelainausmerkki”, joista jälkimmäinen viittaisi paitsi tietokoneisiin myös kirjoituskoneisiin.)

Ilmaisu ”Kokolainausmerkin sijasta voidaan käyttää kulmalainausmerkkiä” pitää tietysti norminkuvauksena paikkansa, mutta todellisen tilanteen kuvauksena se on liian suppea. Kulmalainausmerkkiä käytetään kokolainausmerkin sijasta yleisesti kirjoissa, harvemmin muualla. Lisäksi samassa julkaisussa ei juuri koskaan käytetä molempia.

Symbolit

Ryhmäerotin

Ehdotuksen mukainen tyhjän välin käyttäminen ryhmäerottimena on yleinen ja suositeltava käytäntö. Se myös minimoi väärinkäsitysten mahdollisuuden. Kuvailevassa tarkoituksessa voitaisiin mainita, että varsinkin aiemmin on suomen kielessä käytetty ryhmäerottimena myös pistettä (esimerkiksi 1.000) ja heittomerkkiä (esimerkiksi 1’000).

Hankalampi ongelma on, että mikään Unicode-merkki ei sovi tällaiseksi ryhmäerottimeksi. Erityisesti

Valitettavasti Unicodesta puuttuu yhdistävä ohuke, vaikka tällaiselle merkille olisi tarvetta myös ranskan ortografiassa. Loogisin vaihtoehto olisi täten, että ryhmäerottimena käytetään merkkiparia, joka koostuu ohukkeesta ja word joiner -merkistä, siis U+2009 U+2060. Tämän ratkaisun käytännöllisyys on kuitenkin kyseenalainen monestakin syystä. Sen soveltaminen esimerkiksi tekstinkäsittelyssä voi olla hyvin hankalaa tai mahdotonta. Ratkaistaessa CLDR:hen vietäviä suomen kielen määrittelyjä tulisi tässä asiassa ottaa huomioon, mihin muiden kielten määrittelyissä päädytään.

Kyseeseen tulisi käytännössä lähinnä yhdistävä välilyönti, jota nyt ei edes mainita ehdotuksessa mutta joka huolehtisi kahdesta perusvaatimuksesta: ryhmäerottimen tulee erottaa ryhmät tyhjällä välillä, ja toisaalta rivinvaihto sen kohdalta ei ole sallittu. Typografinen puoli on sittenkin toissijainen ja voidaan hoitaa muilla keinoin, siis säätämällä merkkien välistystä keinoilla, jotka kussakin tilanteessa ovat käytettävissä.

Toinen vaihtoehto olisi, että leveyttä pidetään ensisijaisena eli ryhmäerottimeksi määritellään ohuke. Tällöin rivinvaihdon estäminen jäisi muilla keinoin tehtäväksi. Toisaalta tämäkin olisi usein hankalaa, ja menettelyn tekee epäkäytännölliseksi jo se, että ohuke on fonteissa paljon harvinaisempi kuin yhdistävä välilyönti.

Pisteen käyttö ryhmäerottimena on tarpeetonta ja vaarallistakin. Sitä ei tulisi millään tavoin suosia, vaan päinvastoin siitä pitäisi varoittaa. Aikoinaan perusteeksi esitetty väärentämisen vaikeuttaminen ei ole mitenkään kestävä varsinkaan nykymaailmassa, jossa väärennykset tehdään muilla keinoin. Sitä paitsi esimerkiksi 1.000 on yhtä helppo tai yhtä vaikea väärentää 10000:ksi kuin 1 000. SFS 4175:ssä on kyllä alaviitteessä esitetty: ”Jos on vaarana, että tyhjä väli täytetään numerolla (esimerkiksi sekeissä ja vekseleissä), numeroryhmät voidaan erottaa pisteellä.” Mutta paljon suurempi suoja saavutetaan sillä, että summa ilmaistaan myös sanoin.

Todellisia vaaroja syntyy siitä, että piste luetaan vahingossa desimaalipisteeksi. Tätä riskiä lisää se, että pisteen käyttö desimaalierottimena on valitettavasti jo varsin yleistä Suomessa varsinkin siellä, missä käytetään kotoistamatonta ohjelmistoa lukujen tulostamiseen.

Luetelmaerotin

Puolipisteen määritteleminen luetelmaerottimeksi CLDR-tietokannassa on esitetystä syystä hyvin perusteltua. Tähän tulisi kuitenkin liittää sanallinen selitys, jonka mukaan luetelmaerottimena käytetään normaalisti pilkkua silloin, kun luetelmassa ei esiinny desimaalilukuja. Ilman selitystä syntyy helposti väärinkäsityksiä.

”Tunnistamattoman” symboli

Ehdotuksen mukaan ”tunnistamattoman symboolina käytetään kysymysmerkkiä <?>”. Tässä on kuitenkin ilmeisesti kyse symbolista, jonka nimi CLDR-tietokannassa (LDML-kielessä) on nan ja jota koskee seuraava hämärähkö kuvaus LDML:n määrittelyssä:

NaN is represented as a single character, typically (\uFFFD). This character is determined by the localized number symbols. This is the only value for which the prefixes and suffixes are not used.

Ilmaisu ”NaN” ei tietotekniikassa tarkoita tunnistamatonta, vaan se on liukulukulaskennan yhteydessä käytetty käsite, joka tarkoittaa bittiyhdistelmää, joka on samanmittainen kuin liukuluvun sisäinen esitys mutta ei vastaa mitään liukulukua (NaN = Not a Number). Tällaisia ns. epälukuja käytetään kuvaamaan sellaisen laskutoimituksen ”tulosta”, joka ei ole mielekäs (ei ole matemaattisesti määritelty), esimerkiksi 0/0 (joka on eriluonteinen kuin 1/0, jonka tulos on ääretön). Vakiintunut merkintätapa on ”NaN”. On epäselvää, miksi CLDR:n mukaan tyypillinen esitystapa olisi U+FFFD eli korvikemerkki (replacement character) ja miksi vaatimuksena on, että esitystavan tulee koostua yhdestä merkistä.

Korvausmerkin merkitys on CLDR:ssä ilmeisesti ymmärretty väärin, mikä on aika yllättävää, koska CLDR-työtä tehdään Unicode-konsortion puitteissa. Kuitenkin Unicode-standardi määrittelee:

U+FFFD. The U+FFFD REPLACEMENT CHARACTER is the general substitute character in the Unicode Standard. It can be substituted for any “unknown” character in another encoding that cannot be mapped in terms of known Unicode characters (see Section 5.3, Unknown and Missing Characters).

Korvausmerkki on siis tarkoitettu käytettäväksi harvinaisessa tilanteessa, jossa muunnetaan tekstidataa jostakin koodauksesta Unicodeen ja kyseinen koodaus sisältää merkin, jota ei Unicodessa ole.

Epäselvässä tilanteessa olisi parasta toistaiseksi käyttää oletusarvoista merkkiä U+FFFD myös suomen kielen osalta. Tämä voitaneen tehdä jättämällä määrittely kokonaan pois, jolloin sovelletaan yleistä oletusarvoa. Tämän ansiosta ei määrittelyä tarvitse korjata, jos ja kun yleistä oletusarvoa tarkistetaan.

Ehdotuksen mukainen kysymysmerkki vastaisi tavallaan NaNin merkitystä mutta on tähän tarkoitukseen liian moniselitteinen. Kysymysmerkki sopisi kuvastamaan sellaisen laskutoimituksen tulosta, jota ei vielä ole suoritettu eli jonka tulos on avoin. Sen sijaan NaN kuvaa sitä, että laskutoimitus on suoritettu siinä määrin kuin se on suoritettavissa ja on havaittu, että tulos on määrittelemätön.

CLDR:n määrittelyä tulisi mielestäni korjata niin, että nan-elementin arvona on merkkijono, jonka yleisenä oletusarvona on NaN. Toinen vaihtoehto olisi poistaa koko elementti tarpeettomana, koska kyseessä on sovinnainen, erityiskäyttöön tarkoitettu symboli, jota ei ole tarpeen kotoistaa kielikohtaiseksi ilmaisuksi.

Vastaukset

Lausumat ”Myöntäväksi vastaukseksi tulkitaan kirjaimella k tai K alkava merkkijono. Kieltäväksi vastaukseksi tulkitaan kirjaimella e tai E alkava merkkijono.” ovat suomen kielen ominaisluonteen vastaisia. Mikäli CLDR-aineistoon tarvitaan POSIX-yhteensopivuuden takia kuvaus myöntävien ja kieltävien vastausten muodosta säännöllisillä lausekkeilla esitettynä, tulisi tämä ilmaista tavalla, joka ei luo mielikuvaa mistään yleisestä periaatteesta. Parhaiten tämä toteutunee teknisellä kuvauksella: POSIX-yhteensopivuuden takia määritellyt vakiomerkkijonot myöntävälle ja kieltävälle vastaukselle ovat ”Kyllä” ja ”Ei#8221;, ja vastaavat säännölliset lausekkeet ovat ”^[Kk].*” ja ”^[Ee].*”.

Tähän tulisi mielestäni liittää esimerkiksi seuraavansisältöinen lausuma: Kysymykseen, joka edellyttää myöntävää tai kieltävää vastausta, vastataan suomen kielen vanhan käytännön mukaan seuraavasti. Myöntävä vastaus on kysymyslauseen kysyvä sana ilman siihen liittyvää kysymyspartikkelia -ko tai -kö. Kieltävä vastaus on kieltoverbin muoto, jonka persoona on sama kuin kysymyslauseen predikaatin. Osittain vieraan vaikutuksen takia on kuitenkin käytössä myös vastaustapa, jossa käytetään taipumattomia sanoja kuten myöntävässä vastauksessa kyllä, joo tai jaa ja kieltävässä vastauksessa ei. Sellaisissa tietoteknisissä sovelluksissa, joissa vastauksen on teknisistä syistä oltava taipumaton, adverbinluonteinen myöntö- tai kieltosana, käytetään sanoja kyllä ja ei.

Espoossa 21. helmikuuta 2005.
Jukka K. Korpela, tietokirjailija
jkorpela@cs.tut.fi
puh. (09) 888 2675, 040 8448 617