What You See Is What Yout Get (-live with it!)

Samankaltaiset tiedostot
Johdatus rakenteisiin dokumentteihin

FED G F H?> FCQ FCQ I EO ba` _^] 86 2 mlk * % $,, * Oheisessa kuvassa on eritelty dokumentin sisältö, koodaus, rakenne ja ulkoasu I HG CB LG KJ I H

kevät Rakenteiset dokumentit (3 ov) Luentokalvot Ossi Nykänen Rakenteiset dokumentit (3 ov)

Rakenteiset dokumentit, kevät 2005

73275 Rakenteiset dokumentit (3 ov) Opettaja: Ossi Nykänen Sähköposti: Huone: TD309, matematiikan laitos / hypermedialaboratorio P

Rakenteiset dokumentit, kevät 2007

Tutkitaan sitten HTML-dokumenttien anatomiaa, jotta päästään käsiksi rakenteisten dokumenttien käsitteistöön esimerkkien kautta.

3 Verkkosaavutettavuuden tekniset perusteet

2 Rakenteisten dokumenttien perusteet

Vaasan yliopiston toimintaa tukevat informaatiopalvelut ovat käytettävissä WWW:n kautta.

WWW-ohjelmoinnin kokonaisuus. WWW-OHJELMOINTI 1 Merkkauskielet. Merkkauskielten idea. Merkkauskielet (markup languages) Merkkauskielten merkitys

Rakenteiset dokumentit, kevät 2008

XML johdanto, uusimmat standardit ja kehitys

Sisältö. XML, XHTML ja CSS XML XML. XML:n ja HTML:n ero. XML kieliä XML XHTML CSS XSL. T Hypermediadokumentin laatiminen 2002

kevät Rakenteiset dokumentit (3 ov) Luentokalvot Ossi Nykänen Rakenteiset dokumentit (3 ov)

XML prosessori. XML prosessointi. XML:n kirjoittaminen. Validoiva jäsennin. Tapahtumaohjattu käsittely. Tapahtumaohjattu käsittely.

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

2. PEHMEÄ XHTML XRAJAHTML

6 XML-työkalut 1. 6 XML-työkalut

3 XHTML-dokumenttien anatomia

H T M L eli kuinka laadin itselleni päheät kotisivut. Janne Käki

W3C-teknologiat ja yhteensopivuus

Rakenteiset dokumentit, kevät 2006

W3C ja Web-teknologiat

Rakenteiset dokumentit Mitä hyötyä niistä on?

Semanttinen Web. Ossi Nykänen Tampereen teknillinen yliopisto (TTY), DMI / Hypermedialaboratorio W3C Suomen toimisto

9.16 XSLT ja nimiavaruudet (1/3): literaali oletusnimiavaruus

HTML & CSS. HTML (HyperText Markup Language) Antti Koivisto. ! HTML on sivujen kuvauskieli.

13 Tiedostot, dokumentit, tieto (&h-media)

13 Tiedostot, dokumentit, tieto (&h-media)

XML, XHTML ja CSS. T Hypermediadokumentin laatiminen. Mikko Pohja

12 Dokumenttiluokan toteuttamisesta

2.17 Esimerkki järkevän relaatiotietokannan rakenteesta

Paikkatiedot ja Web-standardit

Rakenteisen oppimateriaalin tuottaminen verkossa esimerkki Rhaptos. Antti Auer Koordinaattori, HT Jyväskylän yliopisto Virtuaaliyliopistohanke

Verkkopalveluiden saavutettavuus

Est.kand Kandidaatintyö ja seminaari: L A T E Xin käyttöönotto

Verkkosivut perinteisesti. Tanja Välisalo

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

4. Lausekielinen ohjelmointi 4.1

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

Verkkosisällön saavutettavuusohjeet 2.0: hyviä ohjeita monimuotoisen sisällön suunnitteluun ja arviointiin

10 Tiedostot, dokumentit, tieto (&h-media)

Tähtitieteen käytännön menetelmiä Kevät 2009 Luento 9: L A T E X

Luento 1: Johdanto merkintäkieliin

2 Rakenteisten dokumenttien perusteet

M. Merikanto 2012 XML. Merkkauskieli, osa 2

XML / DTD / FOP -opas Internal

Semanttinen Web. Ossi Nykänen. Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto

W3C: teknologia ja (tieto)yhteiskunta

VERKKOSOVELLUSTEN OHJELMOINTI, JOHDATUS PHP:HEN

3 Verkkosaavutettavuuden tekniset perusteet

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML

Järjestelmäarkkitehtuuri (TK081702)

Johdatus XML teknologioihin

5. HelloWorld-ohjelma 5.1

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

4. Lausekielinen ohjelmointi 4.1

HTML ja CSS. Tästä se lähtee: portfolio-sivusto. Sivuston pääkansio, jonka sisällä on kaikki sivustoon kuuluvat alikansiot ja tiedostot.

Ongelma(t): Miten jollakin korkeamman tason ohjelmointikielellä esitetty algoritmi saadaan suoritettua mikro-ohjelmoitavalla tietokoneella ja siinä

Digitaalisen median tekniikat xhtml - jatkuu

The OWL-S are not what they seem

VisualStudio Pikaopas, osa 1: WEB sivujen suunnittelu

TIEDEJUTTUKURSSI FM VILLE SALMINEN

C-ohjelmoinnin peruskurssi. Pasi Sarolahti

XHTML - harjoitus. Tehtävä1: Tee xhtml tiedosto käyttäen notepad (muistio) ohjelmaa. Tiedoston tallennus notepad (muistio) ohjelmassa:

Ohjelmistojen mallintaminen, mallintaminen ja UML

Rakenteisten dokumenttien jatkokurssi, syksy 2006

W3C ja alueellinen standardointi

Eero Hyvönen. Semanttinen web. Linkitetyn avoimen datan käsikirja

ARVO - verkkomateriaalien arviointiin

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

IT-OSAAJA, TIETOJENKÄSITTELYN ERIKOISTUMISOPINNOT

in condition monitoring

W3C & verkkojulkaisun standardit

Paikkatietorajapinnat IT arkkitehtuurin näkökulmasta

7 Kommentoitu johdanto XML:ään

Johdatus L A TEXiin. Dept. of Mathematical Sciences. Tunti 1: Alkeet. Markus Harju, markus.harju at oulu.fi, M207

Sangen lyhyt L A T E X-johdatus

Entiteetit erotetaan muusta tekstistä & ja puolipiste. esim. copyright-merkki näkyy sivulla

XML Finland seminaari : Office 2007 XML dokumenttituotannossa

Luento 12: XML ja metatieto

11.4. Context-free kielet 1 / 17

Ohjelmoinnin perusteet Y Python

ASCII-taidetta. Intro: Python

HTML5 -elementit jatkuu

Code Camp for Girls. Sanna Nygård. Lokakuussa

Sangen lyhyt L A T E X-johdatus

Tekstinkäsittelystä. H4: Tekstinkäsittelyn perusharjoitus. Toimisto ohjelmista

Harjoitus 5. Esimerkki ohjelman toiminnasta: Lausekielinen ohjelmointi I Kesä 2018 Avoin yliopisto 1 / 5

P e d a c o d e ohjelmointikoulutus verkossa

9 XML perusteet

Laajuus 5 op Luennot: 12 x 2t Harjoitukset: 7 viikkoharjoitusta harjoitusten tekemiseen saatavissa apua 2 ryhmää / harjoitus

XML kielioppi. Elementtien ja attribuuttien määrittely. Ctl230: Luentokalvot Miro Lehtonen

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Sivuston tiedotgoogle.com

Ohjelmoinnin perusteet Y Python

CSS - tyylit Seppo Räsänen

Transkriptio:

Esipuhe 1 Esipuhe Wanhaan hyvään aikaan tekstin prosessointi sujui kutakuinkin seuraavasti: - kirjoittaja kirjoitti käsikirjoituksen (esim. 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 - Lopuksi tuotos julkaistiin käyttäen erilaisia markkinointi- ja jakelukanavia 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) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 10

Esipuhe What You See Is What Yout Get (-live with it!) Nykyiset tekstinkäsittely- ja julkaisuohjelmat ([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 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ä, kirjoittajan rooli on epäselvä Ratkaisuja: hyvä suunnittelu(!), etsi/korvaa-toiminnot, tyylit, mallit, 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 11

Esipuhe Dinosaurus, joka elää & voi hyvin: LaTeX Kaikki eivät kuitenkaan kirjoita tuotoksiaan MS Office Wordillä - erityisesti korkeakoulumaailmassa huomattava osa akateemisista kirjoittajista vannoo LaTeXin nimeen (joskus jopa fanaattisuuteen asti ) TeX 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 LaTeX 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. käsikirjoitustiedostot) tekstinkäsittelyohjelmalla (esim. emacs).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) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 12

Esipuhe LaTeX-esimerkki 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ä tiedoston rakenne 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 13

Jos kaikki tarvittava on työkoneella valmiiksi asennettuna, kääntäminen Unixissa tai Linuxissa sujuu helposti komennolla latex koe.tex Esipuhe 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. 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 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 14

LaTeX pyrkii tekemään teksteistä paitsi hyvän näköisiä, ennen kaikkea luettavia (hyvä sisäänrakennettu typografinen malli & johdonmukainen rakenne) Esipuhe LaTeXista on olemassa eri versioita. Nykyinen versio on LaTeX2e - LaTeX3 on jo kehitteillä (ks. LaTeX Project Home Page, http://www.latex-project.org/ ) 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. - Pitkänpuoleinen johdanto LaTeX2e:n käyttöön (ks. esim. http://www.tug.org/tex-archive/info/lshort/finnish/lyhyt2e.pdf ). Tämän jälkeen helpon pääsyn lisämateriaaliin, oppaisiin ja ohjelmistoihin tarjoaa esim. - Jukka Korpelan TeX-sivusto (ks. http://www.cs.tut.fi/~jkorpela/softa/tex.html ) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 15

Esipuhe 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 muotoilumää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 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 16

Esipuhe XHTML-esimerkki Tyypillinen XHTML-tiedosto (versio 1.1) näyttää esim. 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ä tekstiisi (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: erikoismerkit, tagit, kommentit sekä tiedoston rakenne HTML:ään palataan yksityiskohtaisemmin ponnahduslautana XML:ään 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 17

Esipuhe Paluu juurille Rakenteisten dokumenttien perusajatuksena on kohdistaa dokumenttien suunnittelun huomio oikeisiin kohtiin: - dokumenttien rakenteen suunnittelu sisällön merkityksen näkökulmasta, ei ulkoasun - komponenttiajattelu (dokumenttien peruspalasia ovat elementit) - 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 saavuttanut laajaa suosiota 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 18

Esipuhe Kerran vielä pojat SGML:n idea on hyvä, mutta spesifikaatio on mammuttimainen (~500 sivua) W3C:n SGML Working Group: XML 1.0 vuonna 1998 (~30 sivua) - XML on SGML:n sovellusprofiili - Vaatii käytännössä tuekseen myös muita standardeja ja tietämystä! 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 täsmällistä - dokumenttien käyttö Internetissä on yksinkertaista XML-standardiperheen ydin on tällä hetkellä valmis ja XML:ää tukevien sovellusten kriittinen massa on ylitetty 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 19

Esipuhe Nimiä ja termejä 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 (nimiavaruudet) + XSL + 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 20

2 Johdatus rakenteisiin dokumentteihin Rakenteinen dokumentti = rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1) rakenne, 2) sisältö ja 3) ulkoasu (tai esitystapa) jotakin systemaattista ja yksikäsitteistä menetelmää käyttäen Perusidea: tekstinpätkän merkitys riippuu sen sijainnista dokumentissa (tai lähdetiedostossa) Erityyppisen tiedon erottaminen toisistaan perustuu merkkaus- ja syntaksikäytäntöihin ja sopimuksiin merkkauksen tulkinnoista - tiedostotasolla kaikki voidaan hyvin tehdä esimerkiksi ascii-merkkeinä! Kannattaa muistaa että rakenteisella dokumentilla ei aina ole ulkoasua: rakenteisia dokumentteja käytetään julkaisutoiminnan lisäksi esimerkiksi tiedon siirtämiseen ohjelmistojen välillä 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 21

Esimerkki Oheisessa kuvassa on eritelty dokumentin sisältö, koodaus, rakenne ja ulkoasu "MUIS- TIO" 1) RAKENTEEN VALINTA Kerron pomolle, että uusi tietokantamme on susi 0) ASIASISÄLLÖN MÄÄRITTÄMINEN 3) ULKOISEN ESITYSMUO- DON VALINTA 2) (ASIA)SISÄLLÖN KOODAUS PENA OY MEMO 1.1.2000 To: Pentti Pomo Fr: Timo Työmies Uusi tietokantamme on susi! TUL- KIN- TA Ilmeisestikin dokumenttien sisältö, rakenne ja ulkoasu voidaan eriyttää vain jos käytetyt välineet sen sallivat (abstraktit dokumentit tai tietokoneiden käyttö)! työvaiheiden (0-)1-2-3 erottaminen toisistaan on joskus hyvin vaikeaa! 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 22

Miksi dokumentin rakenne pitää erikseen merkitä? Jos vapaamuotoista informaatiota halutaan käsitellä automaattisesti tietokoneella, täytyy käsiteltävän datan rakenne ja merkitys erikseen kuvata, koska tietokone ei automaattisesti ymmärrä sen merkitystä - sama pätee tietenkin myös ihmisiin (joskin ihmiset osaavat tehdä luovia arvauksia) Jotta dataa osattaisiin käsitellä tietona, pitää datan merkitys esittää jollakin tavalla datan jakaminen erityyppisiin elementteihin, joiden sisältö ja keskinäinen suhde on hyvin määritelty ( rakenteistaminen) Rakenteistamisen perustehtävä on merkityksellisten tietoelementtien yksilöinti valitun sovellusalueen näkökulmasta Käytännössä dokumentit sisältävät kuitenkin yleensä myös muitakin loogisia osia kuin pelkkiä elementtejä (esim. XML-dokumentti sisältää myös deklaraatioita, kommentteja, merkkiviittauksia ja prosessointiohjeita) Rakenteistettu tieto sisältää siis myös metatietoa, jota voidaan käyttää hyväksi sekä dokumentteja kirjoittaessa (rakenteen oikeellisuuden varmistaminen) sekä luettaessa (elementtien tunnistaminen) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 23

Tietokoneen ei voida sanoa ymmärtävän esimerkiksi XML-dokumentin sisällön merkitystä, sillä dokumenttien validoiminen & jäsentäminen tapahtuu niiden rakennepuiden muodossa (elementtien sisältö on vain jotain tekstiä) Dokumentin rakenteen yksikäsitteinen esittäminen mahdollistaa (jopa yksittäisten) dokumenttien käyttämisen tietokantojen tapaan Yksikäsitteiset rakennemääritykset helpottavat myös dokumenttien jäsentämistä Viime kädessä se, mitä rakenteistamisella ajetaan takaa, pitää kertoa luonnollisella kielellä käytetyn merkintäkielen ulkopuolella. Yleensä tämä kerrotaan dokumentoimalla merkkauksessa käytetty skeema eli tietorakenne - syntaksin määrittely (rakenne ~ syntaksi) - merkityksen määrittely (elementtisanaston kuvaus ~semantiikka) - käytön määrittely (sovellusalue ja käyttöesimerkit ~ pragmatiikka) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 24

Miksi dokumentin ulkoasu halutaan erottaa sen rakenteesta? Kirjoittaja haluaa keskittyä olennaiseen (tai ainakin hänen pitäisi tehdä niin!) Ulkoasumääritykset eivät yleensä ole yksikäsitteisiä - pelkkään ulkoasulliseen koodaukseen pidättäytyminen joko hukkaa metatietoa tai asettaa kohtuuttoman suuria tarkkuusvaatimuksia ulkoasun suhteen (=epäkäytännöllistä) Aineiston automaattinen käsittely on huomattavasti helpompaa (tai yleensäkin mahdollista) kun tietorakenteet on kuvattu niiden merkityksen kautta Toisinaan myös yhdestä ja samasta lähdedokumentista halutaan tuottaa vähällä vaivalla erilaisia esitysversioita tai esiintymiä Ulkoasun erottaminen rakenteesta ei kuitenkaan aina ole helppoa tai edes tarkoituksenmukaista! 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 25

Yleiskäyttöiset rakennemäärittelyt Yleensä halutaan käsitellä useita tietyn rakenteen omaavia dokumentteja: tällöin päädytään samantyyppisten dokumenttien luokkaan Samantyyppisten dokumentin rakenteen määrittelemiseen käytetty menetelmä (esimerkiksi merkintäkieli) voidaan edelleen standardoida (esimerkiksi HTML), minkä seurauksena esimerkiksi dokumenttien hallinta, luettavuus, laitteistoriippumattomuus ja siirrettävyys paranevat (jos standardia noudatetaan!) Myös merkintäkielten määrittelyyn käytetty menetelmä voidaan standardoida, tällöin tuloksena on standardi kuvauskielten määrittämiseen (esimerkiksi SGML tai XML) Muiden kehittämien & laajemmin käyttöönotettujen standardien hyödyntämisen merkittävänä puolena voidaan pitää myös - saatavilla on valmiiksi mietittyjä rakennemäärittelyjä ja ohjelmia - eri valmistajien ohjelmistokomponenttien yhteiskäyttö helpottuu Uuden merkintäkielen kehittäminen on työlästä joten olemassa olevien ratkaisujen hyödyntäminen on erittäin suositeltavaa 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 26

Rakenteettomat dokumentit? Kannattaa huomata, että tietokoneiden näkökulmasta rakenteettomia dokumentteja ei ole olemassakaan - rakenteisuudessa on siis kyse lähinnä - kenen tai minkä näkökulmasta rakenteita merkataan & kuka merkkauksen ymmärtää - miten yksityiskohtaisesti ja miten rakenne esitetään Tietokoneen näkökulmasta rakenteisuus tarkoittaa käytännössä sitä, että tietoa lukeva järjestelmä osaa sijoittaa luetun tietoalkion oikeaan paikkaan omassa tietorakenteessaan (tai osaa sivuuttaa sen tarpeettomana) Huomaa: Kaikki kommunikointi edellyttää sovittuja tietorakenteita; perinteisten tietokoneohjelmien tapauksessa näiden rakenteiden on oltava yksikäsitteisiä Rakenteellisuus ei kuitenkaan ole vain staattisten dokumenttien ominaisuus; esimerkiksi yksinkertaiset sähköpostiviestit koodataan SMTP:n (Simple Mail Transfer Protocol) mukaisesti tarkkaa etikettiä (protokollaa) noudattaen (Jos SMTP muuten vain kiinnostaa, ks. http://www.imc.org/rfc821 ) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 27

Esimerkki: SMTP-keskustelusta Seuraavassa lähetetään postia SMTP-palvelun avulla: S: MAIL FROM:<Smith@Alpha.ARPA> R: 250 OK S: RCPT TO:<Jones@Beta.ARPA> R: 250 OK S: RCPT TO:<Green@Beta.ARPA> R: 550 No such user here S: RCPT TO:<Brown@Beta.ARPA> R: 250 OK S: DATA R: 354 Start mail input; end with <CRLF>.<CRLF> S: Blah blah blah... S:...etc. etc. etc. S: <CRLF>.<CRLF> R: 250 OK Huomioita: jotta hommassa olisi järkeä, vastaanottajan on tiedettävä mitä lähettäjältä on tulossa, SMTP ei koodaa varsinaisen asiasisällön rakennetta lainkaan (pelkkää ascii-tekstiä) eikä perus-smtp-viestissä voi olla merkkijonoa "<CRLF>.<CRLF>"! 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 28

Yleiskäyttöiset tyyli/ulkoasumäärittelyt Samalla tavoin kuin dokumenttien rakenteen määrittämiseen käytetty menetelmä voidaan standardoida, voidaan pyrkiä standardoimaan myös dokumenttien ulkoasun (esitystavan) kuvausmenetelmät Soveltajalla vaihtoehtoina ovat: - olemassaolevan standardien formatointi, taitto, tyyli, tms. -kielen hyödyntäminen (TeX, RTF, HTML, CSS, PDF, DSSSL, postscript,...) - kokonaan oman ulkoasu/formatointimäärityksen kehittäminen Hyödyt ja haitat ilmeisiä: - annettujen tyyli/formatointikielten opiskelu ja niiden puutteiden kanssa eläminen, mutta valmiit selaimet, tulostinajurit,??-komponentit,... - kokonaan oman & kaikenkattavan ulkoasumäärityksen kehittäminen, mutta aivan kaiken suunnitteleminen & toteuttaminen itse Kannattaa kuitenkin muistaa, että kaikki työ ei tähtää julkaisutoimintaan - dokumentteja voidaan käyttää myös datakorttien ja tietokantojen tapaan 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 29

Dokumenttijärjestelmistä Oheisessa kuvassa ovat esillä tyypillisen dokumenttijärjestelmän eri osat tai komponentit (kaikkia ei välttämättä aina tarvita, osa taas otetaan käyttöön vasta tarvittaessa, mahdollisesti esimerkiksi verkon kautta): DOKUMENTTI- STANDARDI DOKUMENTTI- PROSESSORI & (KOHDE-) SOVELLUS DOKUMENTTI- TIETOKANTA TYYPPI- MÄÄRITYS- TIETOKANTA OBJEKTI- TIETOKANTA DOKUMENTTI- EDITORI OBJEKTI- EDITORI 10010100 10010010 01001011 01101010 10101000 10111111 JÄSENNIN & VALIDAATTORI ULKOINEN KÄYTTÖ & ILMIASUT TYYLI- TIETOKANTA Käytännössä tarvitaan siis 1) sopimuksia, 2) ohjelmistoja, 3) teknisiä alustoja, 4) oheisstandardeja sekä 5) sovelluksia ja käyttötapoja 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 30

Dokumenteista Mikä sitten on dokumentti? Dokumentti on aistittavaksi ja ymmärrettäväksi tarkoitettu tietokokonaisuus, joka koostuu yhdestä tai useammista fyysisistä osista (esim. tiedostoista) ja voidaan sen loogisen rakenteen pohjalta jäsentää merkityksellisiksi osiksi (Lähde)dokumentti ([source document], esimerkiksi XML-dokumentti) = dokumentti, josta tuotetaan (voidaan tuottaa) useita erilaisia, periaatteessa samasisältöisiä dokumentteja tai dokumenttien osia (Kohde)dokumentti, dokumentin esitysversio, ulkoinen esitysmuoto tai ilmentymä ([presentation instance], esimerkiksi WWW-sivu tai paperille tulostettu artikkeli) = lähdedokumentista (mahdollisesti) jäsentämällä tuotettu esityskelpoiseksi versioksi Lähde- ja kohdedokumentti ovat asiayhteydestä riippuvia suhteellisia käsitteitä! Huomaa, että tietokoneiden myötä dokumentti voi olla siis staattinen (~pysyvä) tai dynaaminen (~pyyntöhetkellä ohjeen mukaisesti kasattu) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 31

Dokumentin looginen ja fyysinen rakenne Rakenteellisista dokumenteista erotetaan yleensä käsitteellisesti: Looginen rakenne datan ja metadatan jäsentäminen yksikäsitteisesti luettavaan muotoon merkkauksen ([markup]) avulla. Fyysinen rakenne dokumentin konkreettisesti muodostavat osat, ns. entiteetit (esimerkiksi tiedostot tms. objektit) Ulkoasun määrittely jätetään yleensä esitystapamäärityksen ja siten tavallaan prosessointijärjestelmän huoleksi (näin voi tietenkin tehdä VAIN jos esitystavan määritykseen käytettävä koodaus on riittävän vahvaa) Termien selvennyksiä: Kielioppimäärittely = kokoelma nimiä, symboleita ja sääntöjä, joka määrittelee ns. oikein muodostettujen dokumenttien laillisen rakenteen (vrt. kielen syntaksi tai kielioppi) Dokumentin tyyppimäärittely = valitun kieliopin puitteissa tehtävä määrittely, jolla tarkasteltavien dokumenttien looginen rakenne rajataan joksikin tietyksi (vrt. erisnimien ja lauserakenteiden valinta) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 32

Esimerkkejä dokumenteista Tarkoituksesta riippuen, informaatio on mahdollista jäsentää tai tulkita dokumenteiksi usein eri tavoin, oheisessa kuvassa on esitelty erilaisia dokumentteja <!ENTITY AB "Abe Lincoln"> TULKIN- TA <?xml version="1.0"?> <!DOCTYPE poem [ <!ENTITY % names "http://1.2.3.4/names.ent"> %names; ]> <poem> There is no use of cursing darkness <author>&nn;</author> </poem> PROSES- SOINTI "There is no " ASCII-KOODATTUJA TEKSTI- DOKUMENTTEJA XML- DOKUMENTTI ARTIKKELI, WWW-SIVU, CD-ROM JA NAUHOITE Huomaa, että dokumentti voi siis olla myös kertakäyttöinen (esim. selainten avulla katseltavat & ajohetkellä generoitavat dynaamiset dokumentit) Jokaiseen dokumenttiin liittyy aina jokin koodaus, sisältö, rakenne ja ulkoasu! 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 33

Dokumenttien käsittelyyn liittyviä termejä Dokumentin tyyppi = se rakenne- ja koodausmääritys, jonka mukaan dokumentti on kirjoitettu Dokumentin jäsentäminen = dokumentin rakenteen tunnistaminen ja lukeminen auki rakennepuun (tms.) muodossa (jäsentäminen on käänteinen toimenpide dokumenttien generoimiselle tuottosääntöjen avulla) Dokumentin prosessointi = dokumentin rakennedatan käsittely suhteessa annettuun merkitykseen tai ilmiasuun, lopputuloksena yleensä dokumentin esittäminen tai muu tulkinta (toimenpide sisältää yleensä jäsentämisen) Dokumentin validoiminen = dokumentin rakenteen ja tyypin tarkistaminen annettua rakenne- ja tyyppimäärittelyä X vastaavaksi Dokumenttiluokka = Tietyn tyyppimäärittelyn X toteuttavien dokumenttien joukko Yksi ja sama tiedosto voi kuulua yhteen tai useampaan (sisäkkäiseen) dokumenttiluokkaan (mikäli käytetty koodauskäytäntö sen sallii) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 34

Lisää dokumenttien käsittelyyn liittyviä termejä (Dokumentti)prosessori = (yleiskäyttöinen) sovellus, joka osaa jäsentää annetun kieliopin mukaisia dokumentteja sekä sovitun rajapinnan puitteissa välittää niitä auki luettuina dokumentteja varsinaisesti käsittelevälle sovellukselle Tyylimääritys = ohje kuinka kuvata dokumenttirakenteita (visuaalisesti) toisina dokumenttirakenteina Lopuksi on hyvä mainita vielä että: Dokumentti-käsitteen abstraktius riippuu asiayhteydestä ja tarkoituksesta (vrt. tekstidokumentti, XML-dokumentti, Word-dokumentti, paperiasiakirja, WWWhakukoneen tuottama sivu, kivikirjoitus, veistos, ääninauha) Kuten sanalla "dokumentti", myös sanalla "esiintymä" on useita eri merkityksiä - esiintymällä saatetaan eri asiayhteyksissä tarkoittaa esimerkiksi "kohdedokumenttia", "tietyntyyppistä dokumenttia" tai vaikkapa täsmällisenä teknisenä terminä XML-dokumentin esittelyosaa seuraavaa kokonaisuutta (=merkinnällinen osa tekstimuotoista XML-dokumenttia) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 35

Muita yleisesti käytettyjä perustermejä Koodaus = tiedon tai informaation esittäminen valitun merkkijärjestelmän ja sovitun koodauskäytännön puitteissa Formaali kieli = Sopimus, joka luettelee kielen sanat kielelle valitussa merkistössä (lauseet ovat formaalin kielen sanoja, joille on sovittu jokin erikoismerkitys) Syntaksi = kielioppi, joka kertoo millaisia kielen oikein muodostetut sanat ja lauseet ovat (rakenteellisia dokumentteja määritellään yleensä generatiivisten kielioppien avulla; tällöin dokumentteja vastaavat ns. jäsennyspuut) Semantiikka = (kielen) merkitys tai tulkinta, joka kuvaa osan kielen sanoista ja lauseista metakielelle, jossa merkityksen arvioiminen tapahtuu Syntaksi ja semantiikka voivat olla joko täsmällisiä (formaaliset kielet, tietokonekielet, matemaattinen logiikka) tai epätäsmällisiä (luonnolliset kielet) Hierarkkinen rakenne = puu, jolla on yksikäsitteinen juuripiste (esim. XMLdokumenteilla tätä juurta kutsutaan ns. dokumenttientiteetiksi) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 36

Tuttu esimerkki rakenteisesta dokumentista <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html> <head> <title>moi maailma!</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/> </head> <body> <!-- Dokumentin runko alkaa --> <h1>otsikko</h1> <p>tekstiä ja <b>vahvennettua</b> tekstiä</p> </body> </html> Huomaa: koodauksen valinta (esim. 7-bittinen ascii-merkistö), kuvauskielen ilmoittaminen, elementtien merkitseminen tagien avulla, koodien nimien merkitys, entiteetit, kommentointi,... HTML-dokumentin esittäminen on "selaimen asia" (ellei toisin määrätä) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 37

Dokumentin rakenteen esittämisen keinoja Kaksi esimerkkiä: Hierarkkiset elementtirakenteet = sisäkkäisiä elementtimäärityksiä, joiden parsiminen tuottaa elementtien puurakenteen (ns. [properly nesting elements]) Formatointirakenteet = "päällekkäisiä rakennemääritelmiä", jotka eivät (välttämättä) määritä selvärajaisia elementtejä Vrt. esim. <b>fat</b> <i>and</i> <i><b>lean</b></i> <b>fat</b> <i>and <b>lean</i></b> (Jälkimmäinen rivi ei ole HTML-määrityksen mukainen!) Tietorakenteiden näkökulmasta formatointirakenteet vastaavat usein virtoja Rakenteisissa dokumenteissa käytetään hierarkkisia elementtirakenteita, jotta elementtirakenteen olisivat selvärajaisia (modulaarisia ja siten esim. kieliopin näkökulmasta yhteydettömiä); näin dokumenttien rakenne-, tyyppimäärittely sekä jäsentäminen ovat suoraviivaisia operaatioita 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 38

Rakenteiden merkitsemistapoja & termejä Proseduaalinen tai spesifi merkkaus tarkat ohjeet elementtien käsittelemiseksi dokumentin osana tyyliin "tämä elementti tekee sitä tai tätä tai näyttää siltä tai tältä" (tyypillinen juuri formatoinnissa) Vrt. HTML-esim. <i><font face="arial" size="12"> Think twice before walking on ice</font></i> Deklaratiivinen tai kuvaileva merkkaus abstrakti kuvaus elementin roolista tai merkityksestä dokumentissa tyyliin "tämä elementti on X" (tätä ideaa käyttävät juuri SGML, XML sekä HTML) Vrt. HTML-esim. <blockquote>think twice before walking on ice</blockquote> Yleiskäyttöinen merkkaus vs. sovelluskohtainen merkkaus tukevatko useat sovellukset tai onko jopa standardoitu? 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 39

Kontekstivapaa merkkaus naapurielementit eivät vaikuta Vrt. HTML-esim. <b>fat</b> <i>and</i> <i><b>lean</b></i> 2 Johdatus rakenteisiin dokumentteihin Kontekstuaalinen merkkaus elementeillä on jokin tietty rakenteesta riippuva konteksti Vrt. HTML-esim. <ul> <li>yksi</li> <li>kaksi</li> <li>kolme</li> </ul> SGML ja XML merkkaustavat ovat deklaratiivisia, kontekstuaalisia ja yleiskäyttöisiä HTML - erityisesti vanhemmat versiot - on tavallaan yhdistelmä kaikkia ym. merkitsemistapoja (sisältäen joskus virheellisiäkin formatointirakenteita, sillä vaikka HTML-dokumentin määritelmän mukaan pitää olla oikein muodostettu, dokumentteja ei yleensä validoida, joten virheistä ei jää kiinni) 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 40

Huomautuksia tiedä mitä olet tekemässä! Rakenteisten dokumenttien soveltaminen (esimerkiksi oman merkkauskielen kehittäminen XML:llä) edellyttää - aitoa tarvetta asiasisällön rakenteistamiselle (=motivaatio) - tietoa siitä, mitä välineitä & standardeja halutaan käyttää tai saada käyttöön (esim. kirjanpaino- tai WWW-tekniikan perusteet, tyylien käyttö ja työssä tarvittavat ohjelmat) - yleisessä tapauksessa tarvitaan konkreettista ohjelmointitaitoa; esim. XML-dokumentilla sinänsä ei vielä tee paljoa -- homman hyöty realisoituu vasta sovelluksissa Erilaisten tyylikielten käyttö on vähintään yhtä vaikeita asioita kuin XMLstandardiperheen teknisten asioiden kanssa painiskelukin! Jos haluaa ruveta harrastamaan polkupyöräilyä, muttei ryhtyä polkupyörämekaanikoksi, kannattaa mieluimmin ostaa valmis pyörä ja säätää sen satula ja tanko oikealle korkeudelle (eikä ryhtyä etsimään malmia oman polkupyörän rungon valamista varten) -- vrt. XML 1.0 ja XSL:n sekä HTML/DocBooksovellusten välinen suhde 73275 RAKENTEISET DOKUMENTIT (kevät 2004) luentorunko ON 41