Guide:
Emnekart for vanlige dødelige (del 1)
Vi har fått seniorutvikler Alexander Johannesen til å gi en innføring i temaet "emnekart". Han burde vite hva han snakker om: Han jobber for det australske nasjonalbiblioteket, der det skulle være nok informasjon som må organiseres. Les første del av de to artiklene om emnekart.
Det neste vi må takle er identitet. En dings, et objekt, en ting, en dippedutt, en tanke, et snafs; alle ting eksisterer enten i en fysisk eller en konseptuell verden, og for at disse tingene skal kunne beskrives av datasystemer trenger vi en eller annen måte å være sikre på at vi alle snakker om den samme dingsen. I en relasjonsdatabaseverden har en rad i en database en nøkkel, et unikt felt, for dette. Det kan være et nummer eller en streng med mer eller mindre forståelige sammenhenger.
Jeg heter Alex, men det er fler enn meg som heter det. Kanskje en eller annen Alex også er gift med Julie-Anne, ja kanskje de tilogmed bor i Australia og har et par døtre, og - mot alle odds - synes at Claudio Monteverdi er verdens beste komponist noen gang! Sjansen er dog liten for at det er noen annen enn meg vi snakker om, nettopp fordi vi har bygget opp et sett med identitetsfragmenter som vi setter sammen til "å, du mener Alex." Sånn må vi gjøre med dataobjektene våre også.
Vi har gjort det i mange år allerede, og for enhver som noen gang har satt sammen et system med mer enn to databaser vet hvor viktig det er at ting er unike, at en linje i en tabell representerer en dings, og at andre linjers kolonner kan snakke om akkurat denne dingsen. Dette er datamodellering, og det første hintet til hva emnekart er for noe er at det er - ja, nettopp - en datamodell.
Datamodell
Jaha, hva er nå så spesielt med en datamodell? Det finnes jo tusenvis av dem, en for hvert enkelt lille problem i hele verden, og kanskje noen til.
Nettopp. Det finnes mange, så fryktelig mange. De som har tatt steget fra et system med to databaser til mange databaser, kanskje på kryss av domener og nettverk, vet nettopp hvor mange problemer man kan støte borti. Bare det å holde rede på unike objekter på tvers av domener og systemer er kanskje ett av de største problemene. Som gjengangere kan vi også nevne sammenkobling av data, ikke-kompatible datamodeller hvor man mister integritet i konverteringen og ikke minst mangelen på gjenbruk. Emnekart er en datamodell som faktisk løser de fleste - om ikke alle - disse problemene, og flere til.
Modellen er enkel; det finnes emner, det finnes relasjoner mellom emnene og det finnes forekomster av dem. Et emne kan være absolutt alt, fra konsepter til objekter til lukter og smaker til ... ja, hva det nå måtte være vi ønsker å modellere. Vi gir alle emner en identitet slik at vi kan snakke om dem, og så lager vi relasjoner mellom dem.
Den observante leser kan sikkert allerede nå forstå at denne datamodellen kan gjenskapes i allerede eksisterende teknologi. En SQL database kan brukes like godt som en XML eller en objekt-orientert database. Og selvsagt finnes det også emnekartdatabaser som er spesialister på alt vi her snakker om og mere til.
For mer om dette og konkrete eksempler på emnekart, les den neste delen av artikkelen om emnekart. Denne vil bli publisert her på HWB.no i nær fremtid.