XML-tiedonhaku

XML-tiedonhaku tarkoittaa tiedonhakua rakenteisista dokumenteista, jotka on kuvattu XML-kielellä. XML-tiedonhaussa pyritään hyödyntämään XML-dokumenttien rakenteista informaatiota niin, että käyttäjälle voidaan palauttaa kokonaisten dokumenttien sijaan vain käyttäjän haun kannalta olennaisia dokumentin osia. XML-tiedonhaku on periaatteessa vain yksi rakenteisten dokumenttien tiedonhaun osa-alue, mutta se on nykyisin niin hallitseva, että siitä on käytännössä tullut synonyymi rakenteisten dokumenttien tiedonhaulle.
XML-tiedonhaku perustuu siihen, että XML-dokumenteissa voidaan erotella otsikot, tekstikappaleet, luvut ja muut tekstin elementit tietokoneen ymmärtämään muotoon ja määrittelemään tämän pohjalta dokumentin osien semanttiset suhteet. Tämä semanttinen erottelu mahdollistaa hakujen tehokkaamman kohdistamisen dokumentin eri tarkkuustasoille ja tarkempien hakutulosten palauttamisen käyttäjälle. XML-tiedonhaku hyödyntää tästä semanttisten suhteiden erottelusta syntyvää hierarkkista puurakennetta, jossa koko dokumentti muodostaa ylimmän tason ja pienimmät indeksoidut tekstin osat alimman tason - niin sanotut ”lehdet”. Puuhierarkian jokaista yksittäistä solua kutsutaan elementiksi.

XML-tiedonhaku verrattuna perinteiseen tekstitiedonhakuun

XML-tiedonhaussa haku voidaan kohdistaa koko dokumentin sijaan dokumentin osiin ja palauttaa hakutuloksena vain haun kannalta olennaiset osat. Jos esimerkiksi koko dokumentti on relevantti haun kannalta, palautetaan hakutuloksena koko dokumentti, mutta jos vain joku dokumentin osa tai osat ovat relevantteja, palautetaan ne. Relevanttien elementtien etsimisen lisäksi tavoitteena on palauttaa XML-dokumenttien puurakennetta käyttämällä hyväksi haun kannalta mahdollisimman relevanttia informaatiota optimaaliselta tarkkuustasolta. Haku voidaan periaatteessa kohdistaa myös yhtä aikaa sekä sisältöön että rakenteeseen. Tosin tutkimuksissa on havaittu, että tällainen haun rajaaminen rakenteen avulla ei vielä nykyisillä menetelmillä tehosta hakua.
XML-tiedonhaku on erityisen hyödyllistä silloin, kun dokumentit ovat pitkiä tai ne sisältävät informaatiota monista erilaisista aihealueista. Tällöin käyttäjä joutuisi tavallisessa tiedonhaussa käyttämään huomattavasti aikaa tiedon etsimiseen palautetun dokumentin sisältä ja tätä työtä voidaan vähentää palauttamalla vain käyttäjän kannalta olennaiset dokumentin osat.

Data- ja tekstiorientoitunut XML-tiedonhaku

XML-muotoinen informaatio jaotellaan yleensä data- ja tekstiorientoituneeseen sen muodon perusteella. Dataorientoituneella XML-informaatiolla tarkoitetaan tietokantakäyttöön tarkoitettua, enimmäkseen numeerista ja ennalta määriteltyihin arvoihin perustuvaa informaatiota, jossa tekstin osuus on pieni. Tekstiorientoituneet XML-dokumentit ovat yleensä ihmisten luettavaksi tarkoitettuja, niiden rakenteen kuvaus on epäsäännöllisempi ja kuvatut elementit tekstisisällöltään laajempia ja sisällöltään vaihtelevampia. Esimerkiksi XML-muotoiset kirjat ja sähköpostit ovat tekstiorientoituneita XML-dokumentteja.
XML-tiedonhaussa tekstiorientoituneiden dokumenttien hakemisessa käytetään usein perinteisen tiedonhakututkimuksen kehittämiä menetelmiä, joita on laajennettu rakenteisiin dokumentteihin. Yleensä kun XML:n yhteydessä puhutaan rakenteisen tiedon hakemisesta, viitataan nimenomaan tekstiorientoituneen XML-tiedon hakemiseen verrattuna tietokantakyselyihin, joita tehdään dataorientoituneelle tiedolle.
Perinteisesti tietokantoihin ja sisältöön kohdistuvat XML-tiedonhaun välineet ja menetelmät ovat olleet suhteellisen erillään toisistaan, mutta hiljalleen on syntynyt enemmän tarvetta näiden yhdistämiseen samoihin järjestelmiin. Usein samoissa järjestelmissä tarvitaan molempia lähestymistapoja ja niitä yhdistelemällä saadaan käyttäjän kannalta parhaat tulokset.

Indeksointi

XML-dokumenttien indeksoinnissa käytetään pääosin samoja menetelmiä kuin rakenteettomien dokumenttien indeksoinnissa. Lisävaatimuksia syntyy kuitenkin siitä, että XML-dokumenteissa hakuyksiköiden muoto ei ole niin rajattu kuin rakenteettomissa dokumenteissa, joissa on yleensä selvää, mikä indeksoitava kokonaisuus on. XML-tiedonhaussa vastaus käyttäjän antamaan kyselyyn voi olla koko dokumentti tai vain osa siitä, ja on monia tapoja määritellä indeksoitavat yksiköt. Lisäksi on päätettävä, mitkä elementit dokumentista indeksoidaan, koska kaikkien elementtien indeksointi ei välttämättä ole tarpeellista. 
XML-dokumentin elementtien indeksointi voidaan toteuttaa yksinkertaisimmillaan niin, että dokumentti korvataan indeksoitaessa elementillä ja indeksoidaan kaikki elementit järjestelmällisesti yksi kerrallaan. XML-kielen sisäkkäisestä hierarkkisesta luonteesta johtuen tässä niin sanotussa elementtipohjaisessa indeksoinnissa on kuitenkin ongelmansa. Esimerkiksi hierarkian viidennellä tasolla esiintyvä termi indeksoidaan viisi kertaa, koska se lasketaan esiintyväksi sekä alimmalla tasolla, että kaikilla sen yläpuolella samassa haarassa olevilla tasoilla. Puhdas elementtipohjainen indeksointi tuottaa usein erittäin laajoja indeksejä.
Elementtipohjaisen indeksoinnin ongelmien paikkaamiseksi on kehitetty useita vaihtoehtoisia indeksointimenetelmiä. Esimerkiksi sen sijaan, että indeksoidaan hierarkian kaikki tasot, voidaan indeksointi rajata vain hierarkian eri haarojen alimpiin elementteihin, ja päätellä sen jälkeen indeksoimatta jätettyjen elementtien relevanssi indeksoitujen elementtien perusteella. Toinen lähestymistapa on karsia hierarkian alinta tasoa indeksin keventämiseksi. Esimerkiksi tietyn ennalta määritellyn sanamäärän alittavat elementit voidaan jättää indeksoimatta. Indeksoinnissa on myös mahdollista luoda erillisindeksejä, jolloin jokaiselle eri elementtityypille luodaan erikseen oma indeksinsä ja hakutilanteessa jokaiselle näistä indekseistä suoritetaan haku erikseen ja tulokset näytetään käyttäjälle yhdistettynä.

Tulosten esittäminen

XML-tiedonhaun tulosten esittäminen eroaa rakenteettomiin dokumentteihin kohdistuvasta tiedonhausta siinä, että löydettyjen elementtien määrä on usein huomattavasti suurempi ja osumia voi löytyä useita samasta dokumentista, jolloin tuloslistaan syntyy päällekkäisyyttä. Haasteena on se, että käyttäjälle pitäisi pystyä toisaalta näyttämään riittävästi relevanttia informaatiota hänen hakunsa kannalta, mutta toisaalta hakutuloslista olisi pidettävä selkeänä.
Hakutulosten päällekkäisyys on erityinen haaste, koska tutkimusten mukaan käyttäjät eivät halua nähdä näitä päällekkäisiä tuloksia ja ne häiritsevät hakutulosten tulkintaa. Tämän vuoksi on kehitetty erilaisia menetelmiä päällekkäisyyksien vähentämiseksi käyttäjälle esitettävistä hakutuloslistoista. Karsimista voidaan suorittaa esimerkiksi näyttämällä vain tietyn tyyppiset tai kaikkein relevanteimmat elementit. Tällaisen raa’an karsimisen lisäksi käytetään monimutkaisempia menetelmiä, jotka huomioivat dokumentin puurakenteen tai järjestävät tuloksia erilaisilla algoritmeilla uudestaan ennen niiden näyttämistä käyttäjälle. Tulosten esittämistä on mahdollista selkeyttää myös niin, että käyttäjälle näytetään vain laajemman tason elementti ja piilotetaan sen alapuolella hierarkiassa olevat elementit oletuksena näkyvistä ja näytetään ne vain pyydettäessä.
Toinen erityispiirre tulosten esittämisessä on se, että hakutulosten konteksti jää helposti hämäräksi hakijalle, koska palautettavat tulokset voivat olla kontekstistaan erotettuja dokumentin osia. Tämän ratkaisemiseksi tulosten esittämiseen on kehitetty menetelmiä, joilla käyttäjälle voidaan näyttää yksittäisten elementtien lisäksi myös niiden laajempi konteksti. Tämä voidaan toteuttaa esimerkiksi esittämällä käyttäjälle hakutuloksen ohessa laajemman kokonaisuuden rakenne tai ryhmittämällä kaikki samasta dokumentista löytyneet osumat yhteen. Kontekstia voidaan vahvistaa myös näyttämällä käyttäjälle koko dokumentti, mutta kohdistamalla näkymä automaattisesti osuman mukaiseen kaikkein relevanteimpaan kohtaan dokumentissa.
XML-tiedonhaku mahdollistaa myös periaatteessa monenlaisia uusia tapoja esittää hakutuloksia esimerkiksi niin, että käyttäjälle kootaan eri lähteistä saaduista elementeistä kokonaan uusia dokumentteja. Tällaiset menetelmät ovat kuitenkin vielä nykyisellään suhteellisen kehittymättömiä ja perinteisemmät tuloslistaukset hallitseva tapa tulosten esittämiseen.

XML-tiedonhaun tutkimuksesta

XML-tiedonhaun tutkimusta on tehty 1990-luvun loppupuolelta lähtien, mutta aktiivisemmin tutkimus on edennyt vuonna 2002 käynnistetyn INEX-ohjelman (the Initiative for the Evaluation of XML Retrieval) myötä. INEX perustettiin alun perin yhteisten XML-tiedonhakujärjestelmien arviointimittareiden luomiseksi ja siitä on kehittynyt keskeinen keskustelufoorumi XML-tiedonhaun tutkijoille ja kanava erilaisten XML-tiedonhakumenetelmien vertailulle. INEX:n puitteissa pidetään myös yllä dokumenttikokoelmia XML-tiedonhaun testaamiseen ja kerätään dataa hakukyselyiden suorittamisesta ja relevanssiarvioista.
INEX:n puitteissa käydään keskustelua ja tutkitaan lukuisia eri XML-tiedonhaun osa-alueita, kuten XML:n hyödyntämistä erilaisten multimediakohteiden hakemisessa. Perinteisempien lähteiden osalta tutkitaan esimerkiksi XML:n hyödyntämistä kirjoihin kohdistuvissa hauissa. XML-tiedonhaun laajentamiseksi on alettu myös tutkia sisällöltään ja skeemoiltaan heterogeenisten XML-tietokantojen yhteishakujen toteuttamista. Näiden lisäksi INEX:n puitteissa tehdään myös käyttäjätutkimusta esimerkiksi keräämällä käyttäjien kokemuksia XML-tiedonhakujärjestelmistä käytöstä ja ideoita XML-tiedonhaun mahdollisista sovelluskohteista.
Suomessa XML-tiedonhaun tutkimus on keskittynyt Tampereen yliopiston TRIM-tutkimuskeskuksen alaisuudessa toimivaan FIRE-tutkimusryhmään (Finnish Information Retrieval Expert Group). FIRE:n TRIX-tutkimusprojektissa on tutkittu XML-tiedonhausta muun muassa indeksointia, hakujärjestelmiä, kyselykieliä, kontekstualisointia relevanssilajittelussa ja evaluointimenetelmiä. Myös FIRE:n OlapXML- ja InferXML-projekteissa on tutkittu XML-tiedonhakuun liittyviä kysymyksiä.