Sanaa "kieli" käytetään yleisesti myös puhuttaessa erilaisista merkintätavoista kuten "matematiikan kielestä" tai "ohjelmointikielistä" tai "merkkauskielistä". Tämä aiheuttaa paljon sekaannuksia, kuten olen kuvannut dokumentissa Datatekniikan "kielet" - ehdotus käsitteiden selvennykseksi ja luokitteluksi.
Tässä tarkastellun kielimerkkauksen yhteydessä on kyse aina "oikeista" kielistä, sellaisista, joita ihmiset käyttävät puheessa ja kirjoituksessa, tai ainakin niitä vastaavista kielistä kuten kuvitteellisista kielistä, joita käytetään ihmiskielten tapaan, vaikkapa Keski-Maan haltiakieli tai klingonien kieli. Kyse ei välttämättä ole elävästä kielestä vaan myös esimerkiksi muinaisegypti, jonka suoranaisesti tunnemme vain kirjoitettuna, on ilman muuta kieli. Myös niin sanotut keinotekoiset kielet eli suunnitelmakielet (artificial languages, constructed languages) kuten volapük tai esperanto kuuluvat ilman muuta joukkoon, ainakin jos ne on suunniteltu samanlaiseen käyttöön kuin luonnolliset kielet. Tosin suunnitelmakieliä on tehty hyvin monenlaisia, ja jotkin niistä voitaisiin ehkä luokitella koodijärjestelmän ja ihmisten kieleksi tarkoitetun rakennelman välimaastoon.
Mutta ulkopuolelle siis jäävät monet "kieliksi" kutsutut
merkintätavat, kuten esimerkiksi merkkauskieli HTML,
tyylisääntökieli CSS tai ohjelmointikieli C.
Kielikoodijärjestelmien määrittelyissä usein erikseen sanotaan,
että ne on tarkoitettu ihmisten kieliä (human
languages), ei tietokonekieliä varten.
Miten sitten olisi meneteltävä, jos dokumentissa esitetään
sellaisilla "kielillä" kirjoitettuja ilmaisuja eli jos vaikkapa
haluaisimme puhua CSS:n font-family
-ominaisuudesta
nimeltä? Missään tapauksessa ei pidä ruveta antamaan vaikkapa CSS:lle
kielikoodia ja käyttämään sitä. Eri asia on, että voisi olla hyvä, jos
käytetyn koodin, merkintätavan, voisi ilmaista merkkauksella.
Mutta tämä on pidettävä erossa kielimerkkauksesta.
Epäselvää on, tulisiko "tietokonekielten" ilmaisujen
yhteydessä aina käyttää
code
-merkkausta HTML:ssä. Usein kyseistä merkkausta käytetään
ulkoasun takia, tasalevyisen fontin aikaansaamiseksi. Mutta voisiko
sillä olla myös looginen merkitys? Mielestäni voisi, koska
code
-elementin määrittely
sanoo:
"Designates a fragment of computer code."
Esimerkiksi kielenkäännösohjelma (tai ihmiskääntäjä) voisi siitä
päätellä, että ilmaisu on käännöksessä jätettävä sellaisekseen,
vaikka se näyttäisi osittain olevan englantia. Valitettavasti
nykyiset käännösohjelmat eivät näytä niin tekevän.
Mutta olisiko mainitunlaisten "kielten" yhteydessä kuitenkin
käytettävä kielimerkkausta silloin, kun niissä esiintyvät merkkijonot
on otettu jostain luonnollisesta kielestä?
On selvää, että esimerkiksi
merkkijonoa "function" ei pidä kääntää, kun se viittaa
ohjelmointikielen varattuun sanaan.
Mutta toisaalta
se pitäisi lausua englannin mukaan, ainakin suunnilleen.
Tämä on hankala kysymys etenkin, jos dokumentissa esiintyy paljon
koodia. Puhe-esityksen kannalta ongelmana on, että esimerkiksi
HTML-koodissa tai lähdekielisessä tietokoneohjelmassa on sekaisin
englannista otettuja varattuja sanoja, välimerkkejä ja eri kielistä
otettuja sanoja tai sanantapaisia ilmaisuja. Miten esimerkiksi
seuraava pitäisi lukea ääneen?
<table class="tilasto">
Esimerkki osoittaa pieneltä osaltaan, että on
mielekästä liittää koodinpätkään kielimäärite, joka on
loogisesti riippumaton siitä, mikä on käytetty koodijärjestelmä,
kuten tietokonekieli. Esimerkissämme merkkijono tilasto
on yhtäältä osa HTML-merkkausta, toisaalta suomen kieltä siinä
mielessä, että ääneen luettaessa se pitäisi lausua suomen
sääntöken mukaan.
Ehkäpä voimme ainakin toistaiseksi lähteä siitä, että jos esimerkiksi HTML-, CSS- tai C-koodia kuunnellaan, kuulija ymmärtää englannista peräisin otetut sanat lausuttuina sen kielen mukaan, jolla dokumentti muutoin on kirjoitettu. Lausutaanhan sellaiset sanat muutenkin usein "kirjaimellisesti", esimerkiksi suomen mukaan luettuina. Se, että koodin eri osille kirjoitettaisiin erikseen kielimerkkaus, olisi huomattavan työlästä eikä tuottaisi mitään selvää käytännön etua.
"Tietokonekieliin" otetut englannin sanat on usein
typistetty, esimerkiksi "lang
", tai sanoja on sekä
katkottu että yhdistelty, esimerkiksi "charset
".
Onpa niitä myös kirjoitettu väärin. Esimerkiksi HTTP-protokollan erään
otsakkeen nimi on "Referer
", koska joku alun perin kirjoitti
englannin sanan "referrer" väärin.
Kun se on kerran otettu protokollaan, sitä ei enää haluta muuttaa.
Monia virheellisiä kirjoitusasuja sisältyy myös eliöiden tieteellisiin
nimiin. Valitettavasti ei kielimerkkaukseen sisälly mitään tapaa
ilmoittaa, että jokin sana on tiettyä kieltä mutta väärin
kirjoitettu.
Tavallaan kielten ja notaatioiden välimaastoon kuuluvat sellaiset teksti-ilmaisut kuin SI-mittajärjestelmän mukaiset suureiden arvojen merkinnät, vaikkapa "40 km/h". Ne ovat osa yleismaailmallista järjestelmää ja ne tulisi aina kirjoittaa samalla tavoin, ympäröivästä kielestä riippumatta. Sen sijaan ne luetaan ympäröivän kielen mukaan, esimerkiksi "neljäkymmentä kilometriä tunnissa" tai "fourty kilometers per hour". Jälkimmäinen hoituu sillä, että ilmaisulle itselleen ei ole kielimerkkausta vaan sen kieli määräytyy tekstin rakenteen ylemmällä tasolla olevasta merkkauksesta. Sen sijaan kirjoitusasun osoittaminen kieliriippumattomaksi, niin että se esimerkiksi käännettäessä tulee pitää samana, vaatisi periaatteessa erityisen merkkauksen; käytännössä ei sopivaa merkkausta ole nykyisin käytettävissä.