= rakenteellinen dokumentti dokumentti, jossa erotetaan toisistaan dokumentin 1), 2) ja 3) (tai esitystapa) jotakin systemaattista ja yksikäsitteistä menetelmää käyttäen erusidea: yhden ja saman "tekstinpätkän" merkitys voi vaihdella, riippuen sen "loogisesta" sijainnista dokumentissa (tai lähdetiedostoissa) Erityyppisen tiedon erottaminen toisistaan perustuu koodaus- ja syntaksikäytäntöihin ja sopimuksiin koodausten tulkinnoista - "tiedostotasolla" kaikki koodaus voidaan hyvin tehdä esim. "samannäköisinä" ascii-merkkeinä! Joissakin tapauksissa paitsi asiasisällön rakenne, myös sen ulkoasu (ilmiasu) voidaan käsitteellisesti samaistaa sen merkityksen kanssa (dokumentin parsimisen voidaan ajatella tuottavan muutakin kuin "jotakin katseltavaa")
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 A@ LG KJ I H HJ I HD Q S AR BENM =< ;: Q J I Q J I MEMO 1.1.2000 XZY WV TU To: entti omo Fr: Timo Työmies \ T W[ e'f c'd d a ba^` a j` i h hg 3 8 5'67 1243 12. /0 91 0/ 0 7 4 npoqr n Kerron pomolle, että uusi tietokantamme on susi s k )- ) %'+$ % (') %'& & # $#" $#"! 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!
ut 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" jotenkin esittää datan jakaminen erityyppisiin elementteihin, joiden sisältö ja keskinäinen suhde on hyvin määritelty ( rakenteistaminen) Rakenteistamisen perustehtävä on merkityksellisten tietoelementtien identifiointi valitun v z { ~ } } z { y y v zz { yx wv ˆ ƒ Käytännössä dokumentit sisältävät kuitenkin yleensä myös muitakin kuin "pelkkiä" elementtejä (esim. XML-dokumentti sisältää myös deklaraatioita, kommentteja, merkkiviittauksia ja prosessointiohjeita) ˆ, jota voidaan käyttää Ž Œ Š Œ Š "Rakenteistettu tieto" sisältää siis myös hyväksi sekä dokumentteja kirjoittaessa (rakenteen oikeellisuuden varmistaminen) sekä luettaessa (elementtien tunnistaminen)
œ š Tietokoneen ei voida sanoa "ymmärtävän" esim. XML-dokumentin sisällön "merkitystä", sillä dokumenttien validoiminen & parsiminen tapahtuu niiden rakennepuiden muodossa (elementtien sisältö on vain "jotain") Dokumentin rakenteen eksplisiittinen esittäminen mahdollistaa (jopa yksittäisten) dokumenttien käyttämisen tietokantojen tapaan Eksplisiittiset rakennemääritykset helpottavat myös dokumenttien parsimista 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 ~ Ÿ Ÿžž ) - merkityksen määrittely (elementtisanaston kuvaus ~ ) - käytön määrittely (sovellusalue ja käyttöesimerkit ~
² µ ± ² µ ¼ µ ± µ È Å Â À À ¾ É 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 jopa yksin 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ä" ( ± ±² ³ ª ² º² ½µ «½ ± ² ³ ± ¹ ² ³µ ±± µ µ ± «) ÀÂ Â Å Æ Â ole helppoa tai edes Ê Ë É Ulkoasun erottaminen rakenteesta ei kuitenkaan tarkoituksenmukaista!
ÍÌ Yleensä halutaan käsitellä useita tietyn rakenteen omaavia dokumentteja, tällöin päädytään samantyyppisten dokumenttien luokkaan Samantyyppisten dokumentin rakennemäärittelyn käytetty menetelmä (esim. merkintäkieli) voidaan edelleen standardoida (esim. HTML), minkä seurauksena esim. 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 (esim. 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
Ù Ð Þ ç âá æå Kannattaa huomata, että tietokoneiden näkökulmasta "rakenteettomia dokumentteja" ei ole olemassakaan - "rakenteisuudessa" on siis kyse lähinnä rakenteita koodataan & kuka koodauksen Õ Ö Ò Ô ÒÓ Ñ - kenen tai minkä "ymmärtää" rakenne esitetään ÛÜ ÝÚ - miten yksityiskohtaisesti ja Tietokoneen näkökulmasta rakenteisuus tarkoittaa käytännössä sitä, että tietoa lukeva järjestelmä osaa sijoittaa luetun atomaarisen tiedon tyyppiään vastaavaan kohtaan omassa tietorakenteessaan (tai osaa sivuuttaa sen tarpeettomana) Huomaa: ; perinteisten tietokoneohjelmien tapauksessa näiden rakenteiden on oltava yksikäsitteisiä áçà ç è æ â è à ðã çáè ï à å ççá îã í ççì ì êê ë é è çá è á æ ã ä äã âá â âá ß à Rakenteellisuus ei kuitenkaan ole vain staattisten dokumenttien ominaisuus; esimerkiksi yksinkertaiset sähköpostiviestit koodataan SMT:n (Simple Mail Transfer rotocol) mukaisesti tarkkaa etikettiä (so. protokollaa) noudattaen (Jos SMT muuten vain kiinnostaa, ks. http://www.imc.org/rfc821 ) ÎÏ
öõ /.!. - CB 4 2 B A gh _ q w vu ts vu ts òñ Seuraavassa lähetetään postia SMT-palvelun avulla: ö ú ö ö þÿ ó ý ü õ ô û úù ø ó'ô R: 250 OK R: 250 OK +, ' )* ( ' '& %$ # " "! R: 550 No such user here? @ > =8 < ; :9 87 6 1 5 54 32 0 1 R: 250 OK GH GF D E R: 354 Start mail input; end with <CRLF>.<CRLF> NQ L M O N L M O N L M K I J S T R S T R S T R I J ZY XW VU ZY XW VU I J R: 250 OK Huomioita: jotta hommassa olisi järkeä, vastaanottajan pitää "tunnistaa" mitä lähettäjältä on tulossa, SMT ei koodaa "varsinaisen asiasisällön" rakennetta kkal g j jf g i \ g \f e ` dc b _a` ^] \[ lainkaan (pelkkää ascii-"tekstiä") eikä! wqx r q r l jp gno j n ] \m
zy 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, DF, 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
ƒ Ž Œ š š Ÿ { Rakenteellisista dokumenteista erotetaan yleensä käsitteellisesti: datan ja metadatan jäsentäminen yksikäsitteisesti luettavaan muotoon merkkauksen ([markup]) avulla. a }a~ ~ dokumentin "konkreettisesti" muodostavat osat, ns. entiteetit (esim. tiedostot tms. objektit) Š Š Š aš a ˆ 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ä: = kokoelma nimiä, symboleita ja sääntöjä, joka määrittelee ns. dokumenttien laillisen "yleisrakenteen" (vrt. läh. kielen syntaksi tai kielioppi) a a a a ž až œa š = valitun kieliopin puitteissa tehtävä määrittely, a ª «ª ä a Dokumentin jolla tarkasteltavien dokumenttien looginen rakenne rajataan joksikin tietyksi (vrt. läh. erisnimien ja lauserakenteiden valinta)
½ º ¹» ÜÛ ÚÙ â Ð ¾ Ð Ð ÌÎ Ù ß ä àã Ð Ö Õ¾ Ð é à à Û Ý æá áê Ë Å Ö Í Í À ¾ À ¾ É eri osat tai µ ¼ µ ¹º µ ²a³ a± Oheisessa kuvassa ovat esillä tyypillisen komponentit (kaikkia ei välttämättä aina tarvita, osa taas otetaan käyttöön vasta "tarvittaessa", mahdollisesti esim. verkon kautta): ÆÅ È ËÊ É áà àß ÞÝ Ñ Ì¾ Ù á åä Ô ÉÅ Ó¾ ÂÒ Ê Ö Ø Ø Ø Ø ÆÅ È ËÊ É Ø Ø ç è ß Þß áúû æ Ü ÆÅ È ËÊ É È Ø à Üã ä ØØ Ì¾ É ÎÆÅ Î Í Í ÐÍ Ï Ì Ï È ÆÅ Ñ Ì ÐÌ Î ÆÅ Â ÆÅ Â È Ì¾ É È Ì¾ Ö Õ Käytännössä tarvitaan siis 1) sopimuksia, 2) ohjelmistoja, 3) teknisiä alustoja, 4) oheisstandardeja sekä 5) sovelluksia ja käyttötapoja