XML-tietojenkäsittely

Samankaltaiset tiedostot
W3C, Web-teknologiat ja XML

XML johdanto, uusimmat standardit ja kehitys

Paikkatiedot ja Web-standardit

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

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

W3C-teknologiat ja yhteensopivuus

W3C ja alueellinen standardointi

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

Rakenteisten dokumenttien jatkokurssi, syksy 2006

W3C ja Web-teknologiat

W3C ja Web-teknologiat

W3C, Web-teknologiat ja Semanttinen Web

W3C: teknologia ja (tieto)yhteiskunta

Luento 12: XML ja metatieto

3 Verkkosaavutettavuuden tekniset perusteet

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

W3C ja Web-teknologiat

Järjestelmäarkkitehtuuri (TK081702)

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

W3C, XML ja sovellukset

Hohde Consulting 2004

Luento 7: XML-ohjelmointirajapinnat

11 Lyhyesti XML-sovellusohjelmoinnista

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

XML-evoluutio ja kestävä kehitys

10 Pieni sovellusesimerkki: datalähtöinen grafiikka

Johdatus rakenteisiin dokumentteihin

10 Ohjelmoinnista Semanttisessa Webissä

XML - mahdollisuudet ja kehitys

Sisällys. Valtion tietotekniikan rajapintasuosituksia. XML:n rooleja sähköisen asioinnin tavoitearkkitehtuurissa. dbroker - asiointialusta

XML ja Web Services update

4 Johdanto XML-maailmaan

standardit (W3C, ISO) Semanttisen laskennan tutkimusryhmä Teknillinen korkeakoulu

XML-pohjaiset rakennemäärittelyt

10 Pieni datalähtöinen sovellusesimerkki

Kurssin aloitus. AS XML-kuvauskielten perusteet Janne Kalliola

HOJ J2EE & EJB & SOAP &...

Käsitemallit muistiorganisaatioiden kuvailun yhdenmukaistamisen välineenä

10 Pieni sovellusesimerkki: datalähtöinen grafiikka

Interfacing Product Data Management System

Digitaalisen median tekniikat. JSP ja XML Harri Laine 1

Uutisjärjestelmä. Vaatimusmäärittely. Web-palvelujen kehittäminen. Versio 1.3

The OWL-S are not what they seem

HSMT J2EE & EJB & SOAP &...

W3C & verkkojulkaisun standardit

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

Web-teknologiat. XML-datan kysely Topi Sarkkinen

6 XML-työkalut 1. 6 XML-työkalut

Seitsemän syytä semanttiseen webiin. Eero Hyvönen Aalto-yliopisto ja HY Semanttisen laskennan tutkimusryhmä (SeCo)


XML Finland seminaari : Office 2007 XML dokumenttituotannossa

Heikki Helin Metatiedot ja tiedostomuodot

Avoimet standardit ja arkistointi

4 Kommentoitu johdanto XML-maailmaan

Hohde Consulting 2004

StanForD-XML. Juha-Antti Sorsa, Tapio Räsänen, Vesa Imponen

Järjestelmäarkkitehtuuri (TK081702) Avoimet web-rajapinnat

Digitaalisen median tekniikat. JSP ja XML

Semanttinen Web ja Webteknologiat

XPages käyttö ja edut Jarkko Pietikäinen toimitusjohtaja, Netwell Oy

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista

Metatiedot organisaatioiden sisällönhallinnassa

Ontologiat merkitysten mallintamisessa: OWL. Eeva Ahonen

W3C, XML ja tietojenkäsittely: Ihmisen ja tietokoneen yhteinen ymmärrys suoritettavasta tehtävästä ja XML-standardien merkitys tietosysteemeissä (MH)

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

Suunnitteluvaihe prosessissa

Neoxen Systems on suomalainen ohjelmistotalo. Olemme erikoistuneet tiedon- ja oppimisen hallinnan ratkaisuihin.

Ohjelmistoarkkitehtuurit. Kevät

Interaktiivisten järjestelmien arkkitehtuuriratkaisu, jolla käyttöliittymä erotetaan sovelluslogiikasta.

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

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

12 Pari sanaa sovelluskehityksestä

XML-datan kysely. Topi Sarkkinen. Seminaarityö. Helsinki HELSINGIN YLIOPISTO Tietojenkäsittelytieteen laitos

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Järjestelmäarkkitehtuuri (TK081702) AJAX, Asynchronous JavaScript And XML. AJAX, Asynchronous JavaScript And XML

7 Viestipohjaisten yritysjärjestelmien suunnittelumallit

5 XML Query Language. Skeemojen opiskelun myötä olemme polulla joka luontevasti johtaa ajatukseen XMLdokumenteista

Arkistoaineistojen sisällönkuvailu

6 Semanttinen Web 101

Arkkitehtuurikuvaus. Ratkaisu ohjelmistotuotelinjan monikielisyyden hallintaan Innofactor Oy. Ryhmä 14

Kehitysohje. ETL-työkalu. ExtraTerrestriaLs / Aureolis Oy

RDF ja RDFS. 8 RDF ja RDFS

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

