73275 Rakenteiset dokumentit (3 ov) Ossi Nykänen ossi.nykanen@cc.tut.fi
73275 Rakenteiset dokumentit (3 ov) Opettaja: Ossi Nykänen Sähköposti: ossi.nykanen@tut.fi Huone: TD309, matematiikan laitos / hypermedialaboratorio Puhelin: (03) 365 3544 (VOA to 13-14) Luennot: ti 10-12 ja ke 12-14 (S3) Harjoitukset: ma 12-14 ja to 10-12 (Sb204), kolmas ryhmä ke 10-12 Esitiedot ~ tietotekniikan perustiedot HTML-perusteiden hallinta ohjelmoinnin perustiedot Kotisivu: http://matriisi.ee.tut.fi/~onykane/courses/rakdok02/ Suorittaminen: lopputentti (+eriks. ilm. porkkanapisteitä harj/vierailuluennoilta)
73275 Rakenteiset dokumentit (3 ov) Kurssilla perehdytään rakenteisten dokumenttien ideoihin ja tutustutaan nykyaikaisiin merkintäkieliin. Käsiteltäviä aiheita (aihepiirin yleisen "ideologian" ohella) ovat erityisesti HTML & style sheets, XML, SGML, sekä dokumenttien parsiminen. Kurssilla käsitellään lyhyemmin muitakin merkintäkieliä ja luodaan katsaus tärkeimpiin XML-standardia sivuaviin määrityksiin. Kurssin tavoitteena on toisaalta tiedon rakenteistamisen "merkityksen" oivaltaminen, toisaalta konkreettisten merkintäkielten hallinta (läh. XML). Rakenteisten dokumenttien ideoita & termejä käsitellään aluksi paljolti HTML:n kautta, koska kieli perusmuodossaan oletetaan tunnetuksi. Asian edetessä kurssin painopiste siirtyy selkeästi XML:n ja muiden rakdok-sovellusten suuntaan. Tärkeimpiä esiteltäviä XML-sovelluksia ovat XML-standardiperheen suositukset, HTML, DocBook
73275 Rakenteiset dokumentit (3 ov) Kurssin asiasisältö näyttää kutakuinkin seuraavalta: johdantoa, taustoja, peruskäsitteitä mikä HTML on ja miten se liittyy SGML:ään tai XML:ään? HTML+CSS XML:n perusteet, XML-standardiperhe & muut standardit XML-sovellukset rakenteisten dokumenttien sovellutuksia (erit. HTML, XML-stdperhe DocBook) XML-dokumenttien parsiminen + ajan salliessa muutakin Mainittakoon, että prosessoriohjelmointia ei kurssilla varsinaisesti käsitellä. Asiaa käydään läpi yksinkertaisten esimerkkien kautta, mikäli aikaa jää.
73275 Rakenteiset dokumentit (3 ov) Kurssilla luodaan yleiskatsaus rakenteisten dokumenttien maailmaan. Painopiste on tietyssä mielessä pikemminkin "teoreettinen" kuin "soveltava" Näkökulma on erityisesti asioiden sovelluksista riippumattomien perusteiden opiskelu - ohjelmistoihin ja eri sisältöjen erityiskysymyksiin ei yksityiskohtaisesti puututa. Motivaatio tälle on esitetyn asian pysyvyys: ohjelmistot tulevat ja menevät, ideat pysyvät Tavoitteena on nyt lähinnä vastata seuraaviin yksinkertaisiin kysymyksiin (sekä harjaantua puuhastelemaan asioiden parissa myös käytännössä): - mitä rakenteellisilla dokumenteilla tarkoitetaan? - miksi ja miten erottaa toisistaan dokumentin sisältö, rakenne ja ulkoasu? - mikä XML on ja miten se liittyy rakenteisiin dokumentteihin? - miten rakenteisiin dokumentteihin liittyviä (W3C-)spesifikaatioita määritellään, luetaan ja opiskellaan? - mitä "muuta asiaan liittyvää" on olemassa?
73275 Rakenteiset dokumentit (3 ov) Asioiden esittely etenee HTML:n kautta XML-standardiperheeseen, lähinnä "kohti" XSL-muunnoksia (XML-dokumenttien transformointi) Kurssilla oppii "perus-xml:n läpikotaisin". Toisaalta esim. varsinaiseen XMLprosessoriohjelmointiin ei kurssilla syvällisesti puututa. Tämä ei tarkoita, etteikö omien prosessoriohjelmien kirjoittaminen olisi hyödyllistä, vaan kyse on lähinnä aikataulun puitteissa suoritettavasta aihevalinnasta ("suurin osa" XMLsoveltajista todennäköisesti valitsee saman tien kuin mekin) Kurssilla ei opi "koko XML:ää" - XML-standardiperhe on varsin laaja kokonaisuus, joka liittyy lukuisiin muihin standardeihin Kannattaa pitää mielessä, että - rakenteiset dokumentit XML. Rakenteisten dokumenttien ideat on mahdollista toteuttaa myös toisin ja todellinen "motivaatio" ovat sovellukset - rakenteisuuden hyvien hyödyntäminen onnistuu myös, vaikka työvälineet eivät tähän pakottaisikaan (tai kaikkea mahdollistaisi) - kyse on pikemminkin ajattelutavasta kuin tietystä välineestä - HTML, MS Word, SO Write, eivät ole rakenteisten dokumenttien perivihollisia - ne vain tarjoavat mahdollisuuden tehdä asioita myös "toisin"
; B ' 3 XW 73275 Rakenteiset dokumentit (3 ov) (jota luet juuri nyt) on Kurssin löyhän rungon muodostava kopioitavissa luentorunkokansiosta (tieto löytyy kurssin kotisivuilta)+ luentorunko löytyy myös PDF-muodossa verkosta. Varsinaista, pakollista kurssikirjaa ei ole, joskin kurssin XML-osuus löytyy mukavasti yksistä kansista kirjasta @ A 5 >? 9 8 <= 8 ;: 9 5 8 76 45 2/3 10,-/. + +* ) (' &% #$ "!! Kirjan ostaminen ole välttämätöntä, mutta selkiyttänee XML:n opiskelua. Kurssi, luentorunko & muu oheisaineisto kertovat pitkälti samoista asioista, mutta osin laajemmin ja hieman eri näkökulmasta. Kurssi käsittelee muutakin kuin vain yo. kirjan asiaa -- kirjasta puuttuu G FE CD esim. DocBook-osuus kokonaan. Kirjan ulkopuolinen osuus löytyy kuitenkin verkosta kokonaisuudessaan ilmaisena. Verkkoviitteet ilmoitetaan luentojen yhteydessä. Muita suositeltavia, aiheesta yleisesti kertovia kirjoja ovat esim., Wrox Press Ltd, USA VU TS R N Q O PQ L MN (2000). K I J H Didier Martin
Y 73275 Rakenteiset dokumentit (3 ov), IDG Books, USA a `_^ ]\ [Z Elliotte Rusty Harold (1999)., Sybex, USA pf o n l m i jk f gh (1999). e c d b Ann Navaro Eric van Herwijnen, E., Practical SGML (2nd ed), Kluwer, USA, 1994 Eve Maler (1996), Developing SGML DTDs: From Text to Model to Markup, Prentice-Hall, USA t r s q Muitakin toki on. "Soveltuvin osin" erityisen hyvä XML-teos on myös esim. (1999), the XML Handbook - 2nd edition, Prentice- x v w u Charles F. Goldfarb Hall, USA Hyvä HTML-kirja on esim. Chuck Musciano, (1998) HTML: The Definitive Guide (3rd ed), O'Reilly, USA, tai vastaava uudempi myös XHTML:ää käsittelevä painos z { y Hyödyllistä luettavaa kurssin aihepiiristä löytyy verkosta esim. allekirjoittaneen kotisivuilta osoitteesta http://matriisi.ee.tut.fi/~onykane/linkit.html Yksityiskohtaisempia viitteitä annetaan jatkossa luentojen aihepiirien mukaisesti.
Š Ž } 73275 Rakenteiset dokumentit (3 ov). Pakollista harjoitustyötä ei : ˆ ƒ ~ Œ Œ Œ Ž Kurssimerkintään vaaditaan ole. Hyvää kurssiarvosanaa voi varmistella - porkkanapisteitä on mahdollista kerätä max 12 kappaletta; tämä vastaa neljäsosaa lopputentin pistemäärästä eli keräämällä kaikki porkkanapisteet, tentin pistemäärään (max 24) lisätään automaattisesti 6 lisäpistettä - porkkanapisteitä kertyy tekemällä erikseen merkittyjä harjoitustehtäviä esittämällä tehtävä harjoituksessa pyydettäessä mukisematta (harjoitusten palauttaminen paperilla/sähköpostitse ei ole mahdollista) š - porkkanapisteitä saattaa olla luvassa myös osallistumalla kevään erityisluennoille/seminaariin (asia on vielä tätä kirjoittaessa epävarma) Hyväksyttyyn lopputenttiin vaaditaan puolet tentin maksimipistemäärästä. Kurssista voi saada täyden kurssiarvosanan ilman porkkanapisteitäkin. Tenttiajat ja -salit löytyvät OINFOsta.
œ Esipuhe Wanhaan hyvään aikaan tekstin prosessointi sujui kutakuinkin seuraavasti: (esim. kirjoituskoneella) ja lähetti sen «ª kirjoitti kustantajalle ž ž Ÿ - - Käsikirjoituksen hyväksymisen, oikolukemisen, editoimisen, yms. jälkeen kustantajan suunnitteli tuotettavan teoksen ulkoasun (sommittelu, ² ± taitto [layout]) kirjoittamalla käsin ulkoasun ohjeet käsikirjoituksen marginaaliin (palstat, kirjasimet, fonttikoot, tekstin välistys, ) - Seuraavaksi latoi käsikirjoituksen annettujen ohjeiden perusteella, tuloksena konkreettinen ohje esim. kirjan µ ³ º ½ º ½ ¼ ¾ º» ¹ ¹ käyttäen erilaisia markkinointi- ja jakelukanavia ÅÇÅ È Å Æ ÂÃ Ä À Á - Lopuksi tuotos Erityyppisillä töillä oli siis eri vaiheet ja eri tekijät - tosin ammattikirjoittajat siirtyivät hiljalleen käyttämään suoraan myös formatointikieliä (esim. ntroff ja TEX)
Ô Ó ÖÝ Ù Ø Û è í Esipuhe Nykyiset tekstinkäsittely- ja julkaisuohjelmat ([desktop publishing]) tarjoavat näennäisen helpon tavan tehdä kaiken itse yhdeltä istumalta, hyvää: ÑÒ Ò ÎÐÏ ËÊ ÌÍ ËÊ 80-luvulta alkanut - kehittyneet ohjelmat helppokäyttöisiä ja intuitiivisia (työpöytämetaforat) - mahdollisuus "nähdä lopputulos" jo kirjoitusvaiheessa sopien siten mainiosti esim. pieneen julkaisutoimintaan - mukana monipuolisia formatointi ja taitto-ominaisuuksia, 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 parhaimmillaankin implisiittistä, (!), etsi/korvaa-toiminnot, tyylit, mallit, ëêëì é éè è æç ãäå Ratkaisuja: É É
ÿ ïî Esipuhe Kaikki eivät kuitenkaan kirjoita tuotoksiaan MS Office Wordillä - erityisesti korkeakoulumaailmassa huomattava osa akateemisista kirjoittajista vannoo in nimeen (joskus jopa fanaattisuuteen asti ) ô ò ó ð ñ on tekstin ja matemaattisten kaavojen ladontaan tarkoitettu pitkän linjan õ ö tietokoneohjelma, jonka "ensimmäinen" versio julkaistiin jo 1982 (D. Knuth). Ohjelmatoteutuksia löytyy nykyään useille eri käyttöjärjestelmille on TeXin varaan rakentuva makropakkaus (ensimmäinen versio oli L. ü ú û ø ù Lamportin käsialaa), jonka avulla kirjoittajat voivat latoa ja tulostaa korkealaatuisia (tekstipainotteisia) dokumentteja ammattimaisen taittomallin mukaisesti Työskentely LaTeXilla tapahtuu periaatteessa ohjelmankehitystyöstä tuttujen pelisääntöjen mukaisesti ÿ ) ý - kirjoittaja kirjoittaa lähdekoodit ascii-muodossa (ns. tekstinkäsittelyohjelmalla (esim. emacs).tex-tiedostoiksi ýþÿ - lähdekoodi käännetään (tyypillisesti komentorivipohjaisella) latexohjelmalla graafiseen muotoon.dvi-tiedostoiksi, joka voidaan edelleen konvertoida tulostettavaan muotoon (tai lähdekoodia voi korjata)
Esipuhe Tyypillinen (englanninkielinen) LaTeX-tiedosto näyttää esim. 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.} % Tästä se alkaa \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} If you wan't to know what \ref{pred} means, please consult your elementary logic book. \end{document} Huomaa: erikoismerkit, käskyt, kommentit, sekä
"! ''! Esipuhe Jos kaikki tarvittava on työkoneella valmiiksi asennettuna, kääntäminen Unixissa 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 : $&% #!!!! - palstoitus ja marginaalit (alaviittaus) - eri tyylit tekstin eri osille (otsikko, tiivistelmä, vakiokentät, ) - otsikoiden numerointi, kaavan numerointi & viittaukset, jne. Juuri tämä on LaTeXin idea: systeemi tarjoaa ammattimaisen rakenteen ja ulkoasun kirjoittajan keskittyessä olennaiseen, eli sisällön tuottamiseen
+ / -6 1 54 /. -7 KB JI G = @ : F O L W [ ^ ` Esipuhe 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 (hyvä sisäänrakennettu typografinen malli & johdonmukainen rakenne) LaTeXista on olemassa eri versioita. Nykyinen versio on LaTeX2e - LaTeX3 on jo kehitteillä (ks., http://www.latex-project.org/ ) 2-3 10, - * + Windows-käyttöön tottuneille (ja miksei muillekin) LaTeX on oikeastaan aivan oma maailmansa. Verkosta löytyy runsaasti aiheeseen liittyvää materiaalia - aluksi kannattaa lukea esim. (ks. esim. http://linnea.helsinki.fi/elbanco/tex/lyhyt2e.pdf ). L PPQ Q MN H B F ED C @ = B= 9 A B @? >= ;< :98 - Tämän jälkeen helpon pääsyn lisämateriaaliin, oppaisiin ja ohjelmistoihin tarjoaa esim. (ks. \ Z V d ^ U b&c U a S V W _ V U T_ ` ] ^ \ Z W V U [ TV Z Y V W X V W T U R S - http://hul.helsinki.fi/elbanco/tex/tex.htm ) ()
fe Esipuhe 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 muotoilumäärityksiä ja selaimet sallivat #%&"-koodit mukisematta - "ulkoasullisesta rajoittuneisuudesta" johtuen deklaratiivinen 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
Esipuhe Tyypillinen HTML-tiedosto (versio 3.2) näyttää esim. seuraavalta: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <HTML> <HEAD><TITLE>HTML-example</TITLE></HEAD> <BODY> <!-- Tästä se alkaa... --> <H1>Introduction</H1> <P>HTML really is something, especially if you want to input pictures and hyperlinks in your text (assuming you know HTML codes, that is.). Here's an example:</p> <P><IMG SRC="logo.gif"> <A HREF="http://matriisi.ee.tut.fi/~onykane/courses/">HM ammattiaineen kotisivut</a></p> <P>If you wan't to know what all this means, please consult your elementary HTML book.</p> </BODY> </HTML> ko o r q k po i m n l m ij k Huomaa: erikoismerkit, tagit, kommentit, sekä HTML:ään palataan yksityiskohtaisemmin ponnahduslautana XML:ään gh
~ u v u ƒ ƒ ƒ Œ Œ ts Esipuhe Rakenteisten dokumenttien perusajatuksena on kohdistaa dokumenttien suunnittelun huomio "oikeisiin kohtiin":, ei u { x ~ ~y w z z u v~ } { z xxy w - dokumenttien rakenteen suunnittelu ulkoasun ˆ ) - "komponenttiajattelu" (dokumenttien peruspalasia ovat - dokumenttien ulkoasun ei ole pakko suoraan vastata niiden sisällöllistä rakennetta ja päinvastoin - 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" vuodelta 1969! (Goldfarb, Mosher, Lorris) SGML osoittautui kuitenkin varsin raskaaksi "isojen poikien standardiksi" (esim. IBM, USA DoD) - suppea käyttö ei saavuttanut laajaa suosiota
Ÿ Esipuhe SGML:n idea on hyvä, mutta spesifikaatio on mammuttimainen (~500 sivua) W3C:n SGML Working Group: XML 1.0 vuonna 1998 (~30 sivua) - XML = SGML Application profile Ÿœ! Ÿ ž Ÿ œ š Ÿ ž Ÿ œ š - Yleisöystävälliset tavoitteet - yhteensopivuus SGML:n kanssa ja sen "hyvät puolet" - dokumenttien sekä niitä prosessoivien ohjelmien suunnittelun ja lukemisen helppous ja selkeys - spesifikaatiossa vähän valinnaisia piirteitä ja soveltaminen eksaktia - dokumenttien käyttö Internetissä on yksinkertaista Nykytilanne on käytännössä ihan hyvä, mutta XML-standardiperhe on vielä kesken eikä ohjelmia ole yli "kriittisen massan"
Esipuhe Jo tässä vaiheessa lienee syytä kertoa jotain niistä kirjainhirviöistä, joita kurssin kuluessa tullaan käyttämään (osaan palataan tarkemmin myöhemmin) WWW = World Wide Web W3C = WWW Consortium HTML =Hypertext Markup Language (ks. http://www.w3.org/markup/ ) SGML = Standard Generalized Markup Language XML = Extensible Markup Language (ks. http://www.w3.org/xml/ ) DTD = Document Type Definition CSS = Cascading Style Sheets (ks. http://www.w3.org/style/ ) XSL = Extensible Stylesheet Language (ks. http://www.w3.org/style/xsl/ ) XML-standardiperhe XML 1.0 + Namespaces + XSL +