13 Tiedostot, dokumentit, tieto (&h-media) Tietokoneet käsittelevät tietoa tiedostojen muodossa Tietokoneiden yhteydessä dokumentilla tarkoitetaan tiedosto(je)n avulla esitettävää asiakokonaisuutta, joka jäsennetään kokonaisuudeksi joko käyttäjän tai tietoa käsittelevän ohjelmiston näkökulmasta Jokaiseen dokumenttiin liittyy - sisältö, rakenne ja esitystapa (enemmän tai väh. toisiinsa sekoittuneina) Tietokoneiden tapauksessa nämä voidaan teknisesti erottaa (ainakin osittain) toisistaan, esim. seuraavasti 1) dokumentin sisältö kirjoitetaan suomen kielellä ja esitetään tekstimuotoisena 2) dokumentin looginen rakenne (otsikot, kappaleet, lainaukset, ) merkataan HTMLelementeiksi HTML-merkkauksen avulla 3) dokumentin ulkoasu (esitystapa) valitaan määrittelemällä em. elementeille ulkoasu esim. CSS-sääntöjen muodossa, WYSIWYG-tyyliin formatointiohjeina tai jätetään kokonaan dokumenttia esittävän ohjelman huoleksi 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 294
Esimerkki: HTML-dokumentti Seuraava dokumentti koostuu kolmesta tiedostosta esim.html (sisältö & rakenne), kuva.gif (dokumenttiin upotettu kuva) ja esim.css (ulkoasun määrittely): tiedosto esim.css body { background-color: white; } h1 { color: black; font-size: 20px; font-weight: bold; } p { color: blue; font-size: 12px; } tiedosto esim.html: <html> <head> <title>moi maailma</title> <link rel="stylesheet" type="text/css" href="esim.css"> </head> <body> <h1>esimerkki</h1> <p> <img src="kuva.gif"> Dokumenttien kirjoittaminen on oikeastaan aika helppoa.</p> </body> </html> 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 295
Dokumentit, tiedon mallintaminen ja esittäminen Karkeasti sanottuna: dokumentti on väline tiedon esittämiselle. Dokumentti (käsitteellinen kokonaisuus) voi teknisesti tosin olla esitettynä useassa tiedostossa, tietokannassa tai jopa tietokoneohjelman sisällä tulostusohjeina Tieto-käsitteen hankaluuteen ei tässä yhteydessä ole syytä syvällisemmin puuttua - tiedon akseli: tietämys - tieto - informaatio - data - kohina - klassinen näkemys ~ "tieto on perusteltu tosi uskomus" (tämä näkemys on yleisesti liian rajoittava [mitkä asiat oikeasti ovat tosia?]) - käytännöllinen näkemys ~ tieto on tavalla tai toisella merkityksellistä informaatiota (tässä taas ei oteta kantaa totuuteen, vaan yhteys käyttöön) Tiedon esittäminen perustuu johonkin tiedon esitysmuotoon ja on siten sidoksissa tietyn kuvausmenetelmän käyttöön Tiedon kuvausmenetelmiä on olemassa lukuisia erilaisia ja eritasoisia, esim. - käsitekartat, semanttiset verkot, predikaattilogiikka, formaalit teoriat, ER-diagrammit, UML-kaaviot, HTML, XML, CSS, XSL, MathML, SMIL, SVG, RDF 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 296
Kuvausmenetelmä valitaan sen perusteella, mistä tiedon piirteistä ollaan kiinnostuneita ja mitä tiedolla halutaan tehdä Erilaisten kuvausmenetelmien välillä voidaan löytää seuraavat ääripäät: - tiedon kuvaaminen tai jäsentäminen asiasisällön itsensä näkökulmasta ~ tiedon käsitteellinen rakenne ([content]) - tiedon kuvaaminen tai merkkaaminen asiasisällön esittämisen näkökulmasta ~ tiedon esitysrakenne ([presentation]) Esimerkki: kakkureseptin rakenteen kuvailu - taso 1: käsiterakenteen termeihin ja relaatioihin liittyvien sopimusten esittäminen - taso 2: tiedon tiedostoksi koodaamiseen (elementtien rakenne ja sisältö) liittyvien sopimusten esittäminen - tämän lisäksi sama asia voidaan vielä kertoa välillisesti jonkin yleisen tekstin esitysrakenteen puitteissa (esim. muunnoksen tuloksena) Sisällön ymmärtävän lukijan näkökulmasta em. kolme tapaa voivat hyvinkin välittää saman tiedon, mutta esim. tietokoneiden näkökulmasta tiedon eri esitysrakenteet ovat hyvinkin erilaisia 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 297
Esimerkki kakkureseptin erityyppisistä esitysmuodoista idea tiedon jäsentäminen Kakkuresepti? kakkuresepti on resepti osa ainekset TIETO IHMISEN MIELESSÄ osa valmistusohje tiedon mallintaminen tiedon esittäminen tai tiedosta kertominen resepti ainesosa työvaihe #PCDATA #PCDATA resepti otsikko luku #PCDATA kplotsikko #PCDATA kpl #PCDATA TIETO TIETOKONEESSA luettavissa oleva dokumentti 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 298
Esimerkki: matemaattisen kaavan x + a / b kuvailu MathML-merkkauskielellä: tapa 1: käsitteellinen merkkaus ([content]): <apply><plus/> <ci>x</ci> <apply><times/> <ci>a</ci> <apply> <power/><ci>b</ci><cn>-1</cn> </apply> </apply> </apply> tapa 2: esittämiseen liittyvä merkkaus ([presentation]): <mrow> <mi>x</mi> <mo>+</mo> <mrow> <mi>a</mi> <mo>/</mo> <mi>b</mi> </mrow> </mrow> 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 299
Tieto ja metatieto Tieto-käsitteeseen liittyy läheisesti metatiedon käsite. Metatiedolla tarkoitetaan tietoa tiedosta Tieto ja metatieto ovat suhteellisia, informaation käytöstä riippuvia käsitteitä Tietojenkäsittelyssä metatiedolla tarkoitetaan annetun tieto-objektin tietyn kiinteän mallin mukaista kuvausta (vrt. luettelokortti) kirja lomake luettelokortti Metatietoa on kärjistetysti kahdenlaista: tiedon semanttiseen kuvailuun & luokitteluun liittyvää metatietoa (esim. tämä on muistio ) ja tiedon esitysrakenteeseen liittyvää rakenteellista metatietoa (dokumentin rakenneosia ovat "otsikko, leipäteksti ja kuva") 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 300
Esimerkki metatiedosta: RDF ja Semanttinen Web RDF (Resource Description Framework) on W3C:n Semanttisen Webin perusta Semanttisen Webin tavoitteena on tiedon esittäminen yhteensopivasti siten, että se on ihmisten lisäksi myös tietokoneiden käsiteltävissä RDF:n ideana on kuvailla tietoa ns. lausumien avulla: lausumat koostuvat resurssista, resurssille määriteltävästä ominaisuudesta ja ominaisuudelle annettavasta arvosta http://matrii TIETO: tekijä MALLINNUS: http://matriisi.ee.tut.fi/hmopetus/hypmed04/index.html http://purl.org/dc/elements/1.1/creator KOODAUS: hypmed04:index.html dc:creator tut:jukkah. http://www.tut.fi/person/jukkah RDF-lausumista muodostuu graafi, jonka perusteella voidaan tehdä esimerkiksi hakuja ja ohjelmallista päättelyä (infer) 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 301
Dokumentteihin sisältyy useantyyppistä tietoa Dokumentteihin liittyy oikeastaan siis aina useita eritasoisia ja -tyyppisiä koodauksia, esim. - sisällön koodaus (suomen kielen sanojen kirjoittaminen ASCII-merkkeinä, kuvien esittäminen bittikarttoina tai vektorigrafiikkana) - rakenteen koodaus (elementtien alku- ja lopputagit HTML:n mukaisesti) - ulkoasun koodaus (esim. elementtien ulkoasun määrittäminen CSSformatointiominaisuuksien mukaisesti) - toiminnallisuuden koodaus (esim. linkin seuraaminen, skriptit, ) joihin puolestaan saattaa sisältyä omia koodauksia, rakenteita & yms. sopimuksia, joista ei dokumentin yhteydessä välttämättä erikseen mainita (esim. suomen kielen kielioppi & dokumenttiin sisältyvien objektien koodaus, HTML-kielioppi, kuvien pakkaus, skriptien syntaksi, jne.) Tietokoneiden myötä dokumentteihin voi siis liittyä myös toiminnallisuutta (esim. linkin seuraaminen, animaatiot & dokumenttiin upotettavat ohjelmat) 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 302
Tiedon kuvaaminen tekstimuodossa (tietokoneet) Erityyppiset tiedon esitystavat voidaan yleensä palauttaa tekstimuotoon Esimerkki: kakkureseptin käsitteellisen rakenteen palauttaminen logiikkaan part-of( ainesosa, resepti) part-of( valmistusohje, resepti) is-a( kakkuresepti, resepti) Esimerkki: reseptin tiedon esitysrakenteen palauttaminen XML-säännöiksi: <!ELEMENT resepti (ainesosa+, työvaihe+)> <!ATTLIST resepti nimi CDATA #IMPLIED> <!ELEMENT aineosa (#PCDATA)> <!ELEMENT työvaihe (#PCDATA)> Sääntöjä noudattava dokumentti voisi olla esim. seuraavanlainen <resepti nimi="suklaakakku"> <aineosa>jauhoja 3 desiä</aineosa> <aineosa>loput aineet</aineosa> <työvaihe>sekoita osat keskenään</työvaihe> <työvaihe>paista uunissa 200 asteen lämmössä</työvaihe> </resepti> 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 303
Käytännön suunnittelussa eri näkökulmien tulisi tukea toisiaan è è è 13 Tiedostot, dokumentit, tieto (&h-media) - aluksi tietoa analysoidaan & jäsennetään, jotta tiedettäisiin mistä on kyse - tämän jälkeen tieto mallinnetaan käytännöllisten tietorakenteiden muodossa, jotta tiedettäisiin mitä tietoa sovelluksessa esitetään ja miten? - lopuksi näistä tietorakenteista voidaan sitten rakentaa erilaisia esityksiä (minkälainen hyperdokumentti asiasta kertomiseen tai asian näyttämiseen tarvitaan?) Eli aluksi mietitään mitä halutaan esittää, sitten suunnitellaan minkälaisten tietorakenteiden varaan tieto rakentuu ja lopuksi valitaan missä muodossa asiat (lukijalle) esitetään Huom!: jos tiedon X esitysrakenne valitaan sen perusteella, miten asiasisältö esitettäisiin esim. HTML-sivuna, esitysvaiheessa hukataan (abstraktia) tietoa: - kirjoittaja saattaa (ainakin kirjoitusvaiheessa) ymmärtää tai muistaa mistä oli kyse, mutta myöhemmin dokumenttia lukiessa idea on rivien välissä; konkreettisena pulmana tiedon koneellisen käsittelyn hankaloituminen - ratkaisu: tiedon esittämiseen käytetään riittävän rikkaita kuvausmenetelmiä (esim. XML-pohjaisia sanastoja, joista tieto muunnetaan HTML-muotoon tarvittaessa) 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 304
Automaattisen tietojenkäsittelyn idea Koska tietokoneet eivät ymmärrä koodatun datan merkitystä, pitää tiedon esitystapa valita käytössä olevien käsittelymenetelmien ehdoilla Keskeinen idea on ATK:n tuominen osaksi informaation käsittelyprosessia pelkän informaation tallettamisen sijaan ohjelmallinen käsittely siirrettävyys keskitetty ylläpito sovellukset ja käyttö informaatio, tieto ja näkemykset esittäminen tiedon sähköinen esitystapa salaus varmennettavuus pakkaus Tavoite: tietokone = (10 3 euroa maksava) muistilehtiö & lipasto tietokone = tiedon hallintajärjestelmä Keskeinen virhe on luulla, että tieto on (yleisesti) käyttökelpoisessa muodossa kunhan se vain jotenkin saadaan tietokoneelle koodattua (tavoitteet?!) 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 305
Tiedon esitysrakenteista: hierarkkiset rakenteet Tiedon intuitiivisista esitysrakenteista tärkeimpiä ovat kurssilla jo aikaisemmin esitellyiksi tulleet graafit ja puut Juurelliset puut ovat havainnollisuutensa ansiosta erityisen käyttökelpoisia pienten hierarkkisten dokumenttirakenteiden esittämisessä (esim. HTML) Esimerkki: Yksinkertaisen HTML-dokumentin eri osat voidaan kätevästi jäsentää dokumentin rakennepuun (eli jäsennyspuun) avulla seuraavasti: html head body title Esimerkki class="example" h1 Johdanto p Tämä on tyypillinen HTML-dokumentti 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 306
Sama dokumentti näyttää HTML-koodattuna esim. seuraavalta: <html> <head> <title>esimerkki</title> </head> <body class="example"> <h1>johdanto</h1> <p>tämä on tyypillinen HTML-dokumentti.</p> </body> </html> è è è 13 Tiedostot, dokumentit, tieto (&h-media) Paitsi analysoida ja jäsentää annettuja dokumentteja, merkattujen puurakenteiden avulla voidaan intuitiivisesti myös määritellä dokumenttiluokkia Esimerkki: Seuraava ELM-puudiagrammi määrittelee yksinkertaisen dokumenttiluokan geneerisen elementtirakenteen (XML DTD yhteensopivasti) resepti ainesosa + * työvaihe #PCDATA #PCDATA 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 307
Vastaava (vaikeampilukuinen?) XML dokumentin tyyppimääritys olisi muotoa <!ELEMENT resepti (ainesosa+, työvaihe*)> <!ELEMENT ainesosa (#PCDATA)> <!ELEMENT työvaihe (#PCDATA)> On syytä huomata, että sama asiasisältö voidaan esittää useita erilaisia dokumenttirakenteita käyttämällä Esimerkki: Kotisivuilta löytyvä asia voidaan kertoa HTML-dokumenttina siten, että käytetään monipuolisesti eri HTML-elementtejä (esim. h1, h2, p & address) tai siten, että sama asia kuvataan sanallisesti yhden ainoan p-elementin sisällä Dokumentin rakenteisuuden mitta on dokumenttiin koodattujen rakenne-elementtien runsaus eli granulariteetti - suuri granulariteetti eli pienet rakeet ~ rikas rakenne - pieni granulariteetti eli suuret rakeet ~ yksinkertainen (köyhä) rakenne Jos dokumentin rakenne on valittu systemaattisesti, sisällön merkitystä kuvaillen, parantuvat mahdollisuudet tiedonkäsittelyn automatisointiin tiedon arvo kasvaa (suurta tietomäärää voidaan hallita pienellä käsityön määrällä) 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 308
Hierarkiat ja virrat Kaikki tiedon luontevat esitysmuodot eivät aina ole luonteeltaan hierarkkisia (joskin kaikki tieto voidaan ilmeisesti kuvata myös hierarkkisina rakenteina) Virta on jono tietoalkioita (merkkejä) ja kontrollialkioita (kontrollimerkkejä, ohjausmerkkejä tai tapahtumia) Virrassa tieto esitetään siis pötkössä, jonka seassa on ohjaustietoa Esimerkki: Tyypillisiä virtoja ovat esim. ääninäytteet ja videoleikkeet Virtojen kontrollimerkkejä ei siis tulkita elementtien lohko tms. -merkeiksi, koska koko elementin käsitettä ei (välttämättä) ole Esimerkki: Myös ohjelmointikielestä C tuttu merkkijonojen käsittely tapahtuu virtojen muodossa printf("tulosta minut\r\nkahdelle riville!"); Tietoa käsitellään virtojen muodossa lähinnä silloin kun - rakenne ei kiinnosta, ts. tiedolla ei (sovelluksen näkökulmasta) ole tarpeellista rakennetta 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 309
- tietoa saadaan haltuun vähän kerrallaan, mutta se on käsiteltävä heti - tiedon rakenteen merkitseminen on kohtuuttoman hankalaa Kun hierarkkiset ja virtamaiset tietorakenteet yhdistetään, puhutaan ns. komposiittirakenteista - hierarkkiset rakenteet virran vietävänä ja päinvastoin Käytännössä useat dokumenttirakenteet ovat itse asiassa komposiittirakenteita, vaikka niistä puhutaankin hierarkkisina - rakenteisissa dokumenteissa toimitaan tyypillisesti siten, että dokumentin elementtien perusrakenne on puumainen (hierarkkinen) ja lehtielementtien sisältötekstin rakenne on tulkinnaltaan virtamainen (esim. HTML-standardissa elementin BR käyttö) - vrt. HTML-kielen lohko- ja tekstityyliset elementit 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 310
Dokumenttirakenteiden määrittely (Rakenteisten) dokumenttien ja tietorakenteiden käytön yhteydessä (hypermediaan liittyviä) keskeisiä kysymyksiä ovat: - miten tietorakenne se-ja-se on määritelty? Ts., millaisia kaikki sovelluksen oikeantyyppiset tietorakenteen ovat? - kuinka dokumentista voidaan valita ankkurin kohteita dokumentin rakenneelementtien nimiä tai (yksityiskohtaisia rakenteitakaan) tuntematta? Rakenteisten dokumenttien, esim. HTML-merkkauksella merkityn tekstitiedoston tapauksessa vastaava kysymys on: miten todella tiedämme, että esim. dokumentti <title>esimerkki</title> <h1>kappaleotsikko</h1> <p>tämä kappale on oikein muodostettu</p> on oikein muodostettu, mutta seuraava dokumentti ei ole? <title>esimerkki</title> <h1>kappaleotsikko<p></h1> Tämä kappale on oikein muodostettu</p> 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 311
Vastaus piilee tavassa, jolla tietorakenne (dokumenttirakenne) määritellään; määrittelyn on oltava luonteeltaan sellainen, että se tarjoaa täsmällisen kuvauksen (tai mallin) kaikista sallituista tietorakenteista Edellä eräs tällainen kuvaustapa on edellä esitetty ELM-puudiagrammi, joka täsmällisesti luonnehti kaikkia resepti-tyyppisiä rakenteisia dokumentteja: DOKUMENTIN TYYPPIMÄÄRITTELY DOKUMENTTILUOKAN KÄSITE resepti + * ainesosa työvaihe #PCDATA #PCDATA Tietokoneet eivät kuitenkaan operoi kuvilla, vaan merkkijonoilla (eikä em. puudiagrammien avulla ole mahdollista määritellä kaikkia tietorakenteita) Yleisessä tapauksessa, kun halutaan täsmällisesti luonnehtia tai poimia tietorakenteita viittausten avulla, tietorakenteet assosioidaan merkkijonoiksi joiden rakenteen käsittely tietokoneilla on tehokasta (ja johon löytyy valmiiksi määritelmiä ja tuloksia) Tällöin viime kädessä päädytään (formaalien) kielten käsitteisiin; idea on, että määriteltävän tietorakenteen malli vastaa kielen määrittelyä ja mallin mukaiset tietorakenteet vastaavat kielen yksittäisiä sanoja. 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 312
Formaaleista kielistä Pyrittäessä kieliopillisesti yksikäsitteisiin kieliin päädytään ns. formaalisten kielten käsitteisiin; tavoitteena on tällöin lähinnä (kohdekieleen liittyvän) kielenkäytön ja päättelyn täsmentäminen Koska kielet ovat sanojen joukkoja, käytetään kielille tuttuja joukko-opin merkintöjä ja operaatioita (sisältyminen, yhdiste, leikkaus, komplementti jne.) Kieliin liittyviä peruskäsitteitä: aakkosto (merkistö), sana, tyhjä sana λ, kielioppi Äärellisen kielen ilmoittaminen onnistuu aina periaatteessa kielen sanat luettelemalla - äärettömille kielille tämä ei ilmeisestikään onnistu Esimerkki: eräs kieli aakkostossa Σ={a,b,c} on joukko L={a, ab, aaab, bab, ba} Äärettömän formaalin kielen L ilmoittaminen voidaan tehdä usein eri tavoin (oleellisesti ominaisuusmääreiden tai tuottolausekkeiden avulla): - esim. säännöllisen lausekkeen avulla (jos L säännöllinen) - yleisessä tapauksessa kielen ilmoittaminen on usein tarkoituksenmukaista tehdä kielen sanat tuottavan kieliopin avulla 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 313