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



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

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

käyttäjän tai tietoa käsittelevät ohjelmiston näkökulmasta Jokaiseen dokumenttiin liittyy

Johdatus rakenteisiin dokumentteihin

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

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

Luento 12: XML ja metatieto

3 Verkkosaavutettavuuden tekniset perusteet

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

ARVO - verkkomateriaalien arviointiin

Paikkatiedot ja Web-standardit

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

Code Camp for Girls. Sanna Nygård. Lokakuussa

Todistus: Aiemmin esitetyn mukaan jos A ja A ovat rekursiivisesti lueteltavia, niin A on rekursiivinen.

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

XML johdanto, uusimmat standardit ja kehitys

8. Kieliopit ja kielet

W3C-teknologiat ja yhteensopivuus

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

811120P Diskreetit rakenteet

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

Hahmon etsiminen syotteesta (johdatteleva esimerkki)

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Digitaalisen median tekniikat. JSP ja XML

Rakenteisten dokumenttien jatkokurssi, syksy 2006

The OWL-S are not what they seem

Metatiedot organisaatioiden sisällönhallinnassa

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

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

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Verkkosivut perinteisesti. Tanja Välisalo

Säännöllisten kielten sulkeumaominaisuudet

TIEDEJUTTUKURSSI FM VILLE SALMINEN

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

Rekursiiviset palautukset [HMU 9.3.1]

Ohjelmistojen mallintaminen, mallintaminen ja UML

Rekursiolause. Laskennan teorian opintopiiri. Sebastian Björkqvist. 23. helmikuuta Tiivistelmä

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

Matematiikan tukikurssi

4. Lausekielinen ohjelmointi 4.1

2 Rakenteisten dokumenttien perusteet

Mikä on semanttinen web?

Kertausta 1. kurssikokeeseen

Ajatus kaiken taustalla

ARVO - verkkomateriaalien arviointiin

Automaattinen semanttinen annotointi

Tentti erilaiset kysymystyypit

Säännölliset kielet. Sisällys. Säännölliset kielet. Säännölliset operaattorit. Säännölliset kielet

Yhteentoimivuusalusta: Miten saadaan ihmiset ja koneet ymmärtämään toisiaan paremmin?

8. Kieliopit ja kielet 1 / 22

P e d a c o d e ohjelmointikoulutus verkossa

Automaatit. Muodolliset kielet

Vasen johto S AB ab ab esittää jäsennyspuun kasvattamista vasemmalta alkaen:

M. Merikanto 2012 XML. Merkkauskieli, osa 2

W3C ja alueellinen standardointi

RDF ja RDFS. 8 RDF ja RDFS

Ctl160 Tekstikorpusten tietojenkäsittely p.1/15

815338A Ohjelmointikielten periaatteet Harjoitus 2 vastaukset

Sisällönhallinnan menetelmiä

W3C ja Web-teknologiat

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

uv n, v 1, ja uv i w A kaikilla

Kotisivuohjeet. Eteläpohjalaiset Kylät ry. Sivupohjien rakenne

Vaihtoehtoinen tapa määritellä funktioita f : N R on

Rekursio. Funktio f : N R määritellään yleensä antamalla lauseke funktion arvolle f (n). Vaihtoehtoinen tapa määritellä funktioita f : N R on

11.4. Context-free kielet 1 / 17

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

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

Proseduraalinen dokumentti: sisältö, rakenne ja ulkoasu yhdessä, esim. worddokumentti

4. Lausekielinen ohjelmointi 4.1

(0 1) 010(0 1) Koska kieli on yksinkertainen, muodostetaan sen tunnistava epädeterministinen q 0 q 1 q 2 q3

Ei-yhteydettömät kielet [Sipser luku 2.3]

Tietojenkäsittelyteorian alkeet, osa 2


Tietueet. Tietueiden määrittely

Tietorakenteet ja algoritmit - syksy

Lisää pysähtymisaiheisia ongelmia

Tarkastelemme ensin konkreettista esimerkkiä ja johdamme sitten yleisen säännön, joilla voidaan tietyissä tapauksissa todeta kielen ei-säännöllisyys.

TIEA241 Automaatit ja kieliopit, kevät 2011 (IV) Antti-Juhani Kaijanaho. 31. maaliskuuta 2011

XML-pohjaiset rakennemäärittelyt

XML / DTD / FOP -opas Internal

Paikkatietojen tietotuotemäärittely

Vastauksia. Topologia Syksy 2010 Harjoitus 1

JOHDATUS TEKOÄLYYN TEEMU ROOS

Yhtälönratkaisusta. Johanna Rämö, Helsingin yliopisto. 22. syyskuuta 2014

Syntysähköisten. Markus Merenmies / Kansallisarkisto

W3C: teknologia ja (tieto)yhteiskunta

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

Digitaalisen median tekniikat xhtml - jatkuu Harri Laine 1

FUNKTIONAALIANALYYSIN PERUSKURSSI Johdanto

valitsin on useimmiten html-elementti, jolle tyyli halutaan luoda

FORMAALI SYSTEEMI (in Nutshell): aakkosto: alkeismerkkien joukko kieliopin määräämä syntaksi: sallittujen merkkijonojen rakenne, formaali kuvaus

T Syksy 2004 Logiikka tietotekniikassa: perusteet Laskuharjoitus 7 (opetusmoniste, kappaleet )

KÄYTTÄJÄKOKEMUKSEN PERUSTEET, TIE-04100, SYKSY Käyttäjätutkimus ja käsitteellinen suunnittelu. Järjestelmän nimi. versio 1.0

Verkkojulkaiseminen Minna Väisänen. HTML5-tehtävä

Ohjelmoinnin perusteet Y Python

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

Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

17/20: Keittokirja IV

12 Dokumenttiluokan toteuttamisesta

Transkriptio:

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