[voikko-devel] Sanaston XML-formaatti kommentoitavaksi

Harri Pitkänen hatapitk at iki.fi
Sun Feb 25 18:04:12 EET 2007


On Sunday 25 February 2007 16:44, Reijo Tomperi wrote:
> Harri Pitkänen wrote:
> > DTD-tiedosto ja käyttöesimerkki löytyvät täältä:
> >
> > http://voikko.svn.sourceforge.net/viewvc/voikko/trunk/data/words/
>
> Ensialkuun huomautan, että en ole projektiin läheskään niin paljon
> osallistunut kuin muut, enkä siksi ymmärrä kaikkia päätöksiä, joten
> suhtautukaa kommentteihini kriittisesti.
>
> - Miksi id on alfanumeerinen, eikä pelkkä numero? Jos mitään erityistä
> syytä ei ole, niin mielestäni id olisi parempi pitää pelkkänä numerona.

Tämä johtuu siitä, että DTD:ssä id-attribuutti on määritelty näin:
<!ATTLIST word id ID #REQUIRED>

XML-standardi sanoo, että "Values of type ID must match the Name production" 
jolloin arvo ei saa alkaa numeromerkillä. Jos haluttaisiin käyttää 
attribuutin arvona pelkkää lukua, määrittely voisi olla vaikka
<!ATTLIST word id NMTOKEN #REQUIRED>
mutta NMTOKEN-tyypin attribuutit sallivat myös saman arvon toistumisen 
useampaan kertaan, minkä halusin estää.

> - Olisiko lippujen nimissä esim. "atk", "lääketiede" parempi käyttää
> englantia? Sinällään tämä projekti on aika tiukasti sidottu suomeen,
> joten en näe mitenkään välttämättömänä tätä. Todennäköisesti se loisi
> myös monimutkaisuutta muutosrajapintoihin. Etuna olisi tietty se, että
> formaattia voisi silloin käyttää kansainvälisemmin, jos sellaiselle
> tarvetta joskus tulee. Mikä pitkällä tähtäimellä voisi olla eduksi kun
> eri ohjelmat voisivat puhua samalla kielellä.

Olet oikeassa. Käännän ainakin käyttöalaliput englanniksi, mutta muutamat muut 
liput saattavat olla sellaisia että en osaa niille hyvää käännöstä sanoa. 
Mitäpä on esimerkiksi "yksitekijäinen teonsana" sujuvalla englannin kielellä? 
Konversio sinällään on kuitenkin niin yksinkertainen, että parempi on 
todellakin käyttää englantia lippujen arvoissa, kun elementtien nimetkin 
kerran on sillä kielellä tehty.

> - xml-tiedostoja luettaessa ärsyttävin piirre on se, että arvoja on
> piilotettu monen kerroksen taakse. Tuossa nyt ei ole kuin korkeintaan
> yksi ylimääräinen kerros, mikä ei todellakaan ole lähelläkään pahimpia
> formaatteja mitä olen nähnyt. Mutta pitäisikö silti purkaa tuosta yhdet
> kerrokset pois. Jolloin esim.:
>
> <derivation>
>    <flag>ei_lainen</flag>
>    <flag>ei_mainen</flag>
> </derivation>
>
> Muuttuisi muotoon:
>
> <derivation>ei_lainen</derivation>
> <derivation>ei_mainen</derivation>
>
> En tiedä miten pahasti tämä sotii xml:n pyhimpiä tarkoituksia vastaan,
> mutta omien kokemuksieni mukaan jälkimmäinen on helpompi lukea, koska
> joka tapauksessa tuolla derivation haarassa joutuu looppaamaan vain
> kaikki tietynnimiset läpi. Joten vähemmällä vaivalla sen tekee suoraan
> juuressa. Tuo alkuperäinen malli on tietysti paljon tyylikkäämmän
> näköinen ihmisen silmin.

Jatkossa voidaan tarvita samoja elementtejä eri ryhmien alla. Nyt meillä 
esimerkiksi on vain inflection/vtype, mutta tulevaisuudessa tarvitaan myös 
derivation/vtype jotta muutamia johdoksia vaivaavat virheelliset 
vokaalipäätteet saadaan korjatuksi. En minäkään tosin XML:n tarkoitusperiä 
ihan ole sisäistänyt, ja olen samaa mieltä siitä että ns. "hyvin suunniteltu" 
XML on usein kaikkea muuta kuin helppoa lukea tai käsitellä. Yritän tässä 
saada aikaan käyttökelpoisen kompromissin asian suhteen, ja jonkinlainen 
välitason jaottelu näyttäisi olevan tarpeen että formaatin ylläpito 
helpottuisi.

Harri



More information about the devel mailing list