Rakenteiset dokumentit, kevät 2005 7307015 Rakenteiset dokumentit, 3 ov, 2005 opetetaan kevään 1-2 periodeilla Kotisivu: Luennot: Harjoitukset: Suoritustapa: http://matriisi.ee.tut.fi/hmopetus/rd/index.html TI 14-16 ja KE 12-14, salissa S1 (Huom! erikoinen aikataulu) MA 12-14, TI 10-12, KE 14-16 ja TO 08-10, salissa Sb204 Luennot, harjoitukset ja tentti. Ei harjoitustyötä. Porkkanapisteitä jaossa. Opettajat: Ossi Nykänen, TD303, vastaanotto to 13-14 ossi.nykanen@tut.fi, assitentti Ilkka Kaikuvuo, kaikuvuo@cs.tut.fi 1
1 Johdanto Perusidea hyvin lyhyesti esitettynä: Rakenteinen dokumentaatio lähtee liikkeelle siitä kuningasajatuksesta että tietoa (dataa) mallintava tietorakenne ja sen esitystapa tulee teknisesti erottaa toisistaan sovelluksissa. Motivaatio on tietojenkäsittelyn tehostaminen ja sen automatisointi (so. käsittely ilman ihmisen käsityötä) Työ nojautuu tietoteknisten välineiden käyttöön. Keskeistä on kyky mallintaa tehtäviä ja tietorakenteita "oikein", eli tarpeet, reunaehdot ja välineiden mahdollisuudet huomioiden. Dokumenttien sijaan tietoa voidaan mallintaa myös datalähtöisesti. Pääpaino on tietenkin sovelluksissa, ei tekniikassa. Huomattava osa rakenteisten dokumenttien sovelluksista perustuu nykyään erilaisiin XML-tekniikoihin. Laajennettavuutensa ansiosta XML tarjoaa yhteensopivat puitteet mitä moninaisempiin sovelluksiin. 2
1.1 Opintojakson sisältö (1/2) Tällä opintojaksolla "Rakenteiset dokumentit" puhutaan mm. seuraavista asioista: - Tiedon mallinnus sen käsittelyn näkökulmasta - Tieto vs. tietorakenne vs. esitystapa (~rakdok) - Tiedon looginen vs. fyysinen rakenne - Dokumentti- vs. datakeskeinen tieto - Dokumenttistandardit ((X)HTML (aasinsilta)) - XML-dokumentit ja niiden käsittely - XML-dokumentin tyyppi - "XML" vs. XML-standardiperhe - XSL-muunnokset - Sovelluksia ja esimerkkejä, erityiskysymyksiä 3
1.2 Opintojakson sisältö (2/2) Kurssilla ei juurikaan (suoraan) puhuta seuraavista: - sovellusalueen X erityiskysymyksistä tai yksittäisistä ohjelmistoista (...vaan menetelmistä yleensä) - menetelmien erityiskysymyksistä (...vaan ideoista suodatettuna stdtekniikoihin) - (kovin paljoa) uusien dokumenttiprosessorien toteuttamisesta (...vaan nykyisten soveltamisesta) Opintojakso on perinteinen yo-kurssi - teorialuennot, sovellusluennot, vierailuluennot(?), harjoitukset, lopputentti 4
1.3 Opintojakson suoritustapa Arvosanan määrää lopputentti (4 * 6 pts = 24 pts). Hyvää kurssiarvosanaa voi varmistella keräämällä porkkanapisteitä kurssin aikana. Arvosanataulukko on seuraava: arvosana 0 1 2 3 4 5 pistemäärä 0-10 11-13 14-16 17-19 20-21 22-24 Mikäli porkkanapisteitä on kertynyt edullisesti, huonoimman tenttitehtävän pistesaalis korvataan maksimissaan kuudella porkkanapisteellä. Porkkanapisteitä saa tekemällä erikseen merkittyjä harjoitustehtäviä ja osallistumalla aktiivisesti vierailuluennoille. Porkkanapisteiden jakoperuste on opiskelijan oma aktiivisuus ja asioiden opiskelu silloin kun niitä opetetaan. Huom. Porkkanapisteiden lähtökohta on läsnäolo: suorituksia ei saa delegoida toisen merkittäväksi, eikä lähettää sähköpostitse tms. 5
1.4 Johdattelevia esimerkkejä rakenteisista dokumenteista (maalaus, näytelmäesitys, eväsretki) piirros, kauppalappu luentomuistiinpano luentopruju artikkeli, runo, näytelmä kirja, kalenteri kuva, audioesitys, animaatio tietokoneohjelman talletustiedosto tekstinkäsittelyohjelman tuottama dokumentti viesti tietokoneohjelmien välillä Hyviä huomioita - tarpeet? käytössä olevat välineet? montako toimijaa? ymmärtääkö käsittelijä? tuotannon tehokkuus? käsittelyn tehokkuus? käsittely osissa? - standardit ja siirrettävyys? tiedon uudelleenkäyttö? versiointi ja virkistäminen? lisensointi? sitoutuminen yhteen toimittajaan? 6
1.5 Dokumenttituotannon roolijaosta Wanhaan hyvään aikaan tekstin prosessointi sujui kutakuinkin seuraavasti: - kirjoittaja kirjoitti käsikirjoituksen (kirjoituskoneella) ja lähetti sen kustantajalle - käsikirjoituksen hyväksymisen, oikolukemisen, editoimisen, yms. jälkeen kustantajan taittaja suunnitteli tuotettavan teoksen ulkoasun (sommittelu, taitto (layout)) kirjoittamalla käsin ulkoasun ohjeet käsikirjoituksen marginaaliin (palstat, kirjasimet, fonttikoot, tekstin välistys, ) - seuraavaksi latoja latoi käsikirjoituksen annettujen ohjeiden perusteella, tuloksena konkreettinen ohje esim. kirjan painamiseksi (+kannet) - lopuksi tuotos julkaistiin käyttäen erilaisia markkinointi- ja jakelukanavia Erityyppisillä töillä siis eri vaiheet ja eri tekijät - tosin ammattikirjoittajat siirtyivät hiljalleen käyttämään suoraan myös erilaisia formatointikieliä 7
1.6 What You See Is What Yout Get (-live with it!) Nykyiset tekstinkäsittely- ja julkaisuohjelmat (ns. desktop publishing) tarjoavat näennäisen helpon tavan tehdä kaiken itse yhdeltä istumalta 80-luvulta alkanut WYSIWYG-buumi, hyvää: - kehittyneet ohjelmat helppokäyttöisiä ja intuitiivisia (työpöytämetaforat) - mahdollisuus lopputuloksen näkemiseen jo kirjoitusvaiheessa, joten esimerkiksi pienimuotoinen julkaisutoiminta on mahdollista helposti - mukana monipuolisia formatointi ja taittoominaisuuksia, Internetin myötä myös jakelu Ongelma: työstä tulee helposti käsityötä (suuret dokumentit!) - dokumenttien suunnittelu jää helposti puolitiehen (=tehdään huonosti) - rakenne (rämettyminen) ja kirjoittajan rooli epäselvä (ohjeistus!) Ratkaisuja: hyvä suunnittelu(!), tyylit, etsi/korvaa-toiminnot, mallit, 8
1.7 Dinosaurus, joka elää & voi hyvin: LaTeX Kaikki eivät kuitenkaan kirjoita tuotoksiaan XX Wordillä - erityisesti korkeakoulumaailmassa huomattava osa akateemisista kirjoittajista vannoo LaTeXin nimeen TeX on (alunperin) tekstin ja matemaattisten kaavojen ladontaan tarkoitettu pitkän linjan tietokoneohjelma, jonka ensimmäinen versio julkaistiin 1982 (D. Knuth). Nykyään useille eri käyttöjärjestelmille LaTeX on TeXin varaan rakentuva makropakkaus avulla kirjoittajat voivat latoa ja tulostaa dokumentteja ammattimaisen taittomallin mukaisesti Työskentely LaTeXilla tapahtuu periaatteessa ohjelmankehitystyöstä tuttujen pelisääntöjen mukaisesti - kirjoittaja kirjoittaa lähdekoodit tekstimuodossa (ns. käsikirjoitustiedostot) tekstinkäsittelyohjelmalla.tex-tiedostoiksi - lähdekoodi käännetään (tyypillisesti komentorivipohjaisella) latexohjelmalla graafiseen muotoon.dvi-tiedostoiksi, joka voidaan edelleen muuntaa tulostettavaan muotoon (tai lähdekoodia voi korjata) 9
1.8 LaTeX-esimerkki Tyypillinen TeX-tiedosto näyttää seuraavalta: \documentclass[a4paper]{article} \begin{document} \title{latex-example} \author{ossi Nyk\"{a}nen} \maketitle \abstract{this article demonstrates LaTeX basics. Read some introductionary book for details.} \tableofcontents \section{introduction} \LaTeX{} really is something, especially if you want to input equations in your text\footnote{assuming you know \LaTeX codes, that is.}. Here's an example: \begin{equation}\label{pred} \forall x \in X: P(x). \end{equation} 10
If you wan't to know what \ref{pred} means, please consult your elementary logic book. \section{functional Descriptions} Function is a map $t:x \to Y$. The family of XML specifications defines many languages that allow defining functions, e.g., the Extensible Stylesheet Transformation Language \cite{xslt}. \begin{thebibliography}{longtitle} \bibitem{xslt} "XSL Transformations (XSLT) Version 1.0", J. Clark, editor, 16 November 1999. Available at http://www.w3.org/tr/xslt \end{thebibliography} \end{document} 11
1.9 Huomioita Erikoismerkit, käskyt, kommentit sekä tiedoston rakenne Jos kaikki tarvittava on työkoneella valmiiksi asennettuna, kääntäminen Unixissa tai Linuxissa sujuu helposti komennolla latex koe.tex Dokumentin katselu ja ps-tiedoston tuottaminen tulostamista varten on yhtä helppoa: xdvi koe.dvi & dvips -o koe.ps koe.dvi Tuloksena on ammattimaisen ulkoasun omaava sivupahanen, jossa ilmaiseksi saatiin varsin paljon dokumentin rakenne LaTeX-komennoilla merkkaamalla: - palstoitus ja marginaalit (alaviittaus) - eri tyylit tekstin eri osille (otsikko, tiivistelmä, vakiokentät, ) - otsikoiden numerointi, kaavan numerointi & viittaukset, jne. 12
1.10 Olennaista: keskittyminen sisältöön! Juuri tämä on LaTeXin idea: systeemi tarjoaa ammattimaisen rakenteen ja ulkoasun kirjoittajan keskittyessä olennaiseen, eli sisällön tuottamiseen LaTeX-systeemissä "LaTeX taittaa" ja "TeX toimii latojana" Käytännössä tämä tarkoittaa sitä, että kirjoittaja muotoilee tekstinsä ja sen rakenteen LaTeXin käskyjen avulla halutuksi, josta esitysversio sitten "käännetään" LaTeX pyrkii tekemään teksteistä paitsi hyvän näköisiä, ennen kaikkea luettavia (sisäänrakennettu typografinen malli & johdonmukainen rakenne) LaTeXista on eri versioita (mutta kyse on aina "painetuksi tarkoitettavien julkaisujen" tekemisestä...entäpä jos halutaan tehdä muuta rakenteellista) "Windows-käyttöön" tottuneille (ja miksei muillekin) LaTeX on aluksi "oma maailmansa" -- ideaan joko mieltyy tai sitten ei (nyrkkisääntö: jos kirjoittaa vähän, Latex tuntuu aluksi "työläältä"). 13
1.11 WWW & HTML Internetin suosion myötä tietoverkkojen arvo arkipäiväisen informaation levittelyssä huomattiin. Kirjoittaminen ei vain saisi olla kohtuuttoman vaikeaa World Wide Webin lanseeraama HTML esitteli 90-luvun alussa suurelle yleisölle yksinkertaisen mutta rakenteellisen merkintäkielen - idea: teksti + yksinkertainen merkkaus - nopea oppia perusideat leviävät ja HTML otetaan todella nopeasti laajamittaiseen käyttöön Ongelmia: - helppous johtaa löysyyteen, merkkaus sekaisin rakenne- ja ulkoasumäärityksiä ja selaimet sallivat #%&"-koodit mukisematta - ulkoasullisesta rajoittuneisuudesta johtuen kuvaileva merkkaus ei saa suosiota, vaan koodeja aletaan käyttää myös formatointiin Tulos: HTML lipsuu kohti formatointikieltä: WWW-WYSIWYG. Ei hyvä Oppiminen tapahtuu kantapään kautta: takaisin sorvin ääreen...xhtml 14
1.12 XHTML-esimerkki Tyypillinen XHTML-tiedosto näyttää seuraavalta: <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/tr/xhtml11/dtd/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head><title>html-esimerkki</title></head> <body><!-- Tästä se alkaa... --> <h1>johdanto</h1> <p>valitse HTML kun haluat liittää kuvia ja linkkejä <em>websivulle</em> (ja tunnet HTML-merkkauksen perusteet). Esimerkki:</p> <p><img src="kuva.gif" alt="kuva"> <a href="http://matriisi.ee.tut.fi/hmopetus/">hm ammattiaineen kotisivut</a></p> <p>jos et ymmärrä tämän dokumentin merkitystä, käy läpi HTMLkielen perusteet.</p> </body> </html> Huomaa: elementit, erikoismerkit, kommentit sekä dokumentin tyyppi 15
1.13 Paluu juurille Rakenteisten dokumenttien perusajatuksena on kohdistaa dokumenttien suunnittelun huomio oikeisiin kohtiin: - dokumenttien rakenteen suunnittelu asiasisällön (lue: käsittelyn) näkökulmasta, ei ulkoasun - tiedon ja sen käsittelyn paloittelu ja komponenttiajattelu (dokumenttien peruspalasia ovat elementit, käsittely koostuu vaiheista) - dokumenttien ulkoasun ei ole pakko suoraan vastata niiden sisällöllistä rakennetta ja päinvastoin! Kyseessä ei ole uusi asia! - rakenteisten dokumenttien moderni esiinmarssi alkoi käytännössä SGML-standardin (ISO 8879:1986) valmistuttua 1986 - SGML:n kehitystyö alkoi jo 1980, pohjana IBM:n GML (Generalized Markup Language) vuodelta 1969! (Goldfarb, Mosher, Lorris) SGML osoittautui kuitenkin varsin raskaaksi isojen poikien standardiksi (esimerkiksi IBM, USA:n Puolustusministeriö) - suppea käyttö ei suosittua 16
1.14 Kerran vielä (pojat tytöt)! SGML:n idea on hyvä, mutta iso spesifikaatio (~500 sivua) W3C:n SGML wg: XML 1.0 vuonna 1998 (~30 sivua) - XML on SGML:n sovellusprofiili - tarvitaan muitakin standardeja sekä välineitä ja sovellusosaamista Yleisöystävälliset tavoitteet - yhteensopivuus SGML:n kanssa ja sen hyvät puolet, dokumenttien sekä niitä prosessoivien ohjelmien suunnittelun ja lukemisen "helppous" - spesifikaatiossa vähän valinnaisia piirteitä ja soveltaminen täsmällistä - XML-dokumenttien käyttö (Internetissä) "yksinkertaista" (...ohjelmointi) Pulmia - jos valmista sovellusta ei löydy on edessä suunnittelua, opiskelu(!), kirjoittajan roolin muutos(!), "byrokraattisuus/ teknisyys", editorit(!),... XML-standardiperheen ydin tällä hetkellä valmis ja XML:ää tukevien sovellusten kriittinen massa on ylitetty (soveltajia, työkaluja, dataa) 17
1.15 Standardiesimerkki rakenteisesta dokumentista looginen rakenne fyysinen rakenne <doc><title> XML 5 vuotta </title> <body> Paljon onnea XML! </body></doc> 10011000 10011000 Sovellus / prosessointi www w3c tut <?xml version= 1.0?> <xsl:stylesheet XML 5 Paljon onnea XML! www.w3c.tut.f esitys / näkymä (joskus (kohdedokumentti") rakenteinen (lähde-) dokumentti tyyli (esim. formatointi) kuva (mediaobjekti) 18
1.16 Huomioita Aluksi tekniikka vie päähuomion, tietojen ja taitojen karttuessa työ kohdistuu tietoa tuottavien ja hallitsevien prosessien suunnitteluun ja ohjaamiseen Kyse on todellakin enemmänkin juuri suunnittelusta ja prosesseista kuin tekniikoista! - tekniikka X(ML) ei sinänsä ratkaise pulmia vaan tarjoaa välineitä (ja menetelmiä) niiden ratkaisuun (sekä esimerkkejä...) - WYSIWYG ja siihen liittyvät työkalut eivät ole "pahoja" ne sopivat tiettyihin tehtäviin erittäin hyvin (myös esim. MS Wordille on saatavilla hyviä artikkelipohjia yms.) -...itse asiassa ideaalitapauksessa esim. (rakenteinen) sisällöntuotanto piilotetaan WYSWIWYG-tyyppisten työkalujen alle (kun ko. käyttäjäryhmän ei tarvitse ymmärtää koko prosessia) - asiat voi yleensä tehdä useilla eri tavoilla, myös eri tekniikoita käyttäen 19