(toiminnot)

hwechtla-tl: Elegantti nimeämismalli

Kierre.png

Mikä on WikiWiki?
nettipäiväkirja
koko wiki (etsi)
viime muutokset


(Hyvä) nimien käyttö on tavattoman monimutkaista ja keskeinen avain moneen ongelmaan (kuten esimerkiksi tietojen järjestelyyn ja algoritmien suunnitteluun, katso http://sange.fi/~atehwa/scheme-kurssi/algoritmisuunnittelu.html ja http://sange.fi/~atehwa/unix-kurssi/yleista/nimeys.html). Nimiä käytetään monenlaisiin asioihin, mutta pohjimmiltaan ne ovat ilmauksia rajoitteille, joilla halutaan osoittaa tietty asia. Yksilönimet, identifikaattorit, osoittavat jonkin asian yksiselitteisesti, mutta ovat aina suhteessa johonkin kontekstiin. On hyvin vaikeaa kehitellä yksiselitteisiä nimiä, joissa olisi otettu niin laaja konteksti huomioon, ettei nimeämistapaa joudu missään vaiheessa laajentamaan.

Mitä suurempi konteksti nimellä on, sitä enemmän nimeä pitää pidentää, jotta nimi saataisiin yksiselitteiseksi. Esimerkiksi "Panu" nimeää minut yksiselitteisesti suurimmassa osassa kaveripiiriäni, "Panu Kalliokoski" maailmanlaajuisesti (käsittääkseni ei ole muita samannimisiä ihmisiä, mutta en ole tarkastanut). Jotta nimet saisi pidetyksi järkevän pituisina, kontekstit on pakko pitää kohtuullisina. Esimerkiksi tämän wikin nimet ovat kaikki suhteessa siihen implisiittiseen kontekstiin, että ne kuuluvat tähän wikiin. Jos koko maailman wikien nimet olisivat yhdessä nimiavaruudessa, voisin tuskin varata esimerkiksi nimeä perhonen jollekin runolle...

Konteksti on siis olennainen osa nimeä. Nimillä on kahdenlaisia konteksteja, joita voisin kutsua vaikkapa piirrekonteksteiksi ja riippuvuuskonteksteiksi. Piirrekontekstit värittävät nimeä ja tarkentavat sitä, mutta pitävät sen merkityksen ainakin osittain samana kuin jos kontekstia ei olisi. Riippuvuuskontekstit sen sijaan muuttavat nimen merkityksen täysin. Esimerkiksi nimi "kivi" osoittaa tietynlaisia objekteja, ja sille voi antaa tieteellisen piirrekontekstin "kivi geologiassa". Sen sijaan riippuvuuskonteksti "hammaskivi" vaihtaa sanan merkityksen kokonaan, sillä kyse ei ole enää kivestä siinä mielessä, kuin alkuperäinen sana kertoi.

Hyvän nimeämisjärjestelmän täytyy antaa mahdollisuus nimien luokittelemiseen konteksteittain sekä pitää riippuvuuskonteksteissa olevat nimet poissa häiritsemästä muuta nimeämistä. Nimi voi siis kuulua mielivaltaisen moneen kontekstiin ja lisäksi jotkin näistä konteksteista esittävät nimiavaruuksia, joissa olevat nimet eivät ole tekemisissä niiden nimien kanssa, joilla kyseistä kontekstia ei ole.

Wikeissä ryhmittely on perinteisesti tehty lisäämällä sivun sisältöön erityisiä linkkejä, wikibadgeja. Näiden linkkien ainoa tarkoitus on olla merkkinä, että sivu kuuluu tiettyyn ryhmään. Badgeja ovat kategoriat, avunpyynnöt, statusmerkinnät ja niin edelleen. Tämä järjestelmä on hyvin yleispätevä, ja se olisi hyvä säilyttää, mikäli suinkin mahdollista. Riippuvuuskontekstit puuttuvat perinteisistä wikiluokitteluista; tämä on ajanut monet wikitoteutukset lisäämään hierarkkiset nimet järjestelmäänsä, vaikka oikeastaan riittäisi, että badgen voi merkitä riippuvuuskontekstiksi, mikä merkitsee, että sivun ei pidä näkyä kontekstin ulkopuolelle.

Mutta mikäli sivun konteksti määräytyy sen perusteella, mitä linkkejä se sisältää, miten kontekstittomasta nimestä päätellään, mihin kontekstiin se kuuluu? Helppoa mutta raskasta: etsitään kyseisen niminen sivu, jonka konteksti muistuttaa eniten linkin sisältävän sivun kontekstia. Käytännössä tämä tarkoittaa sivun sisältämien linkkien vertailua eli eräänlaista sivujen etäisyyden laskentaa linkkiverkossa.

Koska useammalla sivulla voi olla sama nimi, tarvitaan keino osoittaa tietty sivu yksiselitteisesti (esimerkiksi muokkaamista varten). Tähän riittää, että jokaisen sivun nimeen voi lisätä määreitä, jotka voi jättää mainitsematta nimetessä. Määreellinen sivun nimi on kuitenkin uniikki koko wikin kontekstissa, joten sitä voidaan käyttää sivun yksiselitteiseen osoittamiseen.

Wikeissä sivujen nimillä on itse asiassa kolme hiukan erilaista käyttöä: linkkien teksti (ts. mitä hakasulkeiden sisään kirjoitetaan), sivun osoite ja otsikon teksti (ts. mitä sivun ylälaidassa lukee). Nämä kaikki ovat perinteisesti olleet keskenään identtiset (osoitteessa tietysti jokin muuttumaton prefiksi, wikin itsensä osoite), mutta niiden ei tarvitse olla. Oma ajatukseni on se, että linkin tekstiin voi kirjoittaa aika vapaamuotoisen (tai epämääräisen) kuvauksen siitä, mistä sivusta on kyse. Tästä nimestä wikitoteutus muodostaa osoitteen, joka yksiselitteisesti osoittaa sivun. Osoitteessa on siis kontekstitieto mukana. Kun sivulle menee, otsikon teksti on taas kontekstiton, mutta siinä ovat lisämääreet mukana (vaikkei niitä olisi mainittu muuten).

kategoria: wiki


kommentoi (viimeksi muutettu 09.02.2016 23:43)