-pohjaiset rakennemäärittelyt Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto
Esitelmä Hyvin lyhyt versio: -perustainen kommunikointi edellyttää sopimuksia käytettyjen tietorakenteiden muodosta ja tulkinnasta. Perustekniikka ei kuitenkaan käytännössä vielä riitä: tarvitaan myös sovelluskohtaisia, :n varaan rakentuvia sopimuksia. Pidempi versio, otsikoita: tiedon välittäjänä esimerkkejä -tekstiformaateista tyyppimäärittelyn tekniset perusteet dokumentti- ja datalähtöiset sovellukset, sanastotyö Esityksen tavoite: luonnehtia yhteensopivan perustekniikan ja -sovellusten suhdetta 2
Mitä tietoa välittää ja miten?
Eri sovellukset tarvitsevat erilaista tietoa siis tarjoaa rajapinnan tiedon välittämiseen...mutta pelkkä ei kerro mitä tietoa tietorakenteessa on esitetty ja miten (sanasto ja sen käyttö) SVG XHTML DC RDF EDI SOAP Tarvitaan siis -merkkauksen varassa toimivia dokumentti- ja viestistandardeja, sopimuksia kerättävistä metatiedoista, jne. 4
Dokumentin (elementin) tyyppi Mekaanisen tietojenkäsittelyn perusta on dokumentin tyypistä sopiminen (etukäteen sovitut tietorakenteet) Käytännössä dokumentin tyyppimääritys sisältää useita osia, ainakin formaalin tietorakenteen määritys (muotti) kuvaus rakenteen merkityksestä sovelluksessa (muotin selitys) Tuttu esimerkki: XHTML kirjoitusprosessi on tyyppiä index.html DTD XHTML 1.0 Strict validointi (yksittäisen dokumentin rakenteen tarkistus) osaa lukea ja toteuttaa (DTD = Document Type Definition) 5
Johdattelevia esimerkkejä yleisesti tunnetuista tekstiformaateista
Esimerkki: XHTML & CSS XHTML-dokumentin esitystapa voidaan asettaa esim. CSS-tyyliohjeen avulla (Cascading Style Sheet): body { background: yellow; /* Pohja */ font-family: "Arial", sans-serif; color: rgb(0,0,50); } p { text-align:right; } p a { background: white; font-size: 150%; } a:active { background: black; color: white; } <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/tr/xhtml1/dtd/xhtml1- strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> <head> <title>virtual Library</title> <link rel="stylesheet" type="text/css" href="pc-yell.css"/></head> <body> <p>check <a href="http://example.org/">example.org</a>.< /p> </body> </html> <!-- Mod. --> (Vrt. modulaarinen XHTML ja XHTML Basic) 7
Esimerkki: Scalable Vector Graphics 8
Esimerkki: SMIL Synchronized Multimedia Integration Language (multimediaesitykset) Kuva ja esimerkki: C. Forno 9
Esimerkki: WML Kuva ja esimerkki: ThinkBurst Media 10
Esimerkki: SOAP ja palveluväylän idea Simple Object Access Protocol -pohjainen viestiformaatti ("-kirjekuori") Ts. tiedonvälitys ilman "esittämisen" ideaa <SOAP-ENV:Envelope xmlns:soap-env="http://schemas.xmlsoap.org/soap/envelope/" SOAP- ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Body> <m:getlasttradeprice xmlns:m="http://example.org/trade"> <m:id>dis</m:id> </m:getlasttradeprice> </SOAP-ENV:Body> </SOAP-ENV:Envelope> Kuva: W3C. 2004 11
Esimerkki: Resource Description Format -pohjainen esitystapa standardin RDF-tietomallin mukaiselle tiedolle Huom. tietorakenne () vs. tietomalli (RDF & SemWeb) <?xml version="1.0"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:contact="http://www.w3.org/2000/10/swap/pim/contact#"> <contact:person rdf:about="http://www.w3.org/people/em/contact#me"> <contact:fullname>eric Miller</contact:fullName> <contact:mailbox rdf:resource="mailto:em@w3.org"/> <contact:personaltitle>dr.</contact:personaltitle> </contact:person> </rdf:rdf> Kuva: W3C. 2004 12
Dokumentin tyypin määrittely teknisesti: DTD ja Schema
Dokumentin formaalin tyypin määrittely -standardiperhe tarjoaa -dokumentin tyypin määrittelyyn kaksi menetelmää DTD (Document Type Definition -kieli, sisältyy 1.0/1.1:een) Schema -skeemakieli (Primer, Structures, Datatypes) Molempien perusidea on sama tyyppimääritys kuvaa säännöt joita tietyntyyppisen dokumentin (elementin) tulee noudattaa dokumentti, joka noudattaa tyyppimäärittelyä se-ja-se, on tätä tyyppiä (...tulkitsija voi luottaa että ainakin rakenne on sovittu) Keskeisiä eroja -skeemat on ilmaisuvoimaisempi kuin DTD DTD-kieli sisältää välineitä myös dokumentin fyysisen rakenteen määrittelyyn (ns. entiteetiit) 14
Esimerkki DTD-määrittelystä Määritellään tyyppimääritys muistio.dtd <!ELEMENT muistio (otsikko, asia?, huom+) > <!ATTLIST muistio pvm CDATA #REQUIRED > <!ATTLIST muistio henk (on jfk th) #IMPLIED > <!ELEMENT otsikko (#PCDATA) > <!ELEMENT asia (#PCDATA) > <!ELEMENT huom (#PCDATA) >...johon sitten viitataan dokumenteissa <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE muistio SYSTEM "muistio.dtd" > <muistio pvm="2005-01-20"> <otsikko>-koulutus</otsikko> <asia>muista ilmoittautua koulutukseen 16.2.2005.</asia> <huom>siis Radisson SAS, Hki.</huom> </muistio> 15
Esimerkki -skeemamäärittelystä Sama idea, mutta rikkaampi, -pohjainen kieli <xsd:schema xmlns:xsd="http://www.w3.org/2001/schema"> <xsd:element name="muistio" type="muistiotype"/> <xsd:complextype name="muistiotype"> <xsd:sequence> <xsd:element name="otsikko" type="xsd:string"/> <xsd:element name="asia" type="xsd:string" minoccurs="0"/> <xsd:element name="huom" type="xsd:string" maxoccurs="unbounded"/> </xsd:sequence> <xsd:attribute name="pvm" type="xsd:date" use="required"/> <xsd:attribute name="henk" type="henkilottype" use="optional"/> </xsd:complextype> <xsd:simpletype name="henkilottype"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="on"/> <xsd:enumeration value="jfk"/> <xsd:enumeration value="th"/> </xsd:restriction> </xsd:simpletype> </xsd:schema> 16
Huomautuksia -skeemojen määrittely tarjoaa DTD:tä enemmän eväitä tietorakenteiden suunnitteluun sääntöjen mutkikkuus, (johdettujen) tietotyyppien käyttö, nimiavaruudet...ja aivan kuten esim. tietokantasuunnittelussa, tyyppimääritys vain kirjaa suunnittelutyön lopputuloksen Hyvän tyyppimäärityksen suunnittelu on yleensä vaativaa työtä joka vaatii niin sovellusosaamista kuin teknistä ammattitaitoakin suunnittelun tavoitteet, reunaehdot ja rajoitteet tiedon (uudelleen-) käyttö mallintaminen tekninen kirjoittaminen 17
Dokumentit vs. data, sanastotyö
Dokumentit tiedon välittäjinä Dokumentti on "ihmisen ymmärtämäksi tarkoitettu kokonaisuus joka käsittää rajatun määrän rakenteista tai ryhmiteltyä tietoa tietovälineessä" Data puolestaan on "tietoa luettavassa, viestittävässä tai käsiteltävässä muodossa" Rajanveto dokumentti- ja datalähtöisten sovellusten välillä ei ole tarkka, koska kaikki tieto on luettavissa dokumenteista myös paloittain datasta (tietueista, fragmenteista, entiteeteistä,...) voidaan myös sopivien kuvailujen avulla koostaa dokumentteja Erot löytyvät lähinnä... tiedon tuottamisen ja hallinnan tavasta ja dynaamisuudesta työhön käytettävistä välineistä ja tekniikoista (esim. muunnokset vs. kyselyt) 19
Dokumenttien käsittelystä: hallintaprosessi Dok. käsittely vaiheittaisina prosesseina sisältöä on usein kätevintä mallintaa ja tuottaa melko isoissa loogisissa osissa koko prosessi kuvattu ylätasolla; yksittäisiin käsittelyvaiheisiin tuodaan tuodaan juuri niin vähän teknistä informaatiota tietoa kuin tarpeen...optimointia prosessin hallittavuuden ja sisällön kuvailutyön välillä esim. 20
Datan koostamisesta: syndikointi Tyyppiesimerkkejä datalähtöisistä sovelluksista ovat useat Semanttisen Webin sovellukset, esim. RSStekniikan varassa julkaistut "ilmoitukset" (tietolistat)...kuvattu metatiedoin, tarkoitettu yhdisteltäväksi ja haettavaksi osana muita sovelluksia (uutiset, päivityspaketit, ruokalistat,...) ks. esim. http://www.oreillynet.com/meerkat/ organisaation A tiedotteet ja verkkouutiset organisaation B tiedotteet ja verkkouutiset saatavilla olevia tietolistoja yhdistelevä ja suodattava sovellus organisaation C tiedotteet ja verkkouutiset (RSS (1.0) = RDF Site Summary) 21
Skeemamäärittelyt vs. sanastotyö Datalähtöiset sovellukset eivät voi toimia ilman yleiskäyttöisiä kuvailusanastoja esim. RSS-kanavat pitää tietenkin kuvata yhteensopivilla käsitteillä ja julkaista yhteisen tietomallin puitteissa Sanastotyössä voidaan erottaa useita tasoja, esim. sovelluskohtaiset käsitemallit (esim. kirjastoalan käsitteistö) käsitteitä, yksilöitä ja näiden suhteita kuvaavat sanastot (esim. Dublin Core) sopimukset sanastojen predikaattien käytöstä ja tulkinnasta (esim. luokitukset) Sanastotyö on monessa mielessä esim. laaja-alaisten datalähtöisten sovellusten haastavin osa-alue! 22
Välitilinpäätös ennen seuraavaa esitystä...
Yhteenveto tarjoaa yhteensopivan perustan mitä moninaisemmille sovelluksille ja välineitä sovelluskohtaisten tietorakenteiden määrittelyyn Rakennemäärittelyjen reunaehtoina toimivat mm. teknisen kirjoittamisen reunaehdot käsittelyn välineet ja tekniikat aihepiirin standardisanastot ja -sovellukset Kysymyksiä, kommentteja? 24
Liite 1: lähteitä ja lisälukemista W3C Interaction domain (XHTML, SVG,...) http://www.w3.org/interaction/ Schema http://www.w3c.org//schema Cover Pages: Extensible Markup Language () http://xml.coverpages.org/xml.html + etsi termejä : www.google.fi, www.xml.com, jne 25
Liite 2: monikanavajulkaiseminen General processing based on the declarative domain concepts Specific processing based on the publishing media Authoring [guides] Manuscript schema [produces] 0..n [produces] Retouch Media object Manuscript Select media for deliverables [media X] Publishing pre-processing [produces] Formatting objects [used for] Formatting [generates] [enhanced with expicit] [guided by] metadata domain ontology Product Postprocessing Authoring deliverables in format X 26