8 Tiedonhaun apuvälineet Tämän luentokerran tavoitteena on perehtyä erilaisiin tiedonhaun apuvälineisiin. Tiedonhaun ja hypermedian asiantuntijat katsovat maailmaa eri näkökulmista; pian tullaan huomaamaan, että tieteenaloilla on hyvinkin paljon yhteistä. Tiedonhausta tulee ehkä ensimmäineksi mieleen perinteinen avainsanahaku, joka a) ei toimi kunnolla tai b) on Google. Tiedonhaku on kuitenkin avainsanahakua laajempi kokonaisuus: tiedonhaun asiantuntijat esimerkiksi sijoittavat hypermedian (tai ainakin hypertekstin) osaksi tiedonhakua. Nyt tavoitteena on kartoittaa erilaisia lähestymistapoja tiedonhakuun, esitellä joukko tiedonhaun apuvälineitä ja selkeyttää tiedonhaun ja hypermedian yhteyksiä toisiinsa. Mikäli tiedonhakuun liittyvät asiat alkavat kiinnostamaan syvemmin, avainsanalla informaatiotutkimus löytyy verkosta rutkasti aihetta käsittelevää materiaalia. Tamperereen yliopistossa aihetta tutkii ja opettaa Informaatiotutkimuksen laitos. Tiedonhaun apuvälineiden ohella perehdytään Semanttisen Webin perusteisiin. Tiedonhaun osalta lähdemateriaalina on käytetty kirjaa Baeza-Yates, R., Ribeiro-Neto, B. Modern Information Retrieval, ACM Press, New York, US. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 104
Tiedonhausta Tiedonhaussa käyttäjällä on tavoitteena löytää tietoa (tai informaatiota) jostakin häntä kiinnostavasta asiasta. Tyypillinen käyttötapaus on se, että käyttäjä määrittelee tarpeensa hakuehtoina ja välittää ne tiedonhaun rutiineista vastaavalle järjestelmälle eli hakukoneelle, joka esittää hakuehtojen mukaiset tietoalkiot käyttäjälle hakutuloksen muodossa. Käsitettä relevanssi käytetään kuvaamaan hakutuloksen vastaavuutta hakuehtoihin. Hakukoneet järjestävät hakutulokset usein niiden oletetun (lasketun tai päätellyn) relevanssin perusteella. Relevanssi voidaan määritellä usealla eri tavalla. Kaksi keskeistä vaihtoehtoa ovat aiherelevanssi ja käyttäjärelevanssi. Aiherelevanssi voi yksinkertaisimmillaan tarkoittaa sitä, että käyttäjän syöttämien hakusanojen esiintymät eri hakutuloksissa lasketaan yhteen ja hakutulos järjestetään suuruusjärjestykseen esiintymien mukaan. Käyttäjärelevanssissa myös käyttäjä otetaan huomioon hakutulosten relevanssia määriteltäessä (vrt. mukautuva hypermedia: käyttäjämalli ja linkkien järjestäminen tai piilottaminen). MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 105
Tiedonhaun menetelmät Baeza-Yatesin ja Ribeiro-Neto jäsentävät tiedonhaun menetelmät seuraavasti: Information Retrieval Retrieval Browsing Ad hoc Filtering Flat Structure Guided Hypertext Tässä materiaalissa käsitteisiin viitataan seuraavasti: tiedonhaku (Informatio Retrieval), hakeminen (Retrieval), ad hoc (Adhoc), suodattaminen (Filtering), selaaminen (Browsing), rakenteeton selaaminen (Flat), rakenteeseen perustuva selaaminen (Structure Guided) ja hyperteksti (Hypertext). MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 106
Hakemiseen perustuvat menetelmät Hakemiseen (Retrieval) perustuvat tiedonhaun menetelmät voidaan jakaa toimintaperiaatteen perusteella kahteen luokkaan: Ad hoc: Käyttäjä hakee aktiivisesti tietoa hakukoneen tukemana. Tietosisältö on staattinen. Hakuehdot vaihtuvat käyttäjän toimesta. Perinteinen Web-hakukoneella tehtävä sanahaku on esimerkki ad hoc - tiedonhausta. Suodattaminen (Filtering): Käyttäjä määrittelee suodattimen, jonka perusteella tietosisällöstä poimitaan hakuehdon mukaiset tietoalkiot. Tietosisältö on dynaaminen: tietoalkioita lisätään ja poistetaan tiiviissä tahdissa. Hakuehdot pysyvät samana. Esimerkkejä suodattamiseen perustuvasta tiedonhausta ovat erilaiset vahtipalvelut (auto, asunto tai työpaikka) tai vaikkapa verkkopalvelun sisällön muutosten välittämiseen ja luokitteluun tarkoitettu RSS. Ad hoc -tiedonhaussa hakutulosten relevanssin määrittelemisestä vastaa yleensä hakukone. Suodattamisessa käyttäjä arvioi relevanssin itse. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 107
Selaamiseen perustuvat menetelmät Selaamiseen (Browsing) perustuvat menetelmät voidaan jakaa kolmeen luokkaan: Rakenteeton selaaminen (Flat): Tietosisältö esitetään rakenteettomana listana, jota käyttäjä voi selata. Listassa voidaan näyttää avainsanat ja muut tietosisällöstä kerätyt tiedot. Selaamisen avulla esimerkiksi uusi käyttäjä voi perehtyä tietosisältöön ja mahdollisesti siirtyä selaamiseen jälkeen käyttämään sanahakua. Rakenteeseen perustuva selaaminen (Structure Guided): Tietosisältöön voidaan liittää esimerkiksi erilaisten luokittelujärjestelmien eli taksonomioiden mukaista kuvailutietoa (metatietoa). Rakenteeseen perustuvassa selaamisessa käyttäjä käy läpi tietosisältöä navigoimalla luokittelujärjestelmän mukaisten rakenteellisten linkkien avulla. Esimerkiksi Yahoo!-hakukoneen Web-hakemistot vastaavat rakenteeseen perustuvaa selaamista. Hyperteksti (Hyperteksti): Hypertekstiin perustuvassa selaamisessa navigoimiseen käytetään rakenteellisten linkkien ohella assosiatiivisia linkkejä. Esimerkkejä hypertekstiin perustuvasta selaamisesta ovat BrainyEncyclopedia (http://www.brainyencyclopedia.com/) ja Wikipedia (http://www.wikipedia.org/). Hypertekstin hienoudet oletetaan tässä vaiheessa tutuiksi, joten keskitytään nyt hakemiseen. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 108
Hakukoneen toiminnallisuus Tyypillinen hakukone tarjoaa käyttäjälle näkymät hakemista ja hakutuloksen selaamista varten. Hakuehtojen syöttäminen hakukoneelle tapahtuu pääasiassa syöttämällä joukko avainsanoja tekstikenttään. Hakutulosta voidaan rajata myös erilaisiin kuvailutietoihin kohdistettujen ehtojen perusteella. Näitä voivat olla esimerkiksi dokumentin tekijä, viimeinen muokkauspäivä, kieli, tiedostomuoto tai dokumentin tekijän syöttämät avainsanat. Hakutulos esitetään tyypillisesti hakuehtoa vastaavien dokumenttien listana. Dokumentin valinnan tukemiseksi listaan kerätään dokumenteista keskeisiä tietoja, kuten osoite, otsikko, koko, tiedostomuoto tai ote sisällöstä. Ote sisällöstä voidaan valita siten, että se sisältää hakuehtona käytetyt termit. Näin käyttäjä pystyy arvioimaan, onko termejä käytetty halutussa asiayhteydessä. Myös mahdollisuudet hakutulosten listan järjestämiseen eri ominaisuuksien perusteella, tiettyä hakutulosta vastaavien dokumenttien etsimiseen ja kyselyn uusimiseen vanhan kyselyn pohjalta ovat hyödyllisiä. Googlen laajennettu haku (http://www.google.fi/advanced_search) mahdollistaa myös hakutuloksen suodattamisen. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 109
Sanahaku ja indeksointi Vapaatekstihaun toteuttamiseen on olemassa muutamia vaihtoehtoja: Ajonaikainen haku. Tietosisältö käydään ajonaikaisesti läpi ja sitä verrataan hakuehtoon. Ajonaikainen haku on tarkoituksenmukainen vaihtoehto, kun tietokanta on kohtuullisen kokoinen tai kun tietosisältö on jatkuvassa muutoksessa. Indeksointi. Indeksoinnissa haut kohdistetaan varsinaisen tietosisällön sijaan etukäteen muodostettuihin indekseihin eli hakemistoihin. Indeksointia käytetään, kun tietokanta on suuri tai kun tietosisältö on muuttumatonta tai muuttuu hitaasti. Edellisten yhdistelmä. Tietosisällöstä valitaan hakuehdon mukaiset tietoalkiot hakemiston perusteella. Tietoalkioiden relevanssin määrittelyssä käytetään apuna myös ajonaikaista hakua. Esimerkiksi sanaliittojen eli fraasien etsiminen voidaan toteuttaa hakemistoihin perustuvan ja ajonaikaisen haun yhdistelmänä. Esimerkiksi Googlen ja muiden Webin hakukoneiden toiminta perustuu tietosisällön laajuuden takia luonnollisesti indeksointiin. Hakemistoihin viitataan tiedonhaun yhteydessä usein käsitteellä käänteistiedosto (inverted file). MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 110
Esimerkki indeksoinnista Hakemisto voidaan suljetussa järjestelmässä tuottaa siinä vaiheessa, kun tietosisältö tallennetaan järjestelmään. Yksinkertaistettu esimerkki indeksoinnista levylaarin tapaan (ota huomioon, että todellisuudessa relaatiotietokannassa on oltava useita tauluja dokumenttien ja hakemiston esittämiseen): Cosmonauts idsurf idsurf... ovat Laika and the Cosmonauts ja Dick Dale and the Deltones. Näistä Laika... DB Cosmonautsin idlw Laika... idsurf(2), idlw indexer.php levylaari.php Levylaari idlw... Laika and the Cosmonautsin uusin levy Local Warming search.php Hae: Lähetä MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 111
Indeksointi Webissä Miten esimerkiksi Google todella löytää kaikki Webin dokumentit? Vastaus: Ei mitenkään, mutta varsin monta dokumenttia Googlen tietokannasta löytyy: Sivustojen lokitiedoista voi esimerkiksi katsella erilaisten selainten nimiä. Eräs lokitiedoissa usein esiintyvä selaimen nimi on Googlebot. Googlebot on eräs esimerkki ryömijästä (crawler) tai tylsästi hakurobotista, jonka tehtävänä on päivät pitkät seurata Webin linkkirakennetta eteenpäin jäsentämällä Web-dokumentteja ja käymällä niiden linkkejä järjestelmällisesti läpi. Googlebot toimittaa dokumentit Google-palvelulle indeksoitavaksi. Webin kaltaisessa maailmanlaajuisessa järjestelmässä hakurobotteihin perustuva ratkaisu on ainoa järkevä vaihtoehto dokumenttien indeksoimiseen. Vinkki: Ennen oman hakurobotin toteuttamista kannattaa tutustua hakurobottien ohjeistamiseen käytettäviin robots.txt-tiedostoihin (http://www.robotstxt.org/wc/norobots.html). Sivun indeksoinnin ja linkkien seuraamisen voi yrittää kieltää myös HTML-dokumentin metatiedoissa (<meta name="robots" content="noindex,nofollow">). MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 112
Tiedon visualisointi ja näkymäpohjainen hakeminen Baeza-Yates ja Ribeiro-Neto erottavat tiedon visualisointiin perustuvat menetelmät perinteisestä tiedonhausta. Ajatuksena tiedon visualisoinnissa on se, että tietoalkiot ja niiden väliset pyritään esittämään sovelluksessa käyttäjän näkökulmasta intuitiivisella tavalla. Tiedon visualisoimisessa käytetään apuna esimerkiksi erilaisia klusterointimenetelmiä: tietoalkioista pyritään ohjelmallisesti muodostamaan samaa asiaa käsitteleviä kokonaisuuksia. Esimerkiksi Kohosen itseorganisoituvia karttoja (Self-Organizing Maps) käyttävä Websom (http://websom.hut.fi/websom/) on esimerkki tietoa klusteroivasta visualisointimenetelmästä. Toinen lähestymistapa tiedon visualisointiin ovat erilaiset kuvailutietoon ja käsitemalleihin (ontology) perustuvat näkymäpohjaiset tiedonhaun apuvälineet, jotka tosin tietyssä mielessä edustavat selaamalla tapahtuvaa tiedonhakua. Kuvailutietoon perustuva näkymäpohjainen haku toimii usein tiedonhaun kannalta keskeisten tietosisältöä kuvailevien ominaisuuksien eli fasettien käyttämiseen. Esimerkiksi MuseoSuomi (http://museosuomi.cs.helsinki.fi/) ja Longwell (http://simile.mit.edu/longwell/) ovat esimerkkejä Semanttisen Webin keinoin esitettyjä kuvailutietoja hyödyntävistä sovelluksista. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 113
Esimerkki näkymäpohjaisesta hausta: MuseoSuomi Helsinkin Institute for Information Technology on toteuttanut MuseoSuomen, jossa käyttäjät voivat selata Suomen museoiden esineitä näkymäpohjaisen haun periaatteella. MuseoSuomessa yksittäiset fasetit ovat hierarkkisia. Fasetit Hakutulos MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 114
Johdanto Semanttiseen Webiin Semanttista Webiä on sivuttu useaan otteeseen opintojakson luentojen. Yhteys Semanttisen Webin ja tiedonhaun välillä on suoraviivainen: Semanttinen Web on keskeisessä roolissä kun tiedonhakua tarkastellaan koko Webin näkökulmasta. Kaksi lähestymistapaa Semanttisen Webin soveltamiseen: Tiedon julkaiseminen Semanttiseen Webiin muiden hyödynnettäväksi Semanttiseen Webiin julkaistun tiedon hyödyntäminen omassa sovelluksessa Nyt tavoitteena on käydä tiiviisti läpi Semanttisen Webin tekninen perusta ja pohtia Semanttisen Webin hyödyntämistä tiedon välittämisessä ihmisiltä toisille. On hyvä huomata, että vaikka Semanttisen Webin sovelluksen liittyvät usein olennaisesti tiedonhakuun, on Semanttisesta Webistä muuhunkin. Lisätietoa aiheesta TTY:n opintojaksoilla Rakenteiset dokumentit, Rakenteisten dokumenttien jatkokurssi ja XML XML Ohjelmistokehityksessä. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 115
Taustaa ja käsitteitä Klassisen tiedon määritelmän mukaan tieto on tosi, perusteltu uskomus. Suomessa käsitettä tieto käytetään yleisnimenä datalle, informaatiolle ja tietämykselle. Data on informaation uudelleen tulkittavissa oleva esitystapa, joka sopii siirtoon, tulkintaan tai käsittelyyn. Dataa voi käsitellä joko ihminen tai sitä voidaan käsitellä automaattisin menetelmin. Informaatio on älykkyyttä tai tietämystä, joka voidaan esittää kommunikointiin, varastointiin tai käsittelyyn soveltuvassa muodossa. Informaatiolla voidaan tarkoittaa myös datan ihmiselle tuottamaa merkitystä Metatieto tai kuvailutieto on rakenteista, jotakin muuta tietoa kuvaavaa tietoa, jota voidaan liittää esimerkiksi erilaisiin elektronisiin tallenteisiin. Tiedon täsmällinen esittäminen perustuu käsitteellistämiseen eli kiinnostuksen kohteena olevan ilmiön käsitteiden ja niiden välisten suhteiden täsmälliseen määrittelemiseen. Ontologia tai käsitemalli on käsitteellistetyn tiedon täsmällinen määritys. Semantiikka tarkoittaa (Semanttisessa Webissä) merkityksen täsmällistä määrittämistä siten, että tietoa voidaan käsitellä ohjelmallisesti tiedon merkityksen perusteella. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 116
Semanttisen Webin perusteet W3C:n Semanttinen Web on nykyisen World Wide Webin (WWW) laajennus, jossa tiedolle annetaan täsmällinen merkitys. Tavoitteena on se, että tietokoneet pystyvät paremmin auttamaan ihmisiä suurien tietomäärien käsittelyssä. Semanttisen Webin perustan muodostavat seuraavat tekniikat: Extensible Markup Language (XML): XML-kielen rooli on tiedon rakenteistaminen eli jakaminen riittävän pieniin palasiin, jotta sitä voidaan käsitellä järjestelmällisellä tavalla. Uniform Resource Identifiers (URI): URI-tunnisteiden avulla resursseille voidaan antaa maailmanlaajuisesti yksikäsitteiset tunnisteet. Resource Description Framework (RDF): RDF-kehyksen avulla voidaan määritellä kuvailutietoa eli tietoa resurssien ominaisuuksista. Kuvailutiedon avulla voidaan hallita rakenteista tietoa. Web Ontology Language (OWL): Yksikäsitteisten käsitemallien eli ontologioiden määrittelemiseen tarkoitettu kieli. Käsitemalleja tarvitaan, jotta kuvailutiedon tehokas hyödyntäminen päättelyn (infer) avulla on mahdollista. SW:ssä tietoa julkaistaessa kerrotaan tiedon merkitys, ei mahdollisia käyttökohteita. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 117
Semanttisen Webin protokollapino Semanttisen Webin tasot tai protokollapino Berners-Leen mukaan: Lähde: Berners-Lee, T. Semantic Web - XML2000, ks. http://www.w3.org/2000/talks/1206-xml2k-tbl/overview.html MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 118
Esimerkkejä Levyn tiedot XML-muodossa: <record genre="surf" year="1997"> <name>absurdistan</name> <artist>laika and the Cosmonauts</artist> </record> Levyn tiedot RDF-muodossa sarjallistettuna N3-kielellä: @prefix : <http://www.levylaari.fi/2005/record#>. @prefix genre: <http://www.levylaari.fi/2005/genre#>. @prefix artist: <http://www.levylaari.fi/2005/artist#>. :Absurdistan :genre genre:surf. :Absurdistan :year "1997". :Absurdistan :artist artist:laikaandthecosmonauts. OWL-kielellä voidaan määritellä levyn kuvailutietojen käsitemalli: @prefix : <http://www.levylaari.fi/2005/record#>. @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#>. @prefix rdfs: <http://www.w3.org/2001/01/rdf-schema#>. @prefix owl: <http://www.w3.org/2002/07/owl#>. @prefix genre: <http://www.levylaari.fi/2005/genre#>. :Record a owl:class. :genre a rdf:property; rdfs:domain :Record; rdfs:range genre:genre. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 119
SW-esimerkki: Dublin Core Dublin Core (DC) on yleisesti käytössä oleva kuvailutiedon rakennemalli, jonka keskeisenä tavoitteena on aineiston hallinta, erityisesti hakutulosten parantaminen erilaisissa järjestelmissä. DC:n alkuperäisiä suunnittelutavoitteita ovat yksinkertaisuus, yhteiset kuvailuperiaatteet, kansainvälisyys ja laajennettavuus. DC:n laaja suosio perustuu sen yksinkertaisuuteen ja vapauteen: kaikki 15 kenttää ovat vapaaehtoisia ja kutakin niistä voidaan toistaa tarvittava määrä. DC:n määrittelemät kentät ovat nimeke, tekijä, aihe, kuvaus, julkaisija, muu tekijä, aikamääre, laji, formaatti, indentifiointitunnus, lähde, kieli, suhde, kattavuus ja oikeudet. DC määrittelee rakennemallin kuvailutiedolle ottamatta kantaa lopulliseen esitysmuotoon. Käytännössä DC-muotoinen kuvailutieto onkin esitettävissä useilla eri tavoilla. Käytössä olevia esitysmuotoja ovat esimerkiksi HTML, XML ja RDF. Helsingin yliopisto ylläpitää sivustoa, jossa voi esimerkiksi kokeilla DC-muotoisen kuvailutiedon muokkaamista, ks. http://www.lib.helsinki.fi/cgi-bin/dc.pl. Tarkempi kuvaus Dublin Coren kentistä löytyy suomeksi Helsingin yliopiston sivuilta, ks. http://www.lib.helsinki.fi/dublin_core/dc-sfs.html. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 120
Esimerkki: levyarvostelun kuvailutiedot DC-muodossa Levyarvostelun DC-muotoiset kuvailutiedot HTML-kielellä esitettynä: <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/tr/xhtml-basic11/xhtml-basic10.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"/> <title>arvostelu: Laika and the Cosmonauts / Absurdistan</title> <link rel="schema.dc" href="http://purl.org/dc/elements/1.1/" /> <meta name="dc.title" content="arvostelu: LATC / Absurdistan" /> <meta name="dc.creator" content="j. Huhtamäki" /> <meta name="dc.subject" xml:lang="fi" content="surf" /> <meta name="dc.subject" xml:lang="fi" content="levyarvostelu" /> <meta name="dc.format" content="text/html" /> <meta name="dc.language" content="fi" /> </head> <body> <h1>laika and the Cosmonauts / Absurdistan</h1> <p> Uudellaan levyllään Absurdistan Laika and the Cosmonauts liikkuu... </p> </body> </html> MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 121
Kuvailutieto ja folksonomiat Folksomiat esittelevät vaihtoehdon järeille kuvailutietomäärityksille. Folksonomioiden periaate on yksinkertainen: 1. Käyttäjä lisää järjestelmän tietosisältöön avainsanoja ensisijaisesti itseään varten. Toimenpidettä kutsutaan usein taggaamiseksi (tagging). Tavoitteena on tietosisällön luokittelu ja hallinta. 2. Järjestelmä antaa käyttäjälle helpon mahdollisuuden tämän itsensä aikaisemmin käyttämien avainsanojen liittämiseen uusiin tietoalkioihin. 3. Järjestelmä kierrättää avainsanat myös muiden käyttäjien käyttöön, jotta avainsanoja voidaan käyttää assosiatiivisten linkkien muodostamiseen tietosisällön alkioiden välille. Folksonomiat ovat yksinkertaisuudestaan johtuen suosittuja Web 2.0 palveluissa. Yksinkertaisuus on toisaalta myös folksonomioiden ongelma: yksittäisen avainsanan hyöty (semantiikka) jää vähäiseksi kun sanan merkitystä ei ole sidottu vrt. erään yhtyeen kymmenen suosituinta avainsanaa last.fm-palvelussa: finnish (28), seen live (17), pop (14), finland (4), rock (3), female vocalists (3), suomi (3), suosikit (2), scandinavian (2), nostalgia (1) MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 122
SW-esimerkki: RSS RDF Site Summary (RSS) on eräs ensimmäisistä laajempaa suosiota saaneista Semanttisen Webin sovelluksista. RSS-protokollan käyttötarkoitus on tiedon syndikointi eli erilaisten koosteiden esittäminen ja julkaiseminen RSS-virtojen (RSS Feed) muodossa. RSS-asiakkaita ovat yksittäisiä virtoja yhdistelevät koostajat (aggregator). Yleisimmin RSS-protokollaa käytetään uutisten välittämiseen. RSS soveltuu kuitenkin koosteiden julkaisemiseen mistä tahansa sellaisesta tiedosta, jonka tietoalkiot voidaan yksilöidä URI-tunnistein. Esimerkkejä: verkkolokit (weblog, blog), ruokalistat, jne. RSS on myös klassinen esimerkki SW:n keskeisestä ongelmasta, Not Invented Here (NIH) -ilmiöstä. Sen sijaan, että soveltajat olisivat suosiolla ottaneet käyttöön yleisen ja yhteisen kielen RSS-virtojen esittämiseen, ovat eri tahot määritelleet omia RSSversioitaan. Erilaisia RSS-versioita ovat mm. RSS 0.90, RSS 1.0, RSS 2.0 ja Atom. RSS-protokollan kehityskulku muistuttaa HTML-kielen kehitystä 1990-luvulla: eri toimijat, lähinnä selainten valmistajat, määrittelivät kieleen omia laajennuksiaan. HTML-kielen kohdalla tilanne on nyt rauhoittunut ja eri toimijat ovat antaneet kielen kehittämisen ohjakset W3C:lle. RSS-protokollan tapauksessa tilanne on kuitenkin toinen, sillä W3C:llä ei ole suoraa roolia kehitystyössä. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 123
Esimerkki: Levylaarin RSS-virta Esimerkki levylaariin viimeksi lisättyjen levyjen tiedoista RSS 1.0 -muodossa esitettynä RDF/XML-kielellä sarjallistetussa muodossa: <?xml version="1.0" encoding="iso-8859-1"?> <rdf:rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns="http://purl.org/rss/1.0/"> <channel rdf:about="http://www.levylaari.fi/uutuudet.rss"> <title>levylaarin uutuudet</title> <link>http://www.levylaari.fi/</link> <description>levylaariin uusimmat levyt RSS 1.0 -virtana. Ota ja syndikoi!</description> <items><rdf:seq> <rdf:li resource="http://www.levylaari.fi/absurdistan"/></rdf:seq> </items> </channel> <item rdf:about="http://www.levylaari.fi/absurdistan"> <title>laika and the Cosmonauts: Absurdistan</title> <description>surf-jyrä Laika and the Cosmonautsin tuorein! </description> <link>http://www.levylaari.fi/latc/absurdistan.php</link> <dc:date>2005-03-30</dc:date> </item> </rdf:rdf> MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 124
Tiedon käsittely Semanttisessa Webissä Tiedon käsittelemisen menetelmät voidaan yleisesti jakaa deklaratiivisiin (declarative) ja proseduraalisiin (procedural). Deklaratiivisissa menetelmissä haluttu toiminnallisuus määritellään yleiselle sovellukselle osoitettavana ohjetiedostona. Proseduraalisissa menetelmissä toiminnallisuus määritellään suoraan ohjelmakoodiksi. XML-muotoisen tiedon käsitteleminen: Proseduraalisia menetelmiä ovat erilaiset ohjelmointirajapinnat, esimerkiksi Simple API for XML (SAX) ja Document Object Model (DOM). Deklaratiivisia menetelmiä ovat esimerkiksi W3C:n XQuery-kyselykieli ja XSL-muunnokset (XSL Transformations, XSLT) RDF-muotoisen tiedon käsitteleminen: Ohjelmointirajapintoihin perustuvia menetelmiä löytyy myös RDF-muotoisen tiedon käsittelemiseen, mutta niitä ei ole standardoitu. Esimerkiksi Jenan (http://jena.sourceforge.net/) RDF API on ohjelmointirajapinta RDFmuotoisen tiedon käsittelemiseen. W3C:n SPARQL Query Language for RDF on esimerkki standardista tavasta käsitellä RDF-muotoista tietoa deklaratiivisen menetelmän avulla. Muita vaihtoehtoja ovat ei-standardit RDF Query Language (RDQL), Sesame RDF Query Language (SeRQL) ja RDF Query Language(RQL). Java-soveltajien käytössä on paras valikoima välineitä, mutta ohjelmistokirjastoja löytyy myös PHP-kielelle. MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 125
Ongelmia Semanttisessa Webissä Semanttisen Webin soveltamiseen liittyy joukko käytännön ongelmia: Tiedon julkaisijoiden osaaminen vaihtelee, joten tiedon esitysmuotojen käyttäminen on ohjeistettava tarkasti. Julkaisijat saattavat myös tulkita esitysmuotoja eri tavoilla. Toimijoiden tarpeet poikkeavat toisistaan, joten esitysmuotojen standardointi on hidasta ja työlästä. Suuri osa Semanttiseen Webiin julkaistusta tiedosta on teknisestä näkökulmasta virheellistä tai sisällöltään epäluotettavaa. Tämä aiheuttaa sen, että tiedon oikeellisuus on yleensä tarkastettava. Ratkaisu: luottamus. Tiedon julkaisijat saattavat julkaista virheellistä tietoa myös tarkoituksellisesti. Esimerkiksi erilaisten tuotteiden valmistajat eivät aina halua julkaista tietoa tuotteidensa virheellisistä tai puutteellisista ominaisuuksista. Merkittävä ongelma Semanttisen Webin on se, että tietoa ei julkaista ohjelmallisesti käsiteltävässä muodossa. Syynä tähän on tietoa hyödyntävien sovellusten pieni määrä. Syynä pieneen määrään on se, että tietoa ei julkaista ohjelmallisesti käsiteltävässä muodossa. Muna vai kana? MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 126
Lopuksi Tiedonhaku jakaantuu luontevasti yksittäisen järjestelmän sisäisiin ja järjestelmärajat ylittäviin toiminnallisuuksiin. Tiedonhaun menetelmien kannalta em. kahtiajaolla ei ole merkitystä. Semanttinen Web esittelee tekniset puitteet tiedon täsmälliseen esittämiseen ja tiedon ohjelmalliseen käsittelemiseen merkitysten tasolla. Tämä antaa mahdollisuuden tiedon välittämiseen järjestelmien välillä. Tiedonhaun menetelmien ja Semanttisen Webin teknologisen perustan yhdistäminen antaa hypermediasovelluksen suunnittelijalle ja toteuttajalle joukon uusia mahdollisuuksia. Mahdollisuudet lisääntyvät entisestään kun päälle lisätään ripaus Web 2.0 ajattelua Keskeinen osa Semanttista Webiä on verkkopalveluiden välinen kommunikaatio, jonka perustan muodostavat W3C:n Web-palveluiden (Web Services) teknologiat. On hyvä huomata, että tiedonhaun teoriassa merkitykset rakentuvat suurelta osin tilastollisten menetelmien varaan (implisiittisesti) kun Semanttisessa Webissä resursseille pyritään antamaan merkitys erikseen (eksplisiittisesti) MATHM-57100 Hypermedian ohjelmointi (kevät 2006) 127