W3C, Web-teknologiat ja XML Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), Hypermedialaboratorio W3C Suomen toimisto
Esitelmä Hyvin lyhyt versio: XML on W3C:n suosittama perhe tekstiformaatteja ja tietojenkäsittelyyn liittyviä teknologioita. XML tarjoaa yhteensopivaa perustekniikkaa mitä moninaisempien sovellusten perustaksi Pidempi versio, otsikoita: W3C ja universaalit standardit XML: mitä ja kenelle XML-tiedon käsittelyn perusteet XQuery, kohti datalähtöisiä sovelluksia: Semanttinen Web Lopuksi, liitteet Esityksen tavoite: sijoittaa XML maailmankartalle 2
Alkusoitto: World Wide Web Consortium ( ) ja universaalit Web-standardit
World Wide Web Consortium (W3C) W3C kehittää yhteensopivia teknologioita ja siten ohjaa Webin kehittymistä täyteen mittaansa...asettamalla teknisiä suosituksia (esim. HTML, XML, WAI) 3 päätstoa, 14 aluetstoa, n. 350 jäsenorganisaatiota Jäseneksi? http://www.w3c.tut.fi/joining.html 4
Näkökulma: teknologia, välineet ja tarpeet tarpeet ja tehtävät välineet Konteksti (visio, olemassa olevat välineet, menetelmät, käytännöt, kokemukset, arvot ja perinteet, markkinat) teknologiat 5
W3C: verkkosivuista (Web-)teknologiaksi 6
Modulaarisen XML-perheen yleiskuva XHTML SVG SMIL MathML VoiceXML XForms... EMMA XSL-FO CSS P3P WAI... XSLT XPath XQuery... RDFS, OWL RDF CC/PP WSDL SOAP... DOM Encryption XKMS Canonical Signature XLink Base Fragments Inclusions Events XPointer... XML 1.0/1.1 Namespaces 1/1.1 XML Schema HTTP Unicode URI 7
W3C:n toimialueet ja työryhmät, k2005 Ks. www.w3.org ja www.w3c.tut.fi (esittely, työryhmät, kaikki suositukset, uutisia, tapahtumia,...) 8
W3C tavoitteet, rooli ja strategia Tavoitteet Universaali saatavuus Semanttinen Web Luottamuksen Web Rooli Visio Suunnittelu Standardointi Suunnitteluperiaatteet Yhteensopivuus Hallittu evoluutio Hajauttaminen (Esimerkki: Tim B-L: Semantic Web Wave ) 9
Extensible Markup Language (XML) : Mitä ja kenelle?
Automaattisen tietojenkäsittelyn tehtäviä... Tiedon tallettaminen ja käsittely dokumentteina, arkistointi, viestien lähettäminen tietokoneiden ja laitteiden välillä, tiedon tuotanto- ja hallintaprosessit,... poisto palvelimet ja tietoverkot arkistointi kommunikointi, eri päätelaitteet tulostaminen hallittu julkaisuprosessi henkilökohtainen tietojenkäsittely pienlaitteiden digi-informaatio 11
XML visio XML-tekstiformaatit, XML-viestit, XML rajapintana,... XML XML XML XML XML XML XML XML XML XML XML XML XML XML XML XML XML Huomautuksia: XML kulissien takana, järjestelmien kehitystyön tavoitteet tarvitaan myös XML-perustekniikan varassa toimivia sovelluskohtaisia sopimuksia (...sovellusten standardointi) 12
Konseptiesimerkki: sovellusintegraatio adapteri adapteri adapteri adapteri XML manipulointi haut kyselyt kuvailu teknisesti yhteensopiva tiedonsiirto ja viestiliikenne sisäisesti erilaisten sovellusten välillä loogisesti yhtenäinen rakenne (esim. haut, kyselyt, metatiedot) 13
XML-tiedon ohjelmallisen käsittelyn perusteet (strategia)
Tiedon käsittely loogisen rakenteen varassa XML-merkkaus yhtenäinen looginen puurakenne Dokumenttityypit tietyn tyyppimäärittelyn mukainen sanasto ja rakenne (esim. XHTML) Standardilaajennukset (periaatteessa) yleiskäyttöiset piirteet (esim. XLink) XML: merkkauskielioppi ja tyyppimääritys sovellus käsittelijä <?xml version="1.0"?> <muistio pvm="2004-03-22"> <luokitus>hpn-projekti</luokitus> <otsikko>uusi tilaus tulossa?</otsikko> <kirjoittaja>teuvo Oinas</kirjoittaja> <asia> looginen Brasilian tehdas on pyytänyt rakenne arvion Soijakattilan uusimisen kustannuksista. <!-- Sirpa korjasi kirjoitusvirheet muistio 2004-03-23. --> </asia> luokitus otsikko asia </muistio>... 15
Kolme tapaa ohjelmoida XML-sovellus (1/2) Matalan tason ohjelmointi lähtee liikkeelle XMLdokumenteista tietorakenteina ohjelmointia tavallisilla C/C++/Java/... -kehitysvälineillä 1. Tapahtumapohjainen ohjelmointi SAX-rajapinta (Simple API for XML) 2. Objektipohjainen ohjelmointi DOM-rajapinta (Document Object Model) xml-dok. XML-prosessori (non-validating/ validating/ns/no-ns) SAX DOM Sovellus 1 Sovellus 2... 16
Kolme tapaa ohjelmoida XML-sovellus (2/2) 3. Korkeamman tason sovelluskehitys hyödyntää standardisovelluksia (?-prosessorit,?-komponentit) sovelluksen kuvaaminen prosessorin/komponentin avulla tai sen syötteenä/vasteena (esim. XQuery, XSLT, Web Services,...; kyselyt/filtterit/muunnokset/viestit/...) XML-prosessori xml-dok.?-api XQuery- XSLTprosessori XQuery XSLT html muunnos kysely Sovellus 3 XML-prosessori xml-dok.?-api Web Services -komponentti WS (Req/Prov) SOAP WS' palvelukuvaus... palvelukuvaus Sovellus 4 17
Huomautuksia Täysin räätälöityjen sovellusten tekemisessä on kyse melko "matalan tason" ohjelmoinnista SAX- ja DOM-tyyppisiä rajapintoja (ja jäsentimiä, esim. Xerces) löytyy useimpiin ohjelmointikieliin Sovellusten suunnittelussa sisältöjä tarkastellaan yleensä tietomallien tasolla (standardiratkaisut) XML-ohjelmointirajapintoja löytyy toki muitakin XML 1.0 määrittelee XML-prosessorin käyttäytymisen, mutta ei rajapintaa, joten sellaisen voi kirjoittaa "kuka tahansa" 18
Abstraktien XML-prosessorien hyödyntämisestä: XQuery
Lausekielinen ohjelmointi? Kaikki sovellusohjelmointi ei kuitenkaan ole SAX/DOM-tason C/C++/Java/... -ohjelmointia Tyypillisesti toistuvia "korkeamman tason" tehtäviä ovat mm. dokumenttiluokkien väliset muunnokset (esim. muistio html) kyselyt ja tiedonhaku (vrt. SQL)...joita silmälläpitäen on kehitetty (kehitteillä) esim. standardit XSL Transformations, XML Query Language, SPARQL joille löytyy prosessoritoteutuksia (esim. Saxon) Käytännön ohjelmointityötä voidaan abstrahoida ja vähentää eri prosessoreja sopivasti yhdistelemällä 20
XQuery: XML Query Language Kysely = (pieni) ohjelma tai lauseke, joka palauttaa tietoa XML-dokumentista (tulos tekstiä tai XML-dokumentti) XQuery... perustuu pitkälti XPath-kieleen ideoita mm. SQL-kielestä yms. kysely näkee koko XML-dokumentin (kuten DOM) kysely voi generoida hyvinkin monimutkaisia XML-dokumentteja Kyselyillä on oma syntaksinsa (löytyy XML-sarjallistus) XQuery sisältää SQL-tyyppiset kutsut erikoistapauksena ns. FLWOR-lauseke (for-let-where-order by-return) for $b in doc("raportit-2004.xml")//muistio where $b/@pvm = "2004-03-22" return $b/otsikko 21
XQuery: Laajempi ideatason esimerkki (draft) <?xml version="1.0" encoding="iso-8859-1"?> <muistio pvm="2004-03-22"> <luokitus>hpn-projekti</luokitus> <otsikko>uusi tilaus tulossa?</otsikko> <kirjoittaja>teuvo Oinas</kirjoittaja> <asia> Brasilian tehdas on pyytänyt arvion Soijakattilan uusimisen kustannuksista. <!-- Sirpa korjasi kirjoitusvirheet 2004-03-23. --> </asia> </muistio> <yhteenveto count="{ count(doc(muistio.xml')/muistio//*) }"> { doc("muistio.xml")//asia } </yhteenveto> kysely <yhteenveto count = "4"> <asia>brasilian tehdas on pyytänyt arvion Soijakattilan uusimisen kustannuksista.</asia> </yhteenveto> 22
Takaisin sovellusintegraatioon... adapteri XQuery adapteri XQuery adapteri XQuery adapteri XQuery XML manipulointi haut kyselyt kuvailu rajapinnat ja standardiprosessorit tarjoavat tekniikan kääriä mitä tahansa tietoa XML:n avulla (...virtuaaliset dokumentit)..."xml everywhere", "XML middleware" 23
Kohti datalähtöisiä sovelluksia
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) 25
Semanttinen Web? Datalähtöisten sovellusten kompastuskivi on yleensä yhteismitallisen tiedon saatavuus Semanttinen Web tarjoaa perustekniikkaa kuvailevan (meta)tiedon mallintamiseen, julkaisuun ja käsittelyyn Opiskelija (..ja opiskelijoista tiedämme...) arvosanalla Kiitettävä aliluokka vieraileva opiskelija on tehnyt opintosuorituksen yhteystiedot on Satu Markkinoinnin perusteet (5,4,4,5,5,4,5,5) suorituksin 26
Mistä SW:n (meta)tieto on peräisin? Kärjistetysti, SW voidaan nähdä universaalin tietokannan määrittelynä yhteensopiva tietomalli SW haku, yhdistely, kysely, päättely A' B' C' yhteensopiva tietorakenne sovelluskohtainen tietorakenne adapteri adapteri adapteri A B C Tarkoitus ei kuitenkaan ole "siirtää tiedostoja" Semanttiseen Webiin, vaan "kuvata tietoja" (ts. SW ei ole fyysinen vaan looginen rakenne) 27
SW-kyselykieli: RDF Query Language ( SPARQL) RDQL on Semanttisen Webin SQL RDF-lähde SELECT?resource,?familyName WHERE (?resource, <info:age>,?age), (?resource, <vcard:n>,?y), (?y, <vcard:family>,?familyname) AND?age >= 24 USING info FOR <http://somewhere/peopleinfo#>, vcard FOR <http://www.w3.org/2001/vcard-rdf/3.0#>?resource?familyname http://www.u1... Romppainen http://www.u2... Ala-Harja http://www.u3... Kaarto...... sovellus (RDF = Resource Description Format) 28
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! 29
Lopuksi
W3C: Mikä on muuttunut kymmenessä vuodessa? Määrä Käyttäjiä on enemmän Sisältöä ja sovelluksia on enemmän Tekniikkaa on enemmän Web on osa arkipäivää (miten asia 10v sitten menikään?) Aikataulut ja kartat? Lennot ja hotellitiedot? TV:n keskusteluohjelmat? Projektien yhteiset dokumentit? Tutkijayhteisöt? Kirjastot? Tietokonepelit? Ajanviete? Webiä käytetään kuin tietokantaa (hakukoneiden korostunut rooli) Päätelaitteet ja käyttötavat ovat monipuolistuneet Ajattelutavan muutokset Web hypertekstiverkko, Web = informaatioavaruus datalähtöiset sovellukset, Semanttinen Web Web ei enää ole ainoa W3C-teknologioiden sovellus 31
Mitä tapahtuu seuraavaksi? Uusien sovellusten ennakoiminen on mahdotonta, mutta miltei kaikki uusi löytää lopulta tiensä verkkoon yhteensopivan teknisen perustan kehittymien näkyy useimmiten "vain" halvempina (moninaisempina) ja parempina sovelluksina W3C ei toteuta villeimpiä sovelluksia, vaan kehittää ja standardoi toimivaa tekniikkaa (ei hypeä) Teknisesti "uutta" ovat esim. RDF ja XML -kyselyteknologiat sekä puhekäyttöliittymät Isoja linjoja SW, WS, XML, Mobile Web,... Digital Rights Management, Best Practices,... trendi: samalla kun teknologiapakka kasvaa ja kehittyy, Webstandardointi tulee lähemmäs sovelluksia 32
Mikä ei muutu? (Ihmisten) kyky käsitellä informaatiota kehittyy hitaammin kuin kyky tuottaa sitä esim. talletuskapasiteetti ja sensorinen data lisääntyvät suuresti mutta yksinkertainen on aina kaunista (...automatisointi?) Sovellusten toimivuus edellyttää yhteisiä pelisääntöjä Hajautettujen järjestelmien suunnittelufilosofia edellyttää sekä teknistä että "psykologista" näkemystä Standardointia tarvitaan! maailmanlaajuinen tietoverkko ei mitenkään voi toimia muutoin Jotain "uutta" on aina tulossa 33
Yhteenveto World Wide Web Consortium (W3C) kehittää Webstandardeja W3C-työn keskeinen tulos ovat standardinomaiset suositukset (Recommendation) jotka ohjaavat välineiden tai palvelujen yhteensopivaa toteutusta Web-teknologioiden kehitys, erityisesti tekstiformaatteihin liittyvä standardointi rakentuu pitkälti XML-tekniikoiden varaan The bane of my existence is doing things that I know the computer could do for me." Dan Connolly, The XML Revolution 34
Kiitos! Jäikö joku W3C-asia mietityttämään? Allekirjoittaneen tavoittaa helposti: http://www.w3c.tut.fi Ossi@w3.org 35
Liite 1: lisätietoja ja osoitteita eteenpäin W3C http://www.w3.org/ (kotisivu) http://www.w3c.tut.fi/ (W3C Suomen toimiston kotisivu) W3C-aktiviteetit http://www.w3.org/consortium/activities (yleiskuva) W3C:n suositukset, raportit ja teknistä tietoa http://www.w3c.org/tr/ (kaikki tekniset dokumentit) http://www.w3c.tut.fi/report-archive.html (yleisesityksiä suomeksi) Jäseneksi! http://www.w3.org/consortium/prospectus http://www.w3c.tut.fi/joining.html 36
Liite 2: Semanttisen Webin tekniikoiden yleiskuva Kuva: W3C. 2003 37
Liite 3: WS-palveluarkkitehtuurin perusteet Perusidea XML-pohjainen viestiliikenne esim. HTTPyhteyden avulla palvelun tarjoaja julkaisee palvelun, palvelun kuvauksen ja kertoo mistä se löytyy palvelun tarvitsija etsii sopivan palvelun (kenties kolmannen osapuolen välityksellä) ja ottaa suoraan yhteyden palvelun tarjoajaan Kuva: W3C, 2004 38
Liite 4: Simple Object Access Protocol SOAP tarjoaa kirjekuoren viestinvaihtoon etäkutsut vs. viestipohjainen kommunikaatio SOAP-viestin käsittelyyn voi osallistua useita välikäsiä (ns. intermediary nodes) Kuva: W3C, 2004 sovellus XML-dokumentti API viestiliikenne SOAP yhteystapa HTTP SMTP... (SMTP = Simple Mail Transfer Protocol) 39
Liite 5: Web Services -tekniikoiden yleiskuva Kuva: W3C, 2004 40