Thomas Flemming, UiO/USIT
Dokumenthistorikk
Første versjon november 2003
Utvidet mars 2006
Hva er emnekart. Hva kan emnekart brukes til. Forskjeller på emnekart og relasjonsdatabaser.
Emnekart (topicmaps) er en standard for lagring av informasjon om emner og hvordan disse emnene forholder seg til hverandre som i et kart. Et emnekart kan for eksempel bestå av alle oppslagsordene i et vanlig leksikon. Hvert oppslagsord vil da kalles for et emne. Koblingene mellom oppslagsordene kalles for assosiasjoner, og selve artikkelteksten i leksikonet kalles en forekomst. Emnekart standardenr består avet standard filformat, XML Topicmaps eller XTM, som gjør at man kan eksportere eller importere leksikonet. Emenkartstandardene inneholder også mekanismer og regler for for hvordan man kan flette sammen to emnekart til et emnekart. His du har to helt ulike norske leksikon kan du flette de to tilsammen til et leksikon. Skal du legge leksikonet ut på web finnes det allerede ferdige komersielle webløsninger som gjør dette. Spesielt innen området 'knowledge management' er det mange bruksmuligheter for emnekart.
Mens en typisk database inneholder ulike tabeller, inneholder en database for emnekart altid de samme tabellene. Den viktigste delen i et emnekart er emner. I et leksikon vil alle oppslagsord være et emne. Emnene er koblet sammen med assosiasjoner. I et emnekart for leksikon vil man ha en assosiasjon av typen "se også" mellom en god del av oppslagsordene. Forekomster er som regel enten ren tekst som knyttes til et emne eller en link til en webside med informasjon.
I tilegg til de tre basisbegrepene emner, assosiasjoner og forekomster inneholder emnekart også en del mer avanserte mekanismer for å blant annet lagre flere navn på samme emnet. I et leksikon vil det for eksempel bety at emnet identifisert som "taxi" både kunne hete "Drosje" og "Taxi".
I et emnekart er emnene knyttet sammen av assosiasjoner i en semantisk nett. For å ta et eksempel fra operaen. Hvis vi i leksikonet vårt både har et lite avsnitt om komponisten Mozart og et annet lite avsnitt om operaen Tryllefløyten. Med emnekart ville man definert emnet "person" og "mozart" som en emne av typen "person". I tillegg vil man definert emner som "opera", "komponist", "tryllefløyten" og emnet "komponert av". Deretter ville man opprette en assosiasjon mellom personen Mozart og operaen Tryllefløyten av typen "komponert av".
I praksis inneholder emnekartet vårt informasjon nok til at vi kan spørre en datamaskin om hvem som har komponert operaen Tryllefløyten. Foreløpig kan man ikke bruke vanlig språk som engelsk eller norsk. Derimot finnes det egne spørrespråk for så man kan spørre det samme spørsmålet omtrent slik isteden: "komponert-av( tryllefløyten: opera, $KOMPONIST : person)?".
I en relasjonsdatabase lagres bare data, mens metainformasjon om dataene befinner seg i form av logikk i en applikasjon. I et emnekart lagres også metainformasjonen om dataene som en del av dataene. Applikasjoner laget for å vise informasjon i et emnekart kan lages langt mer generelle enn applikasjoner som bruker relasjonsdatabaser.
Kort fortalt så lagrer man i en relasjonsdatabase bare det man må, mens metainformasjon om informasjon er lagret i form av logikk i applikasjonen. I et emnekart kan også metainformasjonen lagres. Det vil si at applikasjoner laget vise eller redigere informasjon i et emnekart er mye mer generelle enn applikasjoner som bruker relasjonsdatabaser.
Mange typer informasjon er enklest å representere i en relasjonsdatabase. Et emnekart lagres typisk nok i en relasjonsdatabase. For enkelte typer informasjon er det mye å hente på å bruke et høyere nivå som emnekart for å lagre informasjonen.
De fleste databaser eller andre datakilder kan eksporteres til emnekart. En del informasjon som tall og datoer vil som regel måtte konverteres til tekst. Fordelen er at det oftest er enklere å finne frem til informasjonen i et emnekart. Er det en stor bedrift med mange ulike datasystemer kan alt konverteres til emnekart, flettes sammen og søkes i via et enhetlig webgrensesnitt.
Svært ofte i IT verdenen dukker de samme idéene opp igjen med jevne mellomrom. Prolog er både et programmeringsspråk, en database og et spørrespråk i ett. Tanken om å skrive informasjon på logisk form og fore det inn i en database kom i 1970 årene.
For å ta et eksmpel så kan en prolog database fores med fakta på logisk form som "person(mozart)" eller "fornavn(mozart,"Wolfgang")" for å fortelle enkle fakta som at Mozart var en person og het Wolfgang til fornavn. Spørsmålene kan spørres på en lignende måte. Tolog eksempelet er for eksempel nesten helt likt i prolog: "?- komponert-av( tryllefløyten, opera, KOMPONIST, person)."
Programmeringsspråket prolog har ikke fått så mye oppmerksomhet siden 1980 årene og frem til nå (2005), men det kan hende det vil endre seg. Prolog inneholder også syntaks for enkelt å skrive gramatikker som brukes for å tolke data på for eksempel xml format, men som også brukes til å tolke naturlig språk.
Prolog er desverre noe vanskeligere å lære enn for eksempel java, og det er forskjeller i de mange ulike implememtasjonene av språket. På den annen side har også prolog modnet siden 1970 årene, og det finnes mye litteratur å kjøpt og for eksempel flere implementasjoner laget i blant annet java.