2 Rakenteisten dokumenttien perusteet

Ajankohtaista Ilmoitin.fi:stä

12 Dokumenttiluokan toteuttamisesta

Helsingin yliopisto/tktl DO Tietokantojen perusteet, s 2000 Johdanto & yleistä Harri Laine 1. Tietokanta. Tiedosto

XML-pohjaisten standardien kehitystyö W3C:ssä: poimintoja tulevasta

13/20: Kierrätys kannattaa koodaamisessakin

Johdanto. Kiinteistöhuoltoyhtiö tarvitsee järjestelmän huoltopyyntöjen hallinnointiin

6 Semanttinen Web 101

Tiedonlouhinta rakenteisista dokumenteista (seminaarityö)

Verkkopalveluiden saavutettavuus

Yhteenvetoa XML:n sovellusalueista

Avoin data Avoin kirjasto Kuvailupäivät

Yhteentoimivuusvälineistö

Luento 8: XML-tuki ohjelmointikielissä & Web-palvelut

Ohjelmistojen mallintamisen ja tietokantojen perusteiden yhteys

Yhteentoimiva.suomi.fi - palvelukokonaisuuden ja työkalujen esittely

Semanttisen Webin mahdollisuudet yrityksille

Transkriptio:

XML-tietojenkäsittely Ossi Nykänen Tampereen teknillinen yliopisto (TTY), Digitaalisen median instituutti (DMI), W3C Suomen toimisto

Esitelmä Hyvin lyhyt versio: XML tarjoaa välineitä tietojenkäsittelyyn eri abstraktiotasoilla. XML-tekniikoiden hyödyt perustuvat yleensä XML-tiedon käsittelyn helppouteen sekä koeteltujen standardisovellusten hyödyntämiseen. Pidempi versio, otsikoita: XML-tiedon ohjelmallisen käsittelyn perusteet SAX, DOM XML-prosessorien hyödyntämisestä: XQuery...XML-middleware kohti datalähtöisiä sovelluksia: RDF Data Access Esityksen tavoite: luonnehtia matalan ja korkean XMLtietojenkäsittelyn suhdetta sekä sovellusongelmien jäsentämistä XML:ää hyödyntäen 2

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>... 4

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... 5

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 XSLTprosessori XSLT html muunnos Sovellus 3 XML-prosessori xml-dok.?-api Web Services -komponentti WS (Req/Prov) SOAP WS' palvelukuvaus... palvelukuvaus Sovellus 4 6

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" 7

Matalan tason XMLohjelmoinnista: SAX ja DOM

SAX: Simple API for XML SAX (1/2) on tapahtumapohjainen rajapinta XMLdokumenttien käsittelyyn lähdedokumentin loogiset osat nähdään siinä järjestyksessä kun ne tulevat dokumenttia luettaessa vastaan (v1 ei osaa tallettaa tiedostoja, eikä ymmärrä nimiavaruuksia) <?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> SAX-pohjaisen XMLohjelman suoritus ~ startdocument() startelement("muistio") startelement("luokitus") characters("hpnprojekti") endelement("luokitus") startelement("otsikko")... endelement("muistio") enddocument() 9

DOM: Document Object Model DOM (1/2/3) on objektipohjainen rajapinta XMLdokumenttien käsittelyyn dokumentti jäsennetään ensin objektipuuksi, jossa voidaan liikkua solmusta toiseen kyselyjen ja iteraattoreiden avulla vapaa liikkuminen puurakenteessa (hintana monimutkaisuus ja suurempi muistinkulutus) DOM-pohjaisen XML-ohjelman @pvm 2004-03... idea ~ while( <muistio> <luokitus> <otsikko> <kirjoittaja> <asia> HPN-pro... Uusi tilau... Teuvo O... Brasilian... (child=iterator.nextnode())!=null) { process(child); }... Element liiteelement = doc.createelement("liite"); inode.appendchild(liiteelem ent);... 10

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ä 12

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 13

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> 14

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" 15

Kohti datalähtöisiä sovelluksia

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 17

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) 18

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) 19

Lopuksi

Yhteenveto & kiitos XML luo yhteensopivan perustan ja menetelmiä mitä moninaisemmille sovelluksille XML sinänsä ei tietenkään ratkaise ongelmia mutta tarjoaa hyvät puitteet (teknisten suunnittelu-)ratkaisujen löytämiseen Menestyvä soveltaja tuntee sovelluksensa osaa perustekniikat (nyt XML) ja tuntee standardiratkaisut ja osaa hyödyntää niitä tarvittaessa Kysymyksiä, kommentteja? 21

Liite 1: lähteitä ja lisälukemista SAX ja DOM http://www.saxproject.org/ http://www.w3.org/dom/ XQuery, XSL ja WS http://www.w3c.org/xml/query http://www.w3c.org/style/xsl/ http://www.w3c.org/2002/ws/activity Semanttinen Web ja RDF Data Access (SPARQL) http://www.w3c.org/2001/sw/ http://www.w3.org/2001/sw/dataaccess/ + etsi termejä : www.google.fi, www.xml.com, jne 22