Projektin JouTo kokous PÖYTÄKIRJA Aika ti 13.2.2001 klo 9.15-11.00 Paikka huone C455 Läsnä Antti Koskinen Puheenjohtaja Petri Hellemaa Sihteeri Lari Laine Jarno Saarto Eija Teitto Harri Tuuloskoski Kim Viljanen Ohjaaja Antti Koskinen avasi kokouksen 9.23 Kokouksen vaiheet: Esityslista käytiin läpi (9.23) Määrittelydokumentin jäädytys (9.24) Dokumentti jäädytettiin yhdellä muutoksella: luku "Ei-toteutettavia toimintoja" muutettiin nimelle "Jatkokehitysideoita". Hyväksytty dokumentti toimitetaan projektin vastuuhenkilölle Raine Kauppiselle. Komponenttien suunnittelua (9.25) Esiteltiin maanantaina suunnitellun sovelmaluokan toiminnot ohjaajalle. Luokka sisältää valikkopalkin, josta käyttäjä voi ladata tai luoda uuden artikkelin ja tallentaa muokkauksessa olevan artikkelin. Valikkopalkista valitaan myös leikepöytätoimintoja. Oleellisesti sovelmaolio luo varsinaiset artikkelin varastointiin ja muokkaukseen käytettävät komponentit, joiden toiminta määritellään tapahtumankäsittelymetodeissa. Rajapinnan Servletiin tarjoaa erillinen tietoliikenneluokka. Petri esitti näkemyksensä artikkelin sisällön hallinnasta. Kun editori on vastaanottanut DTD:n (ja mahdollisesti artikkelin pohjaksi), sovelmaluokka luo niistä ContentManager-olion. ContentManager käsittelee ensin DTD:n Mark Wutkan DTD-jäsentimellä http://www.wutka.com/dtdparser.html joka luo DTD-olion, joka puolestaan sisältää hajautustaulussa DTD:ssä esitellyt elementit. Elementtien lapsiin ja attribuutteihin liittyy rajoitteita. Parseri jäsentää myös lapsirajoitteet määrittävät säännölliset lausekkeet eri luokkien olioiksi. Näistä ContentManager tekee epädeterministisiä äärellisiä automaatteja (ellei kyseessä ole EMPTY tai ANY). Automaateista on löytynyt tietoa teoksesta Aho, Sethi, Ullman, Principles, Techniques, and Tools. ss. 113-146. [laitoksen kirjaston kurssikirjahylly] Koska markkinoilla olevat validoivat XML-jäsentimet ottavat syötteenään kokonaisen artikkelin DTD-viitteineen merkkijonomuodossa ja tarkastavat artikkelin jokaisen osan hyvämuotoisuuden ja rakenteen, tämä olisi aivan liian hidasta jatkuvan validiuden pakottavassa ohjelmassa. Automaatteja käytetään esim. silloin, kun yritetään selvittää, mitä eri elementtejä voidaan kulloinkin lisätä, kun kohdistin on siirretty tiettyyn kohtaan artikkelia. Attribuutit ovat helpompia käsitellä. Silloin kun ladataan tietokantaan tallennettu artikkeli, voidaan käyttää Apachen Java-Projectin XML-jäsentimiin liittyvän Xerces-kirjaston (joka kulkee myös nimellä IBM Alphaworks XML4J) http://xml.apache.org/xerces-j/ validoivaa XML-jäsennintä. Automaatit ovat yleispätevä ratkaisu, joka jättää huomattavan osan rakenteenvalvonnan (ContentManager) koodia erilaisille aksessoreille, jotka elementin lapsisarjaan kohdistuvan muutoksen sallittuuden selvittämiseksi tyypillisesti rakentavat ensin kandidaattina käytettävän lapsisarjan ja yrittävät sitten validoida sen automaatilla. Jos DTD sallii muutoksen, automaatti hyväksyy lapsisarjakandidaatin, ja laitetaan muistiin tieto rakenteesta ennen muutosta peruutustoimintoa varten ja tehdään muutos itse artikkeliin. Kun luodaan uusi artikkeli, joudutaan DTD:n perusteella luomaan tyhjä mutta validi artikkelipohja. Tässä noudatetaan seuraavaa periaatetta: sovelletaan aina säännöllisen lausekkeen ensimmäistä sääntöä. Ei siis synny välttämättä minimaalista pohjaa. Erityisesti DTD:tä laadittaessa on merkitystä sillä, lukeeko siellä (a|(b,a)|c)+ vai kenties ((b,a)|a|c)+ Ensimmäisessä tapauksessa isäelementille luodaan yksi lapsi: a. Toisessa tapauksessa luodaan kaksi lasta b ja a, tässä järjestyksessä. Halutessaan käyttäjä voi korvata elementtejä toisilla. CVS-esitelmä (10.15) Harri esitteli CVS-versionhallintajärjestelmää. CVS-materaalia on saatavilla osoitteessa http://www.cs.helsinki.fi/group/jouto/esitelmat/cvs.html Tehtävien jako ja toiminta jatkossa (10.50) Jarno nimitettiin LaTeX-asiantuntijaksi. Harri nimitettiin CVS-asiantuntijaksi. Lari nimitettiin Servlet-asiantuntijaksi. (ohjaaja poistui n. 11.05) Aletaan kirjoittaa suunnitteludokumenttia. - käyttöliittymää suunnittelevat Harri, Antti ja Eija. - servletin suunnittelee Lari. - artikkelin muokkausta suunnittelevat Petri ja Jarno. Antti on vastuussa dokumentista kokonaisuutena. Perjantaihin mennessä pyritään kirjoittamaan suunnitteludokumentin eri osista alustavat versiot yhdistämistä varten. Dokumentin katselmointi on siirretty ensi viikon tiistain kokoukseen (20.2.2001). Perjantaihin mennessä kunkin ryhmän jäsenen tulisi myös tutustua CVS:n käyttöön. Pitäisi hankkia db.cs-palvelimen tietokantajärjestelmään käyttäjätunnus. Kokous päätettiin 11.25 Seuraava tapaaminen on to 15.2.2001 klo 14.15- C455. Allekirjoittanut ei pääse osallistumaan. Petri Hellemaa