13 Tiedostot, dokumentit, tieto (&h-media) Esimerkki: HTML-dokumentti 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 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) 294 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 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: kakkun 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) 296 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 297
Esimerkki kakkun erityyppisistä esitysmuodoista idea tiedon jäsentäminen kakku Kakku? osa on ainekset TIETO IHMISEN MIELESSÄ osa valmistusohje tiedon mallintaminen tiedon esittäminen tai tiedosta kertominen otsikko ainesosa luku kplotsikko työvaihe kpl TIETO TIETOKONEESSA luettavissa oleva dokumentti 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> 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) 298 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") 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: KOODAUS: tekijä MALLINNUS: hypmed04:index.html dc:creator tut:jukkah. http://matriisi.ee.tut.fi/hmopetus/hypmed04/index.html http://purl.org/dc/elements/1.1/creator 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) 300 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: kakkun käsitteellisen rakenteen palauttaminen logiikkaan part-of( ainesosa, ) part-of( valmistusohje, ) is-a( kakku, ) Esimerkki: n tiedon esitysrakenteen palauttaminen XML-säännöiksi: <!ELEMENT (ainesosa+, työvaihe+)> <!ATTLIST nimi CDATA #IMPLIED> <!ELEMENT aineosa ()> <!ELEMENT työvaihe ()> Sääntöjä noudattava dokumentti voisi olla esim. seuraavanlainen < 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> </> 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 303 Käytännön suunnittelussa eri näkökulmien tulisi tukea toisiaan - 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 informaatio, tieto ja näkemykset ohjelmallinen käsittely esittäminen siirrettävyys tiedon sähköinen esitystapa keskitetty ylläpito salaus pakkaus varmennettavuus sovellukset ja käyttö 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: head title Esimerkki html class="example" 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 306 body h1 Johdanto p Tämä on tyypillinen HTML-dokumentti Sama dokumentti näyttää HTML-koodattuna esim. seuraavalta: <html> <head> </head> <body class="example"> <h1>johdanto</h1> <p>tämä on tyypillinen HTML-dokumentti.</p> </body> </html> 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) + * ainesosa työvaihe 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 307 Vastaava (vaikeampilukuinen?) XML dokumentin tyyppimääritys olisi muotoa <!ELEMENT (ainesosa+, työvaihe*)> <!ELEMENT ainesosa ()> <!ELEMENT työvaihe ()> 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 Dokumenttirakenteiden määrittely 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 (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 <h1>kappaleotsikko</h1> <p>tämä kappale on oikein muodostettu</p> on oikein muodostettu, mutta seuraava dokumentti ei ole? <h1>kappaleotsikko<p></h1> Tämä kappale on oikein muodostettu</p> 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 310 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 -tyyppisiä rakenteisia dokumentteja: DOKUMENTIN TYYPPIMÄÄRITTELY DOKUMENTTILUOKAN KÄSITE ainesosa 7307000 HYPERMEDIAN PERUSTEET (syksy 2004) 312 + * työvaihe 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. 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