This web is for holding topics deemed as old or irrelevant for KitWiki. If you think the topic doesn't belong here, please check that it's named properly (is a WikiWord) and descriptively, contains relevant data, and is put back to a relevant web.

Brainstorming: a software engineering project for a group of students in computer science

Ilmoittautuminen

Ohjelmistotuotannon projektien virallinen ilmoitus ja kuvaus on osoitteessa http://www.cs.helsinki.fi/group/ohtu/s-2006/. Alla olevista aiheista aihe 5 on parhaillaan tarjolla ohjelmistotuotannon projektiksi.

Aiheehdotus 1: FSM Recipe Language

Kaksinauhaisten automaattien kääntäjän esikääntäjä, joka määrittelee XML-pohjaisen ohjauskielen jonka avulla automaattien konstruktiota voidaan ohjata. Ohjauskielen vaatimuksiin kuuluu yleisyys (ei riippuvainen automaattien kääntäjästä), sekä transformaatiot, joilla säännöllisiä lausekkeita korkeampitasoisia formalismeja (määritelmät saa ohjaajilta) käännetään ensin ohjauskielelle ja siitä automaatiksi.

Aihe 2: Kaksinauhaisten äärellisten rekisteri-automaattien tulkki

Tavallisten tai painotettujen kaksinauhaisten äärellisten automaattien (trasduktoreiden) tulkki, joka osaa lukea useita automaattikääntäjien tulosformaatteja ja ajaa automaatteja backtracking algoritmilla tai hyödyntäen dynaamista ohjelmointia. Rekisteri- automaatit ovat uusi malli (Cohen-Sygal 2006), jossa äärellistä tila-avaruutta puretaan rinnakkaisiksi tilajoukoiksi rekisterien avulla. Lisähaasteena on mahdollista toteuttaa simulointi käyttäen erilaisia automaattien osituksia tai automaattien esitysmuotoa muistissa voidaan yrittää optimoida hyvin isoja automaatteja silmällä pitäen. Kaksinauhaisten automaattien konstruoinnissa voidaan käyttää valmista open source työkalua.

Aihe 3: Vieraskielisen tekstin oikeaa tulkintaa arvaava sanakirjatuki Mozilla FireFoxille

Tehtävänä on laatia ja liittää Mozillan Firefox -selaimeen sähköinen sanakirjatuki, jossa tekstissä oleva sanan esiintymä perusmuotoistettuna etsitään sanakirjasta ja tarjotaan sen käännöksiä siten valikoituna ja järjestettynä, että todennäköisimmin oikea alamerkitys on päällimmäisenä. Apuna voidaan käyttää morfologista jäsennintä ja kaksikielistä sanakirjaa. Todennäköisyyksien laskemiseksi on käytettävissä monikielisiä tekstejä, joista voidaan etukäteen laskea tunnetuilla menetelmillä vaihtoehtoisille käännöksille todennäköisyyksiä.

Aihe 4: Hyvin arvaava oikeinkirjoituksen virheiden korjaaminen GNU Emacsille

Oikeinkirjoituksen virheitä tarkoituksenmukaisesti korjaavan ohjelman tekeminen ja liittäminen CNU Emacsiin. Työ perustuisi (painotettujen) äärellistilaisten automaattien käyttämiseen ja CSC:n kielipankin tekstiaineistoista laskettaviin tilastoihin. Mukana voidaan käyttää olemassa olevia avoimen lähdekoodin ohjelmistoja, jotka manipuloivat automaatteja ja transduktoreita, mutta tavoitteena olisi tavanomaista parempi oikean vaihtoehdon arvauskyky. Osana työtä saattaa olla myös suomen kielen sananmuotojen tunnistimen (morfologisen jäsentimen) sanaston automaattinen täydentäminen Kielitoimiston sanakirjan sanaluettelon perusteella.

Aihe 5: FireMachine - Tekstien suodatus- ja lavennusominaisuus Mozilla Firefoxiin

Tavoitteena on tehdä Mozilla Firefoxiin laajennus joka kykenee tekemään kielen kääntämistä tai suodatusta muistuttavia muutoksia sivun kieliasuun. Laajennuksen tulee perustua DOM (Document Object Model) rakenteen käsittelyyn, äärellistilaisen koneen simulointiin ja Greasemonkey:n esimerkkiin Firefoxin laajentamisesta. Siinä missä Greasemonkey on parhaimmillaan dokumentin jäsennyspuun prosessoinnissa, nyt tehtävä laajennus lisäisi mahdollisuuden jäsentää tekstiä kielellisesti ja tehdä dokumenttiin kielellisiä muutoksia jossa DOM-jäsennyspuu ja skirptauskielet eivät tyydytä.

Laajennuksen tulee tarkastella dokumenttia tekstin kieliasun näkökulmasta. Projisoimalla dokumentin jäsennyspuu merkkijonoksi, jäsennyspuussa olevaa tekstiä voidaan käsitellä ns. äärellistilaisilla transduktoreilla (yksisuuntainen kahden nauhan Turingin kone) monenlaisten kielellisten efektien aikaansaamiseksi. Näin dokumentin hypertekstiä voidaan jopa kääntää sana-sanaisesti eri kielelle hävittämättä sanoihin liittyviä linkkejä. Tekstisisällön muokkaamisen lisäksi transduktorit voivat vaikuttaa sanajär¬jes¬tykseen tai tekstin ulkoasuun tuottamalla tekstiin näkymättömiä ohjauskoodeja, joiden perusteella DOM-puuta voidaan jälkiprosessoida esim. Greasemonkeyn avulla.

Laajennuksen toimintaa ohjataan skriptien sijasta ohjaustiedostolla, joka sisältää sopivalla tavalla esitetyn äärellistilaisen transduktorin, joka konstruoidaan olemassaolevilla työkaluilla (esim. Stuttgart Finite-State Transducer Tool tai vastaava). Toteutustavan suunniittelussa on varauduttava todella isoihin tilamääriin (n. 10^5 - 10^7), joten ajoaikaisen esitysmuodon on oltava tiivis ja nopea. Järjestelmää testaan toteuttamalla joitain seuraavista muunnoksista:

  1. "kielenhuoltaja": väärin kirjoitettujen vakiofraasien normalisointi
  2. vieraskielisten vastineiden sijoittaminen tunnistettujen sanojen paikalle
  3. tekstin muuntaminen ns. kon¬tinkielelle tai esim. tekosavoksi
  4. avainsanalistaan kuuluvien sanojen ”boldaus” tai ”tooltippaus”
  5. väärinkirjoitettujen sanojen värittäminen tekstissä
  6. tekstissä olevien nimien tunnistus ja merkintä esim. boldilla
  7. monikielisen tekstin osien kielen arvaus ja kielen mukainen tehostus.

Laajennuksen tulee olla helposti asennettava ja siinä tulee olla mahdollisuus helposti vaihdettaville äärellistilaisille transduktoreille. Kehitettävä laajennus antaisi loputtomat mahdollisuudet tutkimusaiheille, optimoinneille ja innovatiivisille asiakaspuolen sovelluksille, esim. monikielisille lukijan välineille, sivujen luettavuuden parantajille, tiivistelmägeneraattoreille jne. Todellisuudessa toteutuva projekti tullaan neuvottelemaan sopivaksi lopullista projektiryhmää silmällä pitäen, rajaamalla tehtävän laajuutta eri tavoin.

Työ suoritetaan yhteistyössä CSC:n (Suomen tieteen tietotekniikan keskus) ja suomalaisten Mozilla-kehittäjien kanssa (COSS/FILOSI ja www.mozilla.fi). Sovellusalan ja transduktorien asiantuntijana toimii FT Anssi Yli-Jyrä CSC:stä. Yhteystiedot: ylijyra@csc.fi 09-4572130, 040-5933923.

Linkkejä aikaisempiin ohjelmistotuotannon kursseihin

-- AnssiYliJyra - 04 May 2006

Topic revision: r10 - 2008-11-05 - HennaRiikkaLaitinen
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback