Sisällön automaattinen moniluokittelu Määrittelydokumentti Versio 1.2 Helsingin yliopisto Tietojenkäsittelytieteen laitos Ohjelmistotuotantoprojektiryhmä 5. Sisällön automaattinen moniluokittelu (Samo) Marko Konttinen Tarmo Pellikka Pia Rantalahti Kari Silén Markku Vahter Pirkko Wahlström 30.09.2002
VERSIOHISTORIA Versio Pvm Kommentti Tekijä 0.1 16.09.2002 ensimmäinen versio ryhmän kommentoitavaksi Pirkko Wahlström Pia Rantalahti 0.2 18.9.2002 päivitetty ryhmän selvät kommentit, epäselvät käsitellään 19.9.2002 Pirkko Wahlström Pia Rantalahti 0.3 19.9.2002 päivitetty ryhmän kommenttien mukaan Pia Rantalahti 0.4 20.9.2002 luokkakaavio ja sekvenssikaaviot lisätty Tarmo Pellikka 0.5 25.9.2002 Päivitetty asiakkaan kommenttien mukaan. Lisätty kuvat lukuihin 1 ja 2. Valmis katselmoitavaksi. 0.6 26.9.2002 Päivitetty ryhmän kommentit: korjaus kuvaan 2 ja lukuun 3. 1.0 30.9.2002 Katselmoinnissa esiin tulleet korjaukset tehty. Hyväksytty versio. Hyväksyjät: Eero Hyvönen ja Turjo Tuohiniemi. 1.1 3.10.2002 Lisätty esimerkki RDF-muotoisesta luettelokortista liitteeksi. 1.2 14.10.2002 Lisätty samo- ryhmäläisten nimet kansilehdelle. Pirkko Wahlström Pia Rantalahti Pirkko Wahlström Pirkko Wahlström Pia Rantalahti Pia Rantalahti Pia Rantalahti
SISÄLTÖ 1 JOHDANTO...1 1.1 PROJEKTIN ESITTELY...1 1.2 DOKUMENTIN SISÄLTÖ...1 1.3 SANASTO...1 2 JÄRJESTELMÄN RAJAUS...2 2.1 YLEISKUVA JÄRJESTELMÄN TOIMINTAYMPÄRISTÖSTÄ...2 2.2 TUTKIMUKSELLINEN TAVOITE...3 2.3 JÄRJESTELMÄN SIDOSRYHMÄT JA LIITTYMÄT...4 2.4 TEKNINEN TOTEUTUSYMPÄRISTÖ...4 2.5 LOPPUKÄYTTÄJÄT...4 2.6 RAJOITUKSET...5 3 JÄRJESTELMÄN TARJOAMAT PALVELUT...5 4 JÄRJESTELMÄN TOIMINNALLISUUDEN KUVAUS: KÄYTTÖTAPAUKSET.6 4.1 INDEKSOIJA...6 4.2 MUSEOAINEISTON HAKU...6 5 JÄRJESTELMÄN TIETOSISÄLLÖN KUVAUS...8 5.1 LUOKKAKAAVIO...8 5.2 SEKVENSSIKAAVIOT...9 5.2.1 Indeksoija...9 5.2.2 Museoaineiston haku...10 6 YKSITYISKOHTAISET VAATIMUKSET...10 6.1 KOKO JÄRJESTELMÄ...10 6.2 INDEKSOIJA...10 6.3 HAKUKONE...11 6.4 ONTOLOGIA...11 6.5 KÄYTTÖLIITTYMÄ...11 LIITE: ESIMERKKI RDF-MUOTOISESTA LUETTELOKORTISTA...12
1 1 Johdanto Tässä luvussa esitellään Samo-ohjelmistotuotantoprojekti ja sen jäsenet, tämän dokumentin sisältö ja muutamia tässä dokumentissa esiintyviä termejä. 1.1 Projektin esittely Tämä dokumentti määrittelee järjestelmän, joka toteutetaan Helsingin yliopiston tietojenkäsittelytieteen laitoksen (TKTL) sisällön automaattinen moniluokittelu (Samo) ohjelmistotuotantoprojektissa syksyllä 2002. Ohjelmistotuotantoprojektissa toteutettava järjestelmä on osa TKTL:n Semantic Computing tutkimusryhmässä kehitteillä olevaa Finnish Museums On-line (FMO) konseptia. FMO -hankkeen tarkoitus on kehittää museoille yhteiskäyttöinen www-ratkaisu Semantic Web teknologioiden pohjalta. Tässä ohjelmistotuotantoprojektissa toteutetaan FMO-ympäristöön suomen kielen ontologinen hakukone. Samo-ohjelmistotuotantoprojektiin kuuluvat projektipäällikkö Tarmo Pellikan lisäksi Marko Konttinen, Pia Rantalahti, Kari Silén, Markku Vahter ja Pirkko Wahlström. Projektin asiakas on professori Eero Hyvönen. Projektia ohjaa Jenni Valorinta ja projektin vastuuhenkilönä toimii Turjo Tuohiniemi. 1.2 Dokumentin sisältö Tämä dokumentti kuvaa toteutettavan järjestelmän toimintaympäristön ja sen rajaukset (luku 2) sekä järjestelmän tarjoamat palvelut (luku 3). Dokumentissa kuvataan sekä järjestelmän suunniteltu toiminnallisuus (luku 4) että sen tietosisältö (luku 5). Luvussa 6 on yksityiskohtainen lista järjestelmälle asetetuista vaatimuksista. 1.3 Sanasto FMO Finnish Museums On-line on konsepti, joka liittyy museoiden kokoelmien yhteiskäyttöön. Jena Jena on Java-API RDF-mallien käsittelyyn. Laventaminen Hakutermeille etsitään ontologiasta rinnakkaisia termejä ja termejä, jotka sijaitsevat käsitehierarkiassa alempana ja otetaan hakutulokseen mukaan myös näillä termeillä löydetyt luettelokortit. Ontologia Ontologia on formaali, eksplisiittinen määrittely yhteisestä käsitteistöstä. RDF Resource Description Framework on yleinen verkkoresurssien kuvauskieli. RDF:llä kuvataan URI-viittausten avulla osoitettujen verkkosisältöjen (resurssien) ja symbolien merkityksiä. RDF(S) Resource Description Framework (Schema) on kieli, jonka avulla voidaan kuvata RDF-sovelluksessa käytettävät termit ja asettaa tyyppirajoituksia olioille ja arvoille eri ominaisuuksiin liittyen. Schema Schema on malli, joka määrittelee yhtenäisen rakenteen ja sisällön. Semantic Web Semantic Web on on konsepti, jonka avulla on tarkoitus saada nykyinen tiedon visualisointiin (HTML) keskittyvä www älykkäämmäksi lisäämällä siihen erilaisia sisällöllisiä kuvauksia, semantiikkaa. Semantic Web, merkitysten Internet, konkretisoituu ontologia- ja XML-perusteisiksi semanttisiksi standardeiksi ja välineiksi, joiden avulla www:stä voidaan esittää sisältöjä.
2 Termi URI URL VESA XML YSA Indeksoijan tuottamia hakusanoja kutsutaan termeiksi. Uniform Resource Identifier on tunniste, jolla voidaan yksikäsitteisesti viitata mihin tahansa maailman verkon resurssiin. Uniform Resource Locator on www-linkeissä käytettävä tunniste, joilla voidaan viitata verkon tiedostoihin annetulla protokollalla. Vesa verkkosanasto on apuväline sekä painetun että elektronisen aineiston asiasanoitukseen ja aiheenmukaiseen tiedonhakuun. Extensible Markup Language on kieli, joka kuvaa tiedon rakenteen. Yleinen suomalainen asiasanasto, jota käytetään esimerkiksi Suomen yleisissä kirjastoissa aineiston sisällönkuvailussa ja tiedonhaussa. 2 Järjestelmän rajaus Tässä luvussa kerrotaan lyhyesti Samo-projektissa toteuttavan ohjelmiston liittymistä FMOympäristöön, ohjelmiston teknisestä toteutusympäristöstä, sekä ohjelmiston loppukäyttäjistä ja ohjelmiston rajoituksista. 2.1 Yleiskuva järjestelmän toimintaympäristöstä FMO hanke (katso kuva 1) pyrkii yhdistämään suomalaisten museoiden kokoelmatiedot loppukäyttäjän kannalta yhtenäiseksi selailtavaksi kokonaisuudeksi Internetiin. Kokoelmatietoja ei kuitenkaan haluta vain julkaista sellaisenaan Internetissä mielivaltaisena selailtavana linkkikokoelmana. Sen sijaan eri museoiden tiedot halutaan yhdistää kokonaisuudeksi, joka näyttäytyisi loppukäyttäjälle paitsi yhtenäisenä myös sisällöllisesti linkitettynä www-avaruutena. Helsingin yliopiston tietojenkäsittelytieteen laitoksen Semantic Computing tutkimusryhmä kehittää museoiden kokoelmatietojen yhteiskäyttöön ratkaisua Semantic Web teknologioiden pohjalta. Hankkeen testimateriaalina on Kansallismuseon, Espoon kaupunginmuseon ja Yliopiston museon (kuvatietokanta) XML Scheman mukaisesti yhtenäistetyt kokoelmatiedot. Ontology editor Ontologia RDF(S) Vocabulary Käyttäjä WWW-selain Ontogator server CLIENT SERVER Web crawler Metadata editor RDF instances: semantic interoperability XML repository: syntactic interoperability Transformer I Transformer II RDF Schema XML Schema Espoo City Museum National Museum Heterogeneous Distributed Databases Kuva 1 FMO-ympäristö
3 Jokaista museoesinettä vastaa sähköisessä muodossa oleva luettelokortti. Eri museoiden luettelokortit yhdistetään ensin rakenteen tasolla eli ne muunnetaan XML-muotoon (Transformer 1 ja Transformer 2) ja talletetaan yhteiseen tietokantaan (XML repository). XML Schema määrittele XML-muotoisille luettelokorteille yhtenäisen rakenteen ja sisällön. Yhtenäisen XML-rakenteen omaavat luettelokortit yhdistetään edelleen myös semanttisen tietosisällön tasolla: luettelokortit yhdistetään yhtenäiseen käsitehierarkiaan eli ontologiaan metadataeditorin avulla. RDF Schema määrittelee ontologian. Rakenteellisesti ja semanttisesti yhtenäistettyjen luettelokorttien esittämä metadata kootaan edelleen yhteiseen RDFperusteiseen semanttiseen järjestelmään (ontogator server). Sisällön automaattinen moniluokittelu ohjelmistotuotantoprojektin tavoitteena on kehittää ontologiaperustainen hakutoiminto FMO-ympäristöön. 2.2 Tutkimuksellinen tavoite Järjestelmän tarkoituksena on selvittää, miten ontologista tietoa voitaisiin hyödyntää hakukoneen toteutuksessa. Ontologia käsitetään tässä yhteydessä käsitehierarkiaksi tai luokittelujärjestelmäksi, jonka perusteella maailma jakautuu eri näkökulmiin. Esimerkiksi museokokoelman näkymiä voisivat olla esinetyyppi, materiaali, esineen ikä, valmistaja tai käyttöpaikka. Monia näistä näkymistä vastaa suoraan RDF-muotoisten luettelokorttien rakenne-elementin sisältö (katso tämän dokuementin liitteestä esimerkki RDF-muotoisesta luettelokortista). Luettelokorteissa on myös kontekstitietoa, joka on talletettu kolmella eri tavalla: luokittelu, asiasanoitus ja vapaa kuvailu. Perinteisessä hakukonetoteutuksessa laadittaisiin käänteisindeksi museo-objektin kuvailussa käytetyistä termeistä luetteloituihin tietueisiin. Haun tulokset tuotettaisiin indeksistä annettujen hakusanojen perusteella. Tällöin ei välttämättä käytetä hyväksi kaikkia luokittelun, asiasanoituksen ja vapaan kuvailun tarjoamia mahdollisuuksia. Erityisesti seuraavat perinteiseen lähestymistapaan liittyvät ongelmat pyritään ratkaisemaan Samo-projektissa ontologiatekniikoiden avulla: Semanttisten suhteiden hyödyntäminen: ontologioita voidaan käyttää suoraan hakujen laventamiseen ja leikkaamiseen semanttisten suhteiden avulla. Taivutusmuodot ja sanajohdot: Indeksoinnissa ja haussa sovelletaan Connexor Oy:n morfologista analysaattoria sanamuotojen yhteismitallistamiseksi perusmuotoon. Asiasanoituksen ja luokittelun epäyhtenäisyys: Laaja ontologia sallii joustoa erilaisiin käytäntöihin. Riittää, että nämä käytännöt tunnistetaan ja kirjataan kerran ontologiaan yhteisesti sovitulla tavalla. Yksinkertaisimmillaan ontologiassa voidaan esimerkiksi luetella eri tahojen käyttämät synonyymit. Tämän jälkeen mikä tahansa synonyymeistä tuottaa hakusanana saman tuloksen.
4 2.3 Järjestelmän sidosryhmät ja liittymät Kuva 2 esittää sidosryhmäkaaviota, josta ilmenee tässä projektissa toteutettavat komponentit sekä liittymät jo toteutettuihin FMO-komponentteihin. Indeksi Termejä indeksiin Indeksoija Jena-rajapinta Haun mukaiset termit Haun tulokset Kyselyt RDFtiedostoihin Hakukone Ontologia FMO-hanke Konfiguraatiotiedosto Haku sana(t) Haun tulokset Esinetiedot RDFmuodossa Tiedostoja Järjestelmän ylläpitäjä wwwkäyttöliittymä Kuva 2 Sidosryhmäkaavio Samo-projektissa toteutettavat järjestelmän osat on kuvassa erotettu harmaalla taustavärillä. 2.4 Tekninen toteutusympäristö Indeksoija on komentorivityökalu, joka hyödyntää Connexor Oy:n morfologista analysaattoria. Indeksitermit talletetaan indeksitietokantaan, jonka tyyppi määritellään tarkemmin myöhemmin. Ontologioiden käsittelyyn käytetään Jenaa. Hakukone ja www-käyttöliittymä toteutetaan Javalla TKTL:n ympäristössä käytössä olevalla versiolla 1.4.0. Käyttöliittymä toimii ainakin Mozilla 6 ja Internet Explorer 5.5 selaimilla. 2.5 Loppukäyttäjät Kuka tahansa www-käyttäjä, samoin kuin museohenkilökunta itse, voi ohjelmiston avulla hakea aineistoa museoiden kokoelmista. WWW-käyttäjät voivat tiedoiltaan ja taidoiltaan poiketa toisistaan paljonkin.
5 Indeksin tekijä tuottaa toteutettavan ohjelmiston avulla RDF-muotoisista luettelokorteista indeksin. 2.6 Rajoitukset Indeksoija indeksoi RDF-muotoisia tietueita. Testiaineistona käytetään Tietojenkäsittelytieteen laitoksella tehtyä tekstiilialan testiontologiaa ja YSAn RDF(S) versiota. Järjestelmän toimivuus osoitetaan kahdella aineistolla: Kansallismuseon esinetietokanta Ateneumin kuvatietokanta 3 Järjestelmän tarjoamat palvelut Järjestelmä tarjoaa hakukoneen (tiedon etsiminen hakusanan tai -sanojen perusteella) Järjestelmä osaa tehdä haun käyttäjän antaman hakusanan, sanaliiton tai Boolen logiikan mukaisen haun. Hakukone osaa lukea ontologioita ja indeksiä. Järjestelmä osaa lukea ontologian RDF(S)-muotoisena tiedostona ja käyttää ontologioita hakusanojen laventamiseen. Hakukone osaa hakea käyttäjän antamaa Boolen logiikan mukaista hakua vastaavat termit indeksistä, esimerkiksi t1 & -t2, t3&t2, t4, jossa t1-t4 vastaavat hakusanoja ja merkit & ja - Boolen operaattoreita JA ja EI. Katso esimerkkejä Boolen operaattoreista ja niiden käytöstä luvussa 4.2 esitetystä käyttötapauksesta. Hakukone osaa tulostaa haun tulokset käyttäjälle niiden relevanssin mukaan järjestettynä. Relevanssin laskemiseen käytettävä metriikka määritellään myöhemmin. Virhetilanteessa järjestelmä tulostaa virheilmoituksen. WWW-käyttöliittymä tiedon etsimiseen hakusanan tai -sanojen avulla Järjestelmä tarjoaa www-pohjaisen käyttöliittymän tietojen etsimiseen ja haun tuloksen näyttämiseen. Järjestelmä tulostaa käyttäjälle haun tulokset URL-listana. Lista muodostuu RDFkorteista. Järjestelmä osaa avata käyttäjän valitseman hakutuloksen helposti luettavassa muodossa mahdollisen korttiin liittyvän kuvan kanssa. Järjestelmä osaa muodostaa indeksin Indeksointiin käytetään Connexor Oy:n valmista työkalua. Tällöin indeksi saadaan automaattisesti. Syötteeksi indeksoijalle annetaan konfiguraatiotiedosto, indeksi ja indeksoitavat RDFtiedostot. Konfiguraatiotiedosto määrittelee, mitä elementtejä RDF-tiedostosta indeksoidaan. Tuloksena saadaan valmis indeksi, jossa indeksin hakusanoilla on valmiiksi laskettu painoarvo väliltä 0...1.
6 4 Järjestelmän toiminnallisuuden kuvaus: käyttötapaukset Tässä luvussa esitellään toteutettavan ohjelmiston toiminnallisuus kahtena käyttötapauksena, jotka ovat indeksoija ja museoaineiston haku. 4.1 Indeksoija Käyttäjä: Museotyöntekijät päivittävät museoesineitä kuvaavia RDF-muotoisia luettelokortteja ja luovat uusia kortteja. Ohjelmiston ylläpitäjä voi käynnistää indeksoinnin aina halutessaan. Tällöin koko RDF-materiaali indeksoidaan kokonaisuudessaan uudelleen. Syöte: Indeksoija on komentorivityökalu, joka saa syötteenään XSL-muotoisen konfiguraatiotiedoston, indeksoitavien RDF-muotoisten luettelokorttien osoitteet sekä indeksitietokannan osoitteen. Indeksoija lukee konfiguraatiotiedostosta tiedon siitä, mitkä RDF-tiedoston kentät indeksoidaan. Toiminta: Indeksoija lukee konfiguraatiotiedostosta indeksoitavat elementit ja poimii syötteenä saaduista RDF-muotoisista luettelokorteista vastaavien kenttien sisällöt indeksoitavaksi. Tämän jälkeen indeksoija palauttaa termit morfologisen analyysin perusteella perusmuotoon. Indeksoija poimii indeksitermeiksi vain substantiivit. Jokaisesta termistä talletetaan myös tieto siitä, mistä RDF-kortin kentästä termi on poimittu. Tämän jälkeen termit, niiden kenttätieto ja viittaukset RDF-korttiin, jossa termi esiintyy, talletetaan indeksiin. Sijaintiviittaus voi olla esimerkiksi URI. Katso myös käyttötapausta vastaava sekvenssikaavio luvussa 5.2.1. Tuloste: Termistä talletetaan indeksiin itse termi, luettelokortin kenttä, josta termi löytyi sekä viittaus RDF-kortin sijaintiin. Päivityksen jälkeen indeksitietokannan sisältö vastaa luettelokorttien sisältöä. Virhetilanteet ja niistä toipuminen: Konfiguraatiotiedostoa ei ole tai se on korruptoitunut: virheilmoitus käyttäjälle. RDF-kortteja ei ole tai niistä ei löydy indeksoitavia kenttiä: virheilmoitus käyttäjälle. Indeksitietokantaa ei voida päivittää: virheilmoitus käyttäjälle. Virheilmoitukset tulostetaan stderriin. 4.2 Museoaineiston haku Käyttäjä: Kuka tahansa www-käyttäjä voi samoilun eli www-sivujen ja linkkien selailun lisäksi käyttää hakutoimintoa löytääkseen haluamaansa aineistoa museoiden kokoelmista. Syöte: Hakukone saa syötteen sekä käyttäjältä www-käyttöliittymän kautta että konfiguraatiotiedostosta. Hakukone lukee konfiguraatiotiedostosta tiedon siitä, mistä RDF-tiedoston kentistä löytyneille hakusanoille annetaan suurin painoarvo ja järjestelee hakutuloksen painoarvon mukaiseen järjestykseen. Käyttäjä antaa www-käyttöliittymässä yhden tai useampia hakusanoja. Hakusanojen muotoa ei ole rajoitettu. Lisäksi käyttäjä voi yhdistellä hakusanoja Boolen operaattoreilla. Hakukone hyväksyy syötteekseen JA-, TAI- sekä EI- operaattoreilla muodostetut hakulauseet, joista
7 seuraavassa annetaan esimerkit. Boolen operaattorit syötetään hakulauseessa suuraakkosin ja suomen kielellä. JA-operaattori (looginen konjunktio) kaventaa hakua. JA-operaattoria käytetään silloin, kun halutaan JA-operaattorilla yhdistettyjen hakusanojen esiintyvän samassa dokumentissa. Esimerkiksi hakulause kissat JA koirat antaa hakutulokseksi vain ne dokumentit, joissa esiintyy molemmat hakusanat. TAI-operaattori (looginen disjunktio) laajentaa hakua. TAI-operaattoria voidaan käyttää laajentamaan hakua koskemaan hakutermien synonyymeja tai muita läheisiä sanoja. Esimerkiksi hakulause kissat TAI katit antaa tulokseksi ne dokumentit, joissa esiintyy molemmat hakusanat tai toinen niistä. EI-operaattori (looginen negaatio) karsii hakutulosta. EI-operaattori sulkee pois sanat ja käsitteet, joiden ei haluta esiintyvän hakutuloksessa. Esimerkiksi hakulause koirat EI lelukoirat rajaa lelukoirat hakutuloksen ulkopuolelle. Sulkeita voidaan käyttää hakusanojen ryhmittelyssä. Sanaliitot tai fraasit erotetaan lainausmerkeillä, esimerkiksi Suomen lippu. Lisäksi käyttäjä voi määritellä, haluaako hän hakutulokseen sisältyvän vain hakulauseessa olevat sanat tai kuinka monta hierarkiatasoa hakusanoja laajennetaan ontologiahierarkiassa. Toiminta: Hakukone vastaanottaa käyttöliittymään syötetyn hakulauseen. Jos hakulause sisältää Boolen operaattoreita, hakukone ratkaisee niiden merkityksen. Hakukone käyttää morfologista analysaattoria palauttamaan hakusanat perusmuotoon. Hakusanat lavennetaan ontologian perusteella eli käsitehierarkiasta etsitään hakusanojen suppeammat termit hierarkiassa alaspäin. Oletusarvoisesti hakusanat laajennetaan yksi hierarkiataso alaspäin. Myös hakutermien mahdolliset synonyymit etsitään ontologiasta. Löydetyt hakusanat, tieto siitä, missä RDF-tiedoston kentässä sana on esiintynyt ja sanoja vastaavien RDF-tiedostojen sijaintitiedot etsitään indeksistä. Hakukone lukee konfiguraatiotiedostosta tiedon siitä, missä RDF-tiedoston kentässä esiintyneet sanat saavat suuremman painoarvon ja järjestelee hakutuloksen painoarvon mukaiseen järjestykseen. Esimerkiksi asiasanakentässä esiintynyt sana voi saada suuremman painoarvon kuin vapaatekstikentässä esiintynyt sana. Hakutulos tulostetaan käyttöliittymään käyttäjän selattavaksi. Katso myös käyttötapausta vastaava sekvenssikaavio luvussa 5.2.2. Tuloste: WWW-käyttöliittymään tulostuu käyttäjän selailtavaksi painoarvon mukaisesti järjestetty linkkilista hakutuloksista. Linkkiä klikkaamalla käyttäjä pääsee lukemaan HTML-muotoon konvertoitua RDF-tiedostoa. Myös tiedostoon mahdollisesti liittyvät kuvat tulostetaan wwwkäyttöliittymään. Virhetilanteet ja niistä toipuminen: Tietokanta tai ontologia ei ole käytössä: käyttöliittymään tulostetaan virheilmoitus käyttäjälle.
8 5 Järjestelmän tietosisällön kuvaus Tässä luvussa kuvataan toteutettavan ohjemiston tietosisältö luokkakaaviona sekä esitetään luvussa 4 kuvattuja käyttötapauksia vastaavat sekvenssikaaviot. 5.1 Luokkakaavio Järjestelmä voidaan jakaa neljään toteutettavaan osajärjestelmään: indeksoija, hakukone, ontologia ja käyttöliittymä. Seuraavassa kuvassa esitetään järjestelmää vastaava luokkakaavio. IndexMain Indexer Term + main (args : String[]) - index (index : Index, urls : File, xslconfig : file) + createindexer () : Indexer 1 + feedtext (text : String) + getterms () : Term[] produces # Term (keyword : String) + getname () : string + getdocuments () : DocumentRef[] + setdocumentlocations (loc : URL) 0..* javax.servlet.http.httpservlet SearchServlet 1 Index + add (t : Term) + getterm (keyword : String) : 1 0..* DocumentRef - weight : float - location : + doget (request : HttpServletRequest, response : Http 0..* Ontology 1 + gethyponyms (keyword : String) : string[] uses -> <- uses 0..* SearchEngine 1 + search (str : String) : Document Ref[] + setontology (o : Ontology) : void 1..* + parse () : void Kuva 3 Luokkakaavio DocumentRef Termiin liittyy painoarvo ja sijainti. Index (Indeksi) Indeksi on tietokanta, johon termit on tallennettu. Indexer (Indeksoija) Indeksoija tuottaa RDF-korteista termit ja tallettaa ne indeksitietokantaan. IndexMain Indeksoija saa syötteenä RDF-kortit, XSL-muotoisen konfiguraatiotiedoston ja indeksitietokannan sijainnin. Konfiguraatiotiedostossa kerrotaan, mitkä elementit RDF-korteista on tarkoitus indeksoida. Ontology (Ontologia) Haun perustana käytettävät sanastot ja luokittelut ovat RDF(S)-muodossa olevia ontologioita. Periaatteessa mikä tahansa RDF(S)-sanastojen joukko voi olla haun perustana.
9 SearchEngine (Hakukone) Hakukone käyttää RDF-tietovarastoa, indeksiä ja ontologioita. Hakulauseessa voidaan käyttää Boolen operaattoreita. SearchServlet Vastaanottaa käyttäjän hakuja ja välittää hakukoneen tulokset käyttäjälle. Term Sisältää indeksiin lisättävän termin tiedot. 5.2 Sekvenssikaaviot 5.2.1 Indeksoija Kuva 4 esittää luvussa 4.1 kuvatun käyttötapauksen, indeksoija, sekvenssikaaviona. : IndexMain : Index : Indexer : Term : indeksoija main (String[]) createindexer ( ) createindex ( ) index (Index, File, file) feedtext (String) getterms ( ) setdocumentlocations (URL) add (Term) for each URL in the list Kuva 4. Indeksin päivittäminen käyttötapaus sekvenssikaaviona.
10 5.2.2 Museoaineiston haku Kuva 5 esittää luvussa 4.2 kuvatun käyttötapauksen, museoaineiston haku, sekvenssikaaviona. : SearchServlet : SearchEngine : Index : Ontology : HTML-sivu doget (HttpServletRequest, HttpServletResponse) search (String) parse ( ) gethyponyms (String) getterm (String) calc ( ) Kuva 5. Museoaineiston haku käyttötapaus sekvenssikaaviona 6 Yksityiskohtaiset vaatimukset Tässä luvussa luetellaan tärkeimmät vaatimukset paitsi koko järjestelmälle myös erikseen indeksoijalle, hakukoneelle, ontologialle ja käyttöliittymälle. 6.1 Koko järjestelmä Yleiskäyttöisyys Järjestelmä ei ota kantaa ontologian tai RDF-tietovaraston sisältöön vaan on tässä suhteessa yleiskäyttöinen. Järjestelmän toimivuus osoitetaan kahdella aineistolla: Kansallismuseon esinetietokanta Ateneumin kuvatietokanta Käytettävyys Järjestelmän tulee olla helppokäyttöinen ja intuitiivinen. Käyttöliittymän tulee neuvoa käyttäjää. Ylläpidettävyys Järjestelmä toteutetaan niin, että sen ylläpitäjän on helppo vaihtaa konfiguraatiotietoja. Dokumentointi Järjestelmän mukana asiakkaalle toimitetaan järjestelmän käyttöohje (Help-valintana hakukoneen käyttoliittymässä) sekä ohje indeksin tekemiseen. 6.2 Indeksoija RDF-kortilta on voitava valita ne elementit, jotka otetaan mukaan indeksiin.
11 Indeksoija tuottaa termejä, jotka voidaan tallettaa tietokantamuotoisen indeksiin. Indeksiin talletetaan termien lisäksi tieto, missä RDF-kortin kentässä termi on sijainnut sekä viittaus RDF-korttiin. 6.3 Hakukone Ottaa syötteekseen hakulauseen ja konfiguraatiotiedoston ja käyttää RDF-tietovarastoa, indeksitietokantaa ja ontologiaa. Hakulause voi olla yksittäinen sanaliitto, hakutermi tai monta termiä yhdistettynä Boolen operaattoreilla. Hakukone analysoi hakulauseen eli palauttaa hakusanat perusmuotoon Connexorin työkalua käyttäen sekä analysoi mahdollisten Boolen operaattorien merkitykset. Hakukone antaa uudelleenmuotoillun hakulauseen ontologia-osiolle lavennettavaksi. Hakukone etsii indeksistä ontologiasta löytyneet termit. Hakutulos esitetään konfiguraatiotiedoston osoittamassa järjestyksessä. 6.4 Ontologia Ontologiaosajärjestelmä käyttää Jenaa ontologioiden käsittelyyn. Ontologiaosajärjestelmä saa hakukoneelta hakulauseen. Ontologiaosajärjestelmä etsii ontologiasta hakutermien synonyymit. Ontologiaosajärjestelmä etsii ontologiasta hakusanojen alakäsitteet niin monesta hierarkiatasosta kuin hakulauseessa määritellään. 6.5 Käyttöliittymä Indeksoija on komentorivityökalu. Hakukoneen www-käyttöliittymä toimii Internetissä yleisimmillä selaimilla. Hakukoneen www-käyttöliittymään siihen sisältyy lyhyt ohjedokumentti.
12 LIITE: Esimerkki RDF-muotoisesta luettelokortista <rdf:rdf xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#' xmlns:ns0='www.cs.helsinki.fi/group/meedio#' > <rdf:description rdf:about='http://www.cs.helsinki.fi/group/meedio#kansallismuseo_13_r yijyt_1'> <rdf:type rdf:resource='www.cs.helsinki.fi/group/meedio#ryijyt'/> <NS0:synonyyminimi>RÄtti</NS0:synonyyminimi> <NS0:MASA_asiasanoitus>www.cs.helsinki.fi/group/meedio#MASA</NS0:MASA _asiasanoitus> <NS0:tekstiilikuidun_nimi>www.cs.helsinki.fi/group/meedio#Siemenkuidu t_eli_puuvilla</ns0:tekstiilikuidun_nimi> <NS0:objektin_nimi>ryijy</NS0:objektin_nimi> <NS0:omistajat>http://www.cs.helsinki.fi/group/meedio#kansallismuseo_ 13_Yhdistys_2</NS0:omistajat> <NS0:valmistajat>www.cs.helsinki.fi/group/meedio#tekstiiliontologiat_ 00375</NS0:valmistajat> </rdf:description> <rdf:description rdf:about='http://www.cs.helsinki.fi/group/meedio#kansallismuseo_13_y hdistys_2'> <rdf:type rdf:resource='www.cs.helsinki.fi/group/meedio#yhdistys'/> <NS0:osoite>Helsinki</NS0:osoite> <NS0:tunniste>Museovirasto</NS0:tunniste> </rdf:description> </rdf:rdf>