24.07.2013 Views

Retningslinjer for modellering i TOR - Brønnøysundregistrene

Retningslinjer for modellering i TOR - Brønnøysundregistrene

Retningslinjer for modellering i TOR - Brønnøysundregistrene

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>Retningslinjer</strong> <strong>for</strong> <strong>modellering</strong> i<br />

SERES<br />

<strong>Brønnøysundregistrene</strong><br />

Versjon: 2006-05-23<br />

1


1 Innledning .....................................................................................................................................................5<br />

2 Ulike modeller i SERES ...............................................................................................................................7<br />

2.1 Modeller som begrep ............................................................................................................................7<br />

2.2 In<strong>for</strong>masjonsmodellen...........................................................................................................................8<br />

2.2.1 Domenemodeller ..............................................................................................................................9<br />

2.2.2 Konvertert modell ............................................................................................................................9<br />

2.2.3 Kon<strong>for</strong>me modeller ..........................................................................................................................9<br />

2.2.4 Harmoniserte modeller...................................................................................................................10<br />

2.2.5 Standardmodell ..............................................................................................................................10<br />

2.3 Dokumentmodell .................................................................................................................................11<br />

2.4 Meldingsmodell...................................................................................................................................12<br />

2.4.1 Formatfamilie.................................................................................................................................12<br />

2.4.2 Meldingsspesifikasjon....................................................................................................................12<br />

3 SERES-profil <strong>for</strong> UML-basert <strong>modellering</strong>.............................................................................................13<br />

3.1 Generelt om UML ...............................................................................................................................13<br />

3.2 UML-komponenter i SERES................................................................................................................13<br />

3.2.1 Eksempel på in<strong>for</strong>masjonsmodelldiagram .....................................................................................14<br />

3.2.2 Klasser............................................................................................................................................15<br />

3.2.3 Attributter.......................................................................................................................................15<br />

3.2.4 Semantiske typer ............................................................................................................................15<br />

3.2.5 Assosiasjoner..................................................................................................................................16<br />

3.2.6 Assosiasjonsklasser ........................................................................................................................16<br />

3.2.7 Arv .................................................................................................................................................16<br />

3.2.8 Diagrammer....................................................................................................................................17<br />

3.2.9 Pakker.............................................................................................................................................17<br />

3.2.10 Kobling mellom in<strong>for</strong>masjons- og dokumentklasse ..................................................................17<br />

3.2.11 Tagged values............................................................................................................................17<br />

3.2.12 Oppsummering ..........................................................................................................................18<br />

4 Overordnet om in<strong>for</strong>masjons<strong>modellering</strong> ................................................................................................19<br />

4.1 Tilnærming til <strong>modellering</strong>en..............................................................................................................19<br />

4.2 Fokus og kontekst................................................................................................................................20<br />

5 Teoretisk og språklig <strong>for</strong>ankring <strong>for</strong> SERES...........................................................................................21<br />

5.1 Terminologi, læren om begreper.........................................................................................................21<br />

5.2 Navn og språkregler...........................................................................................................................23<br />

5.2.1 Bruk av norsk språk........................................................................................................................23<br />

5.2.2 Navnestandarder.............................................................................................................................24<br />

5.2.3 Generelle retningslinjer <strong>for</strong> navngiving..........................................................................................24<br />

5.2.3.1 Navngiving av klasser...........................................................................................................24<br />

5.2.3.2 Navngiving av attributter......................................................................................................25<br />

5.2.3.3 Navngiving av semantiske typer...........................................................................................26<br />

5.2.3.4 Navngiving av assosiasjoner og assosiasjonsender ..............................................................26<br />

5.2.3.5 Navngiving av assosiasjonsklasser .......................................................................................26<br />

5.2.3.6 Navngiving av pakker...........................................................................................................26<br />

5.2.3.7 Navngiving av diagrammer ..................................................................................................27<br />

6 Grunnleggende semantiske typer..............................................................................................................28<br />

6.1 alternativ.............................................................................................................................................28<br />

2


6.2 antall ...................................................................................................................................................28<br />

6.3 beløp....................................................................................................................................................28<br />

6.4 binærobjekt .........................................................................................................................................28<br />

6.5 identifikator.........................................................................................................................................28<br />

6.6 kode.....................................................................................................................................................29<br />

6.7 mål ......................................................................................................................................................29<br />

6.8 tall .......................................................................................................................................................29<br />

6.9 tekst .....................................................................................................................................................29<br />

6.10 tidspunkt..............................................................................................................................................30<br />

7 Eksempel - Flyttemelding ..........................................................................................................................31<br />

8 Klasser .........................................................................................................................................................33<br />

8.1 Antall attributter .................................................................................................................................33<br />

8.2 Normalisering .....................................................................................................................................34<br />

9 Attributter...................................................................................................................................................35<br />

9.1 Attributtenes semantikk.......................................................................................................................35<br />

9.2 Avledete verdier ..................................................................................................................................35<br />

10 Arv som presisering av semantikk ............................................................................................................37<br />

10.1 Klasser ................................................................................................................................................37<br />

10.1.1 Identifisering av arve<strong>for</strong>hold .....................................................................................................37<br />

10.1.2 Attributter i subklasser ..............................................................................................................37<br />

10.1.3 Alias <strong>for</strong> attributter ....................................................................................................................38<br />

10.1.4 Flyttemeldingseksempelet .........................................................................................................38<br />

10.1.5 Form på arvehierarki .................................................................................................................39<br />

10.1.6 Konsekvenser av brede/dype arvehierarki.................................................................................39<br />

10.2 Spesialisering av semantiske typer......................................................................................................40<br />

11 Assosiasjoner...............................................................................................................................................41<br />

11.1 Urettet assosiasjon..............................................................................................................................41<br />

11.2 Rettet assosiasjon................................................................................................................................41<br />

11.3 Kardinalitet.........................................................................................................................................41<br />

11.4 Flere assosiasjoner mellom to klasser ................................................................................................43<br />

11.5 Assosiasjonsklasser.............................................................................................................................43<br />

11.5.1 Attributter i assosiasjonsklasser.................................................................................................44<br />

12 Diagrammer ................................................................................................................................................45<br />

13 Oppsummering av eksempel Flyttemelding .............................................................................................46<br />

14 Tabeller........................................................................................................................................................47<br />

15 Grunndata og gjenbruk .............................................................................................................................49<br />

15.1 Grunndatamodell ................................................................................................................................49<br />

15.2 Gjenbruk av elementer i in<strong>for</strong>masjonsmodellen..................................................................................49<br />

15.2.1 Eksempel: Gjenbruk i modell av flyttemelding.........................................................................49<br />

15.2.2 Grunndata ..................................................................................................................................50<br />

3


15.2.3 Gjenbruk av egne in<strong>for</strong>masjonselementer .................................................................................51<br />

15.2.4 Gjenbruk av andres in<strong>for</strong>masjonselementer ..............................................................................51<br />

15.3 Oppsummering av in<strong>for</strong>masjons<strong>modellering</strong> ......................................................................................51<br />

16 Dokument<strong>modellering</strong>................................................................................................................................53<br />

16.1 Assosiasjoner ......................................................................................................................................53<br />

16.1.1 Rettede assosiasjoner.................................................................................................................53<br />

16.1.2 Kardinalitet................................................................................................................................53<br />

16.2 Skjuling av attributter .........................................................................................................................54<br />

16.3 Semantiske typer .................................................................................................................................54<br />

16.4 Rotklasse .............................................................................................................................................55<br />

16.5 Dokumentmodell av flyttemelding.......................................................................................................55<br />

17 Meldings<strong>modellering</strong>..................................................................................................................................56<br />

17.1 Format ................................................................................................................................................56<br />

17.2 Formatstandard ..................................................................................................................................56<br />

17.3 Administrering av <strong>for</strong>mater.................................................................................................................57<br />

17.3.1 Kompleks<strong>for</strong>mater.....................................................................................................................57<br />

17.4 Kodelister............................................................................................................................................59<br />

18 Oppsummering ...........................................................................................................................................60<br />

4


1 Innledning<br />

Dette dokumentet er retningsgivende <strong>for</strong> oppbygging av et nytt register som er etablert av<br />

<strong>Brønnøysundregistrene</strong>, kalt SERES, som står <strong>for</strong> SEmantikkRegisteret <strong>for</strong> Elektronisk<br />

Samhandling. Registeret skal medvirke til at alle data som utveksles elektronisk mellom<br />

hvilket som helst par av offentlige institusjoner har felles beskrivelser slik at avsender og<br />

mottaker er sikre på at de har samme <strong>for</strong>ståelse av hvordan data skal tolkes (semantisk<br />

interoperabilitet).<br />

SERES skal utvikles med direkte bidrag fra alle offentlige etater som ønsker det. Registeret<br />

bygges opp ved hjelp av verktøy som er relativt åpne i måten de kan brukes på. For å oppnå<br />

semantisk interoperabilitet i praksis, trengs regler <strong>for</strong> hvordan in<strong>for</strong>masjon beskrives. Reglene<br />

er enten av type må, bør eller kan.<br />

Det sentrale verktøyet i løsningen er SERESuml som brukes til å etablere og vedlikeholde en<br />

samordnet in<strong>for</strong>masjonsmodell bestående av in<strong>for</strong>masjonselementer med tilhørende<br />

definisjoner og relasjoner til andre elementer, alt hentet fra in<strong>for</strong>masjonsdomener fra en rekke<br />

offentlige aktører. SERESuml er basert på åpen-kilde-verktøyet ArgoUML, som utvikles<br />

innen<strong>for</strong> et internasjonalt prosjekt. <strong>Brønnøysundregistrene</strong> har først og fremst bidratt med<br />

flerbrukerfunksjonalitet med adgang over Internett samt disse retningslinjene <strong>for</strong><br />

in<strong>for</strong>masjons<strong>modellering</strong>. SERES inneholder også verktøy <strong>for</strong> å lage meldingsspesifikasjoner<br />

basert på uttrekk fra in<strong>for</strong>masjonsmodellen med påkopling av <strong>for</strong>mater fra SERES<strong>for</strong>mat samt<br />

publisering av spesifikasjonene på nettet gjennom SERESnett.<br />

Retningslinjedokumentet er beregnet på:<br />

• etater som mottar og avgir in<strong>for</strong>masjon fra/til borgere og næringsliv<br />

• etater som utveksler in<strong>for</strong>masjon med andre etater<br />

• fagsystemleverandører med moduler som utveksler in<strong>for</strong>masjon med offentlige<br />

systemer<br />

Lesegruppen er først og fremst faktiske og fremtidige brukere av SERES. Men også personer<br />

som planlegger nye løsninger på de omtalte områdene vil kunne ha interesse av dette<br />

dokumentet.<br />

Sentrale teknologier som SERES baserer seg på er:<br />

• UML som er den dominerende generelle <strong>modellering</strong>standarden på IT-området. UML<br />

tilbyr et antall diagrammer, blant annet klassediagram som utgjør den sentrale<br />

funksjonaliteten <strong>for</strong> SERESuml.<br />

• XML med underteknologien XML Schema. XML er den klart viktigste teknologien i<br />

verden <strong>for</strong> <strong>for</strong>matering av komplekse elektroniske meldinger og er dessuten på full fart<br />

inn som <strong>for</strong>mat <strong>for</strong> lagrede dokumenter.<br />

• Core Components (kjerne i ebXML) er den sentrale teknologien fra FN-organet<br />

CEFACT som fremmer felles elektroniske handelsløsninger over Internett. SERES<br />

bruker de sentrale Permissible Representation Terms som grunnlag <strong>for</strong> løsningens<br />

semantiske (data)typer.<br />

SERES skal altså bli et register som samler bidrag fra alle etater som har interesse <strong>for</strong> å delta.<br />

<strong>Brønnøysundregistrene</strong> ved Oppgaveregisteret (OR) vil bistå ved opplæring i bruk av<br />

5


verktøyet og ved den faktiske <strong>modellering</strong>en, om ønsket. Spesielt når flere offentlige<br />

institusjoner går sammen om etablering av en felles domenemodell, er det naturlig at OR<br />

hjelper til faglig og praktisk med å harmonisere disse. Det arbeides med opplæringsmateriell<br />

<strong>for</strong> SERES som både tar <strong>for</strong> seg <strong>modellering</strong> i sin alminnelighet og spesifikt mot SERES.<br />

Dette dokumentet er utarbeidet basert på bidrag fra Norske Veritas, KITH, Sintef og<br />

NorStella. Dag Belsnes (rådgivningsfirmaet Pharos og professor II ved Universitetet i Oslo)<br />

har vært sentral i den direkte ut<strong>for</strong>mingen av retningslinjene. Vi har også hentet ideer<br />

gjennom flere runder med særlig interesserte etater, spesielt Skattedirektoratet,<br />

Rikstrygdeverket og Statistisk sentralbyrå. Fornyings- og administrasjonsdepartementet har<br />

bidratt gjennom et antall utredninger og høringsprosesser.<br />

SERES er en videreføring av løsningen som er basis <strong>for</strong> dagens Oppgaveregister hvorfra det<br />

produseres meldingsspesifikasjoner til Altinn. Arbeidet med SERES startet i erkjennelse av at<br />

dagens løsning ikke er et godt nok fundament <strong>for</strong> gjenbruk av innrapporterte data fra<br />

næringslivet. I en <strong>for</strong>studie til neste generasjons Altinn (Altinn II) er det <strong>for</strong>eslått å<br />

standardisere på meldingsspesifikasjoner fra SERES.<br />

SERES-arbeidet har vært presentert internasjonalt (Skandinavia, Europa, Kina) og mange har<br />

uttrykt stor interesse <strong>for</strong> det som gjøres.<br />

Den løsningen som nå er lansert har den nødvendige funksjonaliteten <strong>for</strong> å etablere en<br />

in<strong>for</strong>masjonsmodell og produsere meldingsspesifikasjoner med samordnet semantikk hentet<br />

fra in<strong>for</strong>masjonsmodellen. Det vil bli et videre utviklingsløp i samarbeid med brukerne. Og vi<br />

ønsker allerede nå svært gjerne å få tilbakemeldinger på dette dokumentet. Retningslinjene er<br />

på ingen måter et ferdig dokument.<br />

6


2 Ulike modeller i SERES<br />

SERES brukes til å beskrive in<strong>for</strong>masjon som benyttes i det offentlige i <strong>for</strong>m av<br />

in<strong>for</strong>masjons<strong>modellering</strong>. Verktøyet benyttes også til å generere meldingsspesifikasjoner<br />

brukt til å validere 1 meldinger <strong>for</strong> utveksling av in<strong>for</strong>masjon. Veien fra en mer abstrakt<br />

in<strong>for</strong>masjons<strong>modellering</strong> til generering av konkrete meldingsspesifikasjoner består av flere<br />

trinn, og vi knytter disse ulike trinnene i prosessen til det vi kaller modeller i SERES.<br />

2.1 Modeller som begrep<br />

Ox<strong>for</strong>d English Dictionary definerer ordet modell på følgende måte:<br />

A simplified or idealized description or conception of a particular system, situation, or<br />

process that is put <strong>for</strong>ward as a basis <strong>for</strong> calculations, prediction of a particular<br />

system, situation, or process.<br />

Fornorsket blir det noe slik som:<br />

En <strong>for</strong>enkling eller idealisert beskrivelse eller konsept av et bestemt system, situasjon<br />

eller prosess som er utarbeidet <strong>for</strong> å kunne gjøre kalkulasjoner eller <strong>for</strong>utsi<br />

egenskaper ved et system, situasjon eller prosess.<br />

Modeller er den sentrale abstraksjonen eller begrepet i SERES, og all beskrivelse av<br />

in<strong>for</strong>masjon som vi håndterer ligger i en modell. En modell er en <strong>for</strong>enklet representasjon av<br />

deler av virkeligheten, som fokuserer på de aspektene/detaljene vi er interessert i. Det er tre<br />

hovedtyper modeller i SERES. De har ulike <strong>for</strong>mål og må der<strong>for</strong> tolkes <strong>for</strong>skjellig:<br />

• In<strong>for</strong>masjonsmodellen<br />

SERES består av én in<strong>for</strong>masjonsmodell som er en generell beskrivelse av<br />

in<strong>for</strong>masjonsstrukturer i norsk offentlig virksomhet. Modellen innholder<br />

in<strong>for</strong>masjonselementer med tilhørende definisjoner og relasjoner mellom disse<br />

elementene. In<strong>for</strong>masjon som blir modellert danner en viktig bakgrunn <strong>for</strong> utvikling av<br />

dokumentmodeller som er en spesifikk beskrivelse av en begrenset del av verden.<br />

• Dokumentmodell<br />

SERES består av flere dokumentmodeller. En dokumentmodell definerer strukturen og<br />

semantikken <strong>for</strong> innholdet i en gitt melding <strong>for</strong> in<strong>for</strong>masjonsutveksling mellom aktører.<br />

Den henter all semantikk fra in<strong>for</strong>masjonsmodellen ved å være et utplukk av<br />

in<strong>for</strong>masjonselementer herfra med eventuelle justeringer av disse <strong>for</strong> å tilpasse dem<br />

<strong>for</strong>målet.<br />

• Meldingsmodell<br />

En meldingsmodell er en dokumentmodell med tilknyttet <strong>for</strong>matin<strong>for</strong>masjon. Innholdet<br />

<strong>for</strong> hvert in<strong>for</strong>masjonselement skal ved hjelp av <strong>for</strong>matet kunne sjekkes om det fylles<br />

visse regler. Meldingsmodellen utgjør det samlede grunnlaget <strong>for</strong> å generere en<br />

meldingsspesifikasjon (gjerne kalt en serialisert meldingsmodell).<br />

1 Validering betyr i denne sammenheng test av meldingsstruktur og <strong>for</strong>mat av de enkelte meldingselementer.<br />

7


Figur 1: Hovedmodelltyper i SERES<br />

In<strong>for</strong>masjonsmodellen<br />

2.2 In<strong>for</strong>masjonsmodellen<br />

Dokumentmodell Meldingsmodell<br />

In<strong>for</strong>masjonsmodellen er en beskrivelse av in<strong>for</strong>masjonsstrukturer i norsk offentlig<br />

virksomhet. Virksomheten i offentlig sektor er <strong>for</strong> det meste regulert av lovverk som legger<br />

føringer <strong>for</strong> hvordan visse in<strong>for</strong>masjonselementer kan brukes. Modellen må der<strong>for</strong> være i tråd<br />

med gjeldende lovverk. Også <strong>for</strong>skrifter og andre typer regelverk av påkrevd eller frivillig art,<br />

<strong>for</strong> eksempel ISO-standarder, kan påvirke modellens ut<strong>for</strong>ming. Ved å beskrive relevant<br />

in<strong>for</strong>masjon hos samarbeidende aktører, søker in<strong>for</strong>masjonsmodellen å etablere en<br />

harmonisert <strong>for</strong>ståelse mellom aktørene angående semantikken i settet av<br />

in<strong>for</strong>masjonselementer som brukes til elektronisk samhandling.<br />

I modellen beskrives immaterielle objekter (<strong>for</strong> eksempel Foretak) eller fysiske objekter (<strong>for</strong><br />

eksempel Person), og relasjoner disse måtte ha seg i mellom. Hovedfokus <strong>for</strong><br />

in<strong>for</strong>masjonsmodellen er:<br />

• hvordan in<strong>for</strong>masjon tolkes (semantikk)<br />

• hvordan in<strong>for</strong>masjon integreres (interoperabilitet)<br />

Den skal danne grunnlaget <strong>for</strong> analyse av semantisk interoperabilitet mellom brukere og<br />

applikasjoner i de ulike etatene. For at nytten skal bli størst mulig, må in<strong>for</strong>masjonsmodellen<br />

tilfredsstille visse krav. Det er blant annet ønskelig at modellen er:<br />

• Stabil (over tid)<br />

• Lettlest (fra navnsetting og grafisk fremstilling)<br />

• Presis (i definisjoner og navnsetting)<br />

8


• Tilstrekkelig (i omfang)<br />

• Tilrettelagt <strong>for</strong> analyse av interoperabilitet og gjenbruk av in<strong>for</strong>masjonselementer<br />

• Skalerbar (dvs. må tåle å vokse både i omfang og kompleksitet uten å miste de<br />

<strong>for</strong>egående punktene)<br />

Det finnes kun én in<strong>for</strong>masjonsmodell i SERES, men den består igjen av flere<br />

domenemodeller.<br />

2.2.1 Domenemodeller<br />

In<strong>for</strong>masjonsmodellen består av et antall domenemodeller, som er beskrivelser av<br />

in<strong>for</strong>masjonsstrukturer innen<strong>for</strong> ulike anvendelsesområder. In<strong>for</strong>masjonsmodellen er således<br />

summen av alle domenemodellene. Domenemodellene inneholder klasser, klasseattributter,<br />

relasjoner mellom klasser, semantiske typer og klassediagrammer <strong>for</strong> grafisk modellvisning.<br />

Arbeidet med in<strong>for</strong>masjonsmodellen skjer alltid innen<strong>for</strong> en domenemodell. Det vil være<br />

minst én domenemodell <strong>for</strong> hver enkelt etat. Som ledd i harmoniseringsarbeidet mellom to<br />

eller flere etater <strong>for</strong> å få til en gitt datautveksling eller samordnet datainnhenting, kan det også<br />

være aktuelt å etablere separate domenemodeller <strong>for</strong> å ta høyde <strong>for</strong> nødvendige tilpasninger<br />

og kompromisser. I tillegg til disse arbeidsdomene inneholder in<strong>for</strong>masjonsmodellen domener<br />

som i større grad er standardisert. Dette betyr at domenemodeller vil ha ulik karakter i<br />

henhold til nivå av standardisering. Vi plasserer domenemodellene i SERES i følgende<br />

utviklingskategorier:<br />

• UML-konvertert modell (importert til SERES som XMI)<br />

• SERES-kon<strong>for</strong>m modell (følger SERES-retningslinjene)<br />

• Harmonisert modell (samordnet mellom aktører)<br />

• Standardmodell (godkjent av standardiseringsorgan)<br />

2.2.2 Konvertert modell<br />

Det er ikke alltid vi starter med blanke ark når vi skal etablere nytt innhold i<br />

in<strong>for</strong>masjonsmodellen. Det finnes mange godt funderte datamodeller i diverse etater.<br />

Generelle datamodeller som ikke er bearbeidet <strong>for</strong> bruk i SERES betegnes som eksterne<br />

modeller. Typisk eksempel er en databasemodell som beskriver et antall tabeller og<br />

underliggende tabellfelter med tilhørende datatyper. Det er viktig å kunne bygge videre på<br />

disse. Ved å gjennomføre en konvertering av disse modellene kan vi oppnå modeller med en<br />

struktur og eventuelt av et <strong>for</strong>mat som kan importeres til SERES. De <strong>for</strong>holder seg til SERESsettet<br />

av mekanismer i UML klassediagrammer. Modellene <strong>for</strong>eligger eventuelt i XMI-<strong>for</strong>mat<br />

som SERES kan importere direkte. Alternativt er de uttrykt i et SERES-internt <strong>for</strong>mat kalt<br />

XMDL som kan konverteres til XMI med verktøyet XMIgen, se vedlegg VI. Her kan<br />

<strong>Brønnøysundregistrene</strong> være behjelpelig, blant annet gjennom bruk av XMIgen-verktøyet.<br />

Konverterte modeller som er importert kan ikke uten videre lagres som del av den publiserte<br />

in<strong>for</strong>masjonsmodellen. Dette krever at modellen kan betraktes som kon<strong>for</strong>m.<br />

2.2.3 Kon<strong>for</strong>me modeller<br />

En kon<strong>for</strong>m modell er en domenemodell innen<strong>for</strong> in<strong>for</strong>masjonsmodellen som følger<br />

retningslinjene <strong>for</strong> <strong>modellering</strong> i SERES. Dette innebærer at:<br />

9


• Klassene er normaliserte, dvs. de har innhold som er redusert til et minimum av det<br />

som må være beskrevet samlet. (Normalitetsbegrepet blir mer presist beskrevet<br />

senere.)<br />

• Klassene er relatert til grunndataklasser, dvs. at de bygger videre på det fellesdomenet<br />

vi kaller grunndata som inneholder de in<strong>for</strong>masjonselementer som de aller fleste<br />

brukes i sine meldinger.<br />

• Klasseattributtene er knyttet til semantiske typer, ikke generelle datatyper.<br />

• Navnene på alle modellelementer følger gitte regler.<br />

• Alle assosiasjonene er (normalt) angitt med spesifiserte assosiasjonsender, det samme<br />

som roller.<br />

Hvert in<strong>for</strong>masjonselement vil kunne merkes som kon<strong>for</strong>m av SERES-verktøyet, dvs. de<br />

kriteriene som er mulig å automatisere. Alle elementer i en domenemodell må være kon<strong>for</strong>m<br />

<strong>for</strong> å kunne lagres til den publiserte in<strong>for</strong>masjonsmodellen. En kon<strong>for</strong>m modell er en kandidat<br />

<strong>for</strong> harmonisering.<br />

2.2.4 Harmoniserte modeller<br />

En harmonisert modell er en domenemodell innen<strong>for</strong> in<strong>for</strong>masjonsmodellen som består av<br />

semantisk harmoniserte elementer som er felles <strong>for</strong> to eller flere kon<strong>for</strong>me modeller. De<br />

harmoniserte elementene erstatter de opprinnelige elementene i domenemodellene når de<br />

"flyttes opp" til en høyere utviklingskategori. Grunnlaget <strong>for</strong> å gi en domenemodell kategorien<br />

harmonisert er enighet mellom to eller flere aktører som deler dette domenet.<br />

Grunndata og sentrale semantiske typer skal være en harmonisert domenemodell basert på<br />

enighet mellom <strong>for</strong>valtningsetatene <strong>for</strong> grunndataregistrene. Harmoniserte modellelementer<br />

skal videre være stabile over tid og følge bestemte prosedyrer <strong>for</strong> endring. Oppgaveregisteret<br />

påser at alle interessenter er representert, og bidrar ellers med faglig og administrativ bistand i<br />

prosessen.<br />

2.2.5 Standardmodell<br />

Harmoniserte modeller som har faktisk eller potensielt stor gjenbruk, bør etter hvert gis<br />

utviklingskategorien standardmodell. En standardmodell er en harmonisert modell som har<br />

vært behandlet av et offentlig oppnevnt standardiseringsorgan med <strong>for</strong>ankring i Standard<br />

Norge.<br />

10


Harmonisering<br />

Grunndata<br />

Standardmodell<br />

Harmonisert modell Standardisering<br />

In<strong>for</strong>masjonsmodellen<br />

SERES-kon<strong>for</strong>m<br />

domenemodell<br />

Figur 2: In<strong>for</strong>masjonsmodellen i SERES<br />

UML-konvertert<br />

domenemodell<br />

Kon<strong>for</strong>mering<br />

Import<br />

(XMI)<br />

Ekstern<br />

domenemodell<br />

Konvertering<br />

UML-konvertert<br />

domenemodell<br />

Figuren illustrerer in<strong>for</strong>masjonsmodellen som inneholder ulike typer domenemodeller. Disse<br />

kan plasseres i en utviklingsprosess som leder til en høyere grad av standardisering.<br />

Modelleringsprosessen kan enten starte fra scratch internt i SERES, men det er også mulig å<br />

ta utgangspunkt i eksterne modeller som konverteres og importeres. Grunndata er plassert i<br />

standardmodellen da det er et ønske at den skal være på dette nivået i fremtiden.<br />

2.3 Dokumentmodell<br />

I konkrete anvendelser av in<strong>for</strong>masjon, <strong>for</strong> eksempel i en bestemt blankett eller melding, vil<br />

det være behov <strong>for</strong> utvalgte deler av den samlede in<strong>for</strong>masjonsmodellen. Vi bruker en<br />

dokumentmodell <strong>for</strong> å velge ut relevante in<strong>for</strong>masjonselementer. En dokumentmodell består i<br />

hovedsak av et utvalgt sett av klasser og tilhørende relasjoner fra in<strong>for</strong>masjonsmodellen.<br />

Disse klassene er i utgangspunktet identiske med klassene i in<strong>for</strong>masjonsmodellen. For å<br />

tilpasse dokumentmodellen den spesifikke rapporteringen er det mulig å skjule attributter,<br />

spesialisere semantiske typer samt gjøre ytterligere innskrenkninger på relasjoner.<br />

Før dokumentmodeller etableres er det viktig at elementene som benyttes fra<br />

in<strong>for</strong>masjonsmodellen har en tilstrekkelig bearbeidingsgrad. De må som minimum være fra en<br />

kon<strong>for</strong>m modell.<br />

Hovedfokus <strong>for</strong> dokumentmodellen:<br />

• Hvilken in<strong>for</strong>masjon som skal utveksles<br />

• Hvilke regler som må oppfylles <strong>for</strong> at in<strong>for</strong>masjonen skal være gyldig.<br />

Dokumentmodeller som basis <strong>for</strong> meldingsmodellen, og derav meldingsspesifikasjoner <strong>for</strong><br />

inn-/utrapportering eller datatransport mellom systemer.<br />

11


2.4 Meldingsmodell<br />

En meldingsmodell er en dokumentmodell hvor en i tillegg har knyttet <strong>for</strong>mater (gruppert i en<br />

<strong>for</strong>matfamilie) til de enkelte in<strong>for</strong>masjonselementene. En meldingsmodell er grunnlaget <strong>for</strong> en<br />

meldingsspesifikasjon.<br />

2.4.1 Formatfamilie<br />

Et <strong>for</strong>mat angir hva som er lovlig datainnhold ved utveksling eller lagring. En <strong>for</strong>matfamilie<br />

er et sett av koplinger mellom semantiske typer og <strong>for</strong>mater. En semantisk type kan ha en slik<br />

kopling til et <strong>for</strong>mat, men trenger det ikke. Et <strong>for</strong>mat kan være koplet til en eller flere<br />

semantiske typer.<br />

2.4.2 Meldingsspesifikasjon<br />

En meldingsspesifikasjon genereres på grunnlag av en dokumentmodell og en <strong>for</strong>matfamilie.<br />

En meldingsspesifikasjon er et XML Schema. Denne definerer strukturen av og innholdet i<br />

meldingene som utveksles i <strong>for</strong>m av XML-dokumenter.<br />

Figur 3 viser prosessen fra in<strong>for</strong>masjonsmodell til sluttprodukt i <strong>for</strong>m av XML schema. Det er<br />

verd å merke seg at høyere grad av standardisering av in<strong>for</strong>masjonselementer vil gi et større<br />

potensial <strong>for</strong> gjenbruk av in<strong>for</strong>masjonselementer på tvers av etatsdomener. Gjenbruk av<br />

in<strong>for</strong>masjonselementer vil også kunne gi gir mer enhetlige meldingsspesifikasjoner.<br />

Økende<br />

gjenbruk<br />

Standardmodell<br />

Harmoniserte<br />

modeller<br />

Kon<strong>for</strong>me modeller<br />

Andre kategorier modeller<br />

Figur 3: Prosessen fra in<strong>for</strong>masjonsmodell til XML Schema<br />

Dokumentmodell<br />

+<br />

XML Schema<br />

Formatdetaljer<br />

<br />

<br />

<br />


3 SERES-profil <strong>for</strong> UML-basert <strong>modellering</strong><br />

Dette kapittelet beskriver hvordan UML profileres og benyttes som <strong>modellering</strong>sspråk i<br />

SERES, og gir bakgrunnsin<strong>for</strong>masjon <strong>for</strong> å utføre in<strong>for</strong>masjons<strong>modellering</strong> i SERES. For en<br />

detaljert innføring i standard UML-notasjon og -<strong>modellering</strong> henviser vi til de mange<br />

lærebøkene og referanseverkene som finnes på markedet. Aktuelle bøker er M. Fowler & K.<br />

Scott: UML Destilled (2000), J. Arlow, Ila Neustadt: UML 2 and the Unified Process (2005).<br />

3.1 Generelt om UML<br />

Mye kan <strong>for</strong>klares muntlig eller skriftlig, men det er også i mange tilfeller svært nyttig å ha en<br />

grafisk notasjon 2 å støtte seg til. En grafisk notasjon kan gjøre det enklere å kommunisere<br />

rundt løsninger, og kan bidra til en stringent og enhetlig <strong>for</strong>ståelse av et problemområde.<br />

SERES benytter UML 3 -diagrammer <strong>for</strong> å bidra til å beskrive in<strong>for</strong>masjon som ellers er<br />

vanskelig å kommunisere presist.<br />

Modelleringsspråket Unified Modelling Language (UML) <strong>for</strong>valtes av et konsortium av<br />

interessenter kalt Object Management Group (OMG). UML ble opprinnelig utviklet <strong>for</strong> å<br />

skape en felles enhetlig notasjon <strong>for</strong> utvikling av programvare, og har etter hvert fått stor<br />

utbredelse. Det er standard lærestoff på alle norske høgskoler og universiteter som underviser<br />

i IT.<br />

Språket omfatter i hovedsak et sett med grafiske notasjoner innen<strong>for</strong> et antall diagramtyper<br />

utviklet med tanke på <strong>for</strong>skjellige bruks- og behovsområder. Disse er utviklet med tanke på<br />

<strong>for</strong>skjellige bruks- og behovsområder. Ved in<strong>for</strong>masjons<strong>modellering</strong> i SERES bruker vi UML<br />

klassediagram.<br />

3.2 UML-komponenter i SERES<br />

Følgende UML-komponenter benyttes i <strong>modellering</strong> i SERES:<br />

• Klasser<br />

• Attributter inkl. kardinalitet<br />

• Semantiske typer (datatype med stereotype semantisk type)<br />

• Assosiasjoner inkl. kardinalitet<br />

• Assosiasjonsklasser<br />

• Arv<br />

• Klassediagrammer (statisk struktur)<br />

• Pakker<br />

o In<strong>for</strong>masjonsdiagram (brukt ved in<strong>for</strong>masjons<strong>modellering</strong>)<br />

o Dokumentdiagram (brukt ved dokument<strong>modellering</strong>)<br />

2<br />

Notasjon betyr en måte å beskrive noe. Den er gjerne kompakt og oversiktig i sammenlikning med vanlig tekst.<br />

3<br />

UML betyr Unified Modeling Language og er en internasjonalt anerkjent samling av diagramtyper med<br />

tilhørende symboler <strong>for</strong> <strong>modellering</strong>.<br />

13


o Domenemodeller<br />

o Arbeidspakker<br />

o Dokumentmodeller<br />

• Kobling mellom in<strong>for</strong>masjons- og dokumentklasse (avhengighet) (UML dependency)<br />

• Tagged values (navngitte metadata på alle elementer)<br />

Dette er <strong>modellering</strong>selementer som er felles <strong>for</strong> både in<strong>for</strong>masjons- og dokument<strong>modellering</strong><br />

da dokumentmodeller ekstraheres fra in<strong>for</strong>masjonsmodellen. Likevel er det, slik som tidligere<br />

beskrevet, en <strong>for</strong>skjell på disse <strong>modellering</strong>s<strong>for</strong>mene. Førstnevnte består i å gi en generell<br />

beskrivelse av in<strong>for</strong>masjon og slik bidra til <strong>for</strong>ståelse <strong>for</strong> in<strong>for</strong>masjonsstrukturer.<br />

Dokument<strong>modellering</strong>en vil i høyere grad være kontekstspesifikk og ha større fokus på<br />

sluttproduktet i <strong>for</strong>m av meldingsspesifikasjoner. I prosessen fra in<strong>for</strong>masjonsmodell til<br />

dokumentmodell er det ryddig å tenke to trinn:<br />

1. Generalisering<br />

2. Konkretisering<br />

Dermed skjer det en tilpasning av det utsnittet som er gjort av in<strong>for</strong>masjonsmodellen i<br />

henhold til <strong>for</strong>målet med dokumentmodellen. I følgende gjennomgang blir disse <strong>for</strong>skjellene<br />

beskrevet hvor det er relevant i henhold til bruk av modellelementer, mens det er ytterligere<br />

beskrevet i kapittel 16.<br />

3.2.1 Eksempel på in<strong>for</strong>masjonsmodelldiagram<br />

Arv<br />

(spesialisering/<br />

generalisering)<br />

Assosiasjonsklasse<br />

Klasse<br />

Attributt Semantisk type<br />

Figur 4: Modellelementer i in<strong>for</strong>masjonsmodelldiagram<br />

Uretta assosiasjon<br />

Assosiasjonsnavn<br />

Assosiasjonsendenavn<br />

(rolle)<br />

Kardinalitet<br />

14


3.2.2 Klasser<br />

I vårt <strong>modellering</strong>sperspektiv ser vi på verden som en samling av objekter som vi ønsker å<br />

beskrive. Objektene kan være fysiske, <strong>for</strong> eksempel i <strong>for</strong>m av et bestemt hus eller menneske,<br />

eller de kan være immaterielle, som <strong>for</strong> eksempel en bankkonto. Som regel eksisterer det<br />

mange objekter av samme sort. Når vi lager in<strong>for</strong>masjonsmodeller, ønsker vi ikke å beskrive<br />

hvert enkelt objekt, men basert på fellestrekk klassifiserer vi objektene. I en<br />

in<strong>for</strong>masjonsmodell er der<strong>for</strong> en klasse en beskrivelse av et utvalg felles egenskaper <strong>for</strong> en<br />

gruppe objekter. Klasser representeres grafisk i et klassediagram som firkantete bokser med<br />

tre deler med henholdsvis klassenavn, attributter og operasjoner. Operasjoner benyttes ikke i<br />

vår <strong>modellering</strong>.<br />

3.2.3 Attributter<br />

Vi beskriver objektene ved å tilegne dem egenskaper. De egenskapene som er relevant <strong>for</strong><br />

objektene i vårt <strong>modellering</strong>søyemed representerer vi som attributter i klassene. Egenskaper<br />

<strong>for</strong> en gruppe objekter kan <strong>for</strong> eksempel være navn og fødselsnummer <strong>for</strong> personer.<br />

Attributtene består av et attributtnavn og en tilhørende type. Attributtnavnet står <strong>for</strong>an<br />

kolontegnet, og attributtypen står bak. Typene i SERES kalles semantiske typer.<br />

3.2.4 Semantiske typer<br />

I UML knytter en vanligvis attributtene til datatyper, slik som <strong>for</strong> eksempel string.<br />

Datatypene sier oss ikke noe presist om semantikken til attributtet, men de sier noe om<br />

hvordan attributtet skal representeres fysisk. Likevel er det å implementere <strong>for</strong> eksempel et<br />

navneattributt som en string bare en av flere muligheter. Teknisk sett kan string representere<br />

alt. Vi har løsrevet oss fra <strong>for</strong>matspesifisering i utviklingen av en in<strong>for</strong>masjonsmodell, og<br />

ønsker heller et in<strong>for</strong>masjonssentrert syn hvor semantikken har fokus. Der<strong>for</strong> benytter vi<br />

semantiske typer i stedet <strong>for</strong> datatyper i vår <strong>modellering</strong> 4 . De semantiske typene definerer<br />

attributtets mening. Basert på valget av semantiske typer står vi fritt til å velge en spesifikk<br />

datatypeprofil senere i prosessen.<br />

De semantiske typene i SERES danner et arvehierarki med der vi tar utgangspunkt i rottypene<br />

som vi kaller grunnleggende semantiske typer (Figur 5). Disse er basert på Core Components<br />

Primary Representation Terms 5 fra UN/CEFACT 6 , og er således <strong>for</strong>ankret i internasjonalt<br />

standardiseringsarbeid. De grunnleggende semantiske typene er generelle og uavhengig av<br />

klassekontekst. Figur 5 viser de grunnleggende semantiske typene med den grafiske<br />

notasjonen som blir brukt i <strong>modellering</strong>en. For ytterligere in<strong>for</strong>masjon vedrørende<br />

arvehierarkiet og definisjon av semantiske typer, se Vedlegg I Semantiske typer.<br />

Figur 5: Grunnleggende semantiske typer (rottyper)<br />

4<br />

Det er mulig å modellere med andre sett en SERES semantiske typer, men da vil ikke modellen bli betraktet<br />

som harmonisert.<br />

5<br />

De semantiske typene er spesifisert i dokumentet Core Components Technical Specification, <strong>for</strong>kortet CCTS.<br />

6<br />

UN/CEFACT er et FN-organ som jobber med elektronisk <strong>for</strong>enkling av internasjonal handel.<br />

15


3.2.5 Assosiasjoner<br />

En assosiasjon beskriver et <strong>for</strong>hold mellom to objekter og definerer de rollene de har over<strong>for</strong><br />

hverandre. Noen ganger er rollene symmetriske, men ikke alltid. Forholdet beskriver vi ved å<br />

gi navn på selve assosiasjonen, mens rollene defineres ut fra å gi navn på assosiasjonsendene.<br />

I tillegg kan vi beskrive assosiasjonen ytterligere ved å angi kardinalitet <strong>for</strong> hver av<br />

assosiasjonsendene. Kardinaliteten angir antall objekter (av klassen koblet til<br />

assosiasjonsenden) som kan inngå i den gitte assosiasjonen til ethvert objekt av klassen koblet<br />

til den andre assosiasjonsenden.<br />

Vi bruker følgende notasjon <strong>for</strong> kardinalitet:<br />

Kardinalitet Betyr<br />

1 nøyaktig én<br />

0..* mange (null, én eller flere) (standardverdi)<br />

1..* minst én<br />

0..1 kan finnes en, dvs. null eller én<br />

m..n minimum m og maksimum n <strong>for</strong>ekomster.<br />

Eks: 5..7 betyr 5, 6 eller 7<br />

I en generell in<strong>for</strong>masjonsmodell må det tas høyde <strong>for</strong> ulik organisering av in<strong>for</strong>masjonen.<br />

Der<strong>for</strong> er hovedregelen å bruke urettede assosiasjoner. I dokumentmodellen alltid skal det<br />

benyttes rettede assosiasjoner. Navnet rettet assosiasjon er basert på at knytningen mellom<br />

dem består av en retning indikert med en pil. Pilen er basert på hvilken klasse assosiasjonen<br />

tar utgangpunkt i – leseretningen <strong>for</strong> assosiasjonen.<br />

Retningslinje<br />

• In<strong>for</strong>masjonsmodell: Urettet assosiasjoner<br />

• Dokumentmodell: Rettede assosiasjoner<br />

3.2.6 Assosiasjonsklasser<br />

Noen ganger ønsker vi å <strong>for</strong>telle mer om <strong>for</strong>holdet mellom objekter enn det vi klarer å<br />

<strong>for</strong>midle med kardinalitet og navngiving. En assosiasjonsklasse er en assosiasjon som har ett<br />

eller flere attributter, og den uttrykkes visuelt ved både en assosiasjon og en klasse. Det er<br />

viktig å merke seg at klassen og assosiasjonen er ett og samme modellelement som har<br />

egenskaper både som klasse og assosiasjon. En assosiasjonsklasse benyttes til ytterligere å<br />

presisere en assosiasjon, og eksisterer kun i lys av assosiasjonen. Det er dermed ikke mulig å<br />

bruke klassedelen uavhengig av assosiasjonen.<br />

3.2.7 Arv<br />

Arv mellom to klasser uttrykker at det ene klassen er en spesialisering av den andre klassen.<br />

Begrepene subklasse og superklasse brukes <strong>for</strong> å beskrive <strong>for</strong>holdet mellom klasser i et<br />

arve<strong>for</strong>hold:<br />

• Subklasse – en underordnet klasse, et ”barn”<br />

• Superklasse – en overordnet klasse, en ”<strong>for</strong>elder”<br />

16


Arv reflekterer at noen konsepter eller ideer har fellestrekk, samtidig som de har særegne<br />

egenskaper som gjør dem <strong>for</strong>skjellige. Spesialiseringen (subklassen) arver alle egenskapene til<br />

superklassen (fellestrekkene) samt at ytterligere egenskaper kan tilføyes, slik at<br />

spesialiseringen får en mer omfattende semantikk. På den annen side vil det være færre<br />

objekter av spesialiseringen enn av den generaliserte klassen.<br />

I SERES tillates ikke multippel arv. Det betyr at en klasse kun får ha én direkte overordnet<br />

superklasse. Begrunnelsen er at in<strong>for</strong>masjonselementene representerer begreper hvor arv (eller<br />

spesialisering) kun innebærer en avgrensning av <strong>for</strong>ekomstene av tilhørende objekter.<br />

Multippel arv er aktuelt der en ønsker å etablere objekter som har egenskaper i flere retninger.<br />

3.2.8 Diagrammer<br />

Diagrammer er navngitte, visuelle sammenstillinger av de modellelementene som inngår i<br />

<strong>modellering</strong>en i SERES. I SERES finnes det to ulike typer diagrammer tilknyttet henholdsvis<br />

in<strong>for</strong>masjonsmodellen og dokumentmodeller:<br />

• In<strong>for</strong>masjonsmodelldiagram (kortnavn in<strong>for</strong>masjonsdiagram) som visuell framstilling ved<br />

in<strong>for</strong>masjons<strong>modellering</strong><br />

• Dokumentmodelldiagram (kortnavn dokumentdiagram) som visuell framstilling ved<br />

dokument<strong>modellering</strong><br />

3.2.9 Pakker<br />

Pakker er det sentrale administrative begrepet i SERES og in<strong>for</strong>masjonsmodellen er<br />

sammensatt av et antall pakker. Denne oppdelingen er kun et praktisk grep som brukes til å<br />

gruppere modellelementer, og har ingen prinsipiell føring <strong>for</strong> semantiske <strong>for</strong>hold. Alle<br />

modellelementer hører til en og bare en pakke.<br />

Pakkene har en hierarkisk struktur og ulike stereotyper. Pakker på øverste nivå kalles <strong>for</strong><br />

domener og knyttes sammen til fagområder og/eller avdelingsinndeling i etater eller<br />

institusjoner. Under domene kan det fritt opprettes arbeidspakker i henhold til hva som<br />

oppfattes hensiktsmessig ved <strong>modellering</strong>. Dokumentmodeller representeres også ved pakker,<br />

og avgrenser <strong>modellering</strong>selementene brukt ved dokument<strong>modellering</strong> fra<br />

in<strong>for</strong>masjons<strong>modellering</strong>en. Ved opprettelse av dokumentmodeller genereres det pakker med<br />

stereotype ”dokumentmodell”.<br />

3.2.10 Kobling mellom in<strong>for</strong>masjons- og dokumentklasse<br />

En dokumentklasse har en kopling til den in<strong>for</strong>masjonsklassen den stammer fra, men<br />

egenskapene kan være noe endret på den måten at settet av attributter og assosiasjoner er et<br />

subsett av de opprinnelige og at kardinaliteten av de gjenværende attributter og<br />

assosiasjoner kan være smalere enn utgangspunktet. F.eks. kan en assosiasjonskardinalitet på<br />

0..* (null til mange) i dokumentklassen være satt til 1..3 slik at mulige <strong>for</strong>ekomster fastlegges<br />

mer eksplisitt. Vi kaller en slik kopling mellom klasser en begrensende <strong>for</strong>finingsavhengighet<br />

(eng: restriction refinement dependency)<br />

3.2.11 Tagged values<br />

All in<strong>for</strong>masjonsmodellelementer i SERES får knyttet på seg et sett tagged values av<br />

type Dublin Core. Dublin Core er en internasjonal standard <strong>for</strong> administrativ in<strong>for</strong>masjon slik<br />

som <strong>for</strong>fatter, bidragsyter, utgiverinstitusjon, beskrivelse, versjonsdato, identifikator, språk,<br />

rettighetsinfo etc.<br />

17


3.2.12 Oppsummering<br />

Tabell 1 viser oversikt over modellelementene som blir brukt i SERES og deres bruksområde.<br />

navn : type<br />

Klasse<br />

Attributt<br />

Semantisk type<br />

Modellelementer<br />

Generalisering (Arv)<br />

Uretta assosiasjon<br />

Retta assosiasjon<br />

Assosiasjonsklasse<br />

Tabell 1: Modellelementer i SERES<br />

IM<br />

IM<br />

IM<br />

IM<br />

IM<br />

(IM)<br />

IM<br />

DM<br />

DM<br />

DM<br />

DM<br />

-<br />

DM<br />

DM<br />

18


4 Overordnet om in<strong>for</strong>masjons<strong>modellering</strong><br />

Dette kapittelet gir en overordnet beskrivelse av prosessen med ut<strong>for</strong>ming av<br />

in<strong>for</strong>masjonsmodell.<br />

4.1 Tilnærming til <strong>modellering</strong>en<br />

En første versjon av elementene i en modell kan etableres gjennom:<br />

• en ideell betraktning rundt hvordan "verden er", herunder ut fra kunnskap om lover og<br />

<strong>for</strong>skrifter (top-down approach)<br />

• et sett skjemaer hvor feltene fra disse blir attributter og feltgrupper blir klasser<br />

(bottom-up approach)<br />

• eksisterende modeller f.eks. databasemodeller hvor hver tabell blir en klasse med<br />

samme navn, tabellfeltene blir klasseattributter med samme navn, datafeltypene blir<br />

datatyper med samme navn og fremmednøkler gjøres om til assosiasjoner (UMLkonvertering)<br />

Hvis vi ser bort fra det å benytte eksisterende modeller, er det altså to typiske scenarier <strong>for</strong><br />

den praktiske <strong>modellering</strong>en i SERES:<br />

En top-down tilnærming på <strong>modellering</strong> i SERES innebærer at in<strong>for</strong>masjonsmodellen <strong>for</strong><br />

domenet først utarbeides basert på en omfattende analyse av begrepene i domenet og deres<br />

sammenhenger. Deretter lager en dokumentmodeller og herav meldingsspesifikasjoner.<br />

En bottom-up tilnærming til <strong>modellering</strong> i SERES innebærer at en tar utgangspunkt i<br />

detaljbeskrivelser av skjemaer og databaser og bygger in<strong>for</strong>masjonsmodellen ut fra disse.<br />

Dokumentmodeller og meldingsspesifikasjoner lages underveis.<br />

Disse to tilnærmingene har hver sine <strong>for</strong>deler og ulemper. Ved å begynne nedenfra fanger en<br />

<strong>for</strong>t opp relevante detaljer, og det vil være mulig å fremstille meldingsspesifikasjoner etter<br />

kort tid. Ulempen er at in<strong>for</strong>masjonsmodellen lett blir fragmentarisk og mindre velstrukturert.<br />

Helhetsbildet dempes på grunn av fokus på detaljer – ”en ser ikke skogen <strong>for</strong> bare trær”. Ved<br />

å begynne på toppen vil det være lettere å sikre at helhetsbildet blir konsistent. Ulempen er<br />

først og fremst at viktige detaljer oversees, og at behovet <strong>for</strong> disse først identifiseres når en<br />

senere setter sammen in<strong>for</strong>masjonselementer <strong>for</strong> konkrete dokumentmodeller.<br />

En tredje mulighet er å kombinere disse to perspektivene. Da ser vi på <strong>modellering</strong>sprosessen<br />

som en syklus der vi veksler mellom en bottom-up og en top-down tilnærming.<br />

In<strong>for</strong>masjonsmodellen raffineres gjennom stadige iterasjoner, og meldingsspesifikasjoner kan<br />

produseres underveis.<br />

In<strong>for</strong>masjonsmodell<br />

Skjema 1..N<br />

19


Figur 6: Iterativ veksling mellom perspektiver<br />

Sett fra den enkelte etats side vil <strong>modellering</strong>en i de fleste tilfeller starte fra bunnen med<br />

beskrivelse av skjemaer (et bottom-up perspektiv). Samtidig som skjemaene beskrives,<br />

harmoniseres etatens domenemodell med den øvrige in<strong>for</strong>masjonsmodellen, inkludert<br />

grunndata. Dette krever et top-down perspektiv.<br />

In<strong>for</strong>masjonsmodellen bør ut<strong>for</strong>mes slik at den <strong>for</strong>teller mest mulig på egen hånd uten behov<br />

<strong>for</strong> å supplere modellen med store mengder skriftlig dokumentasjon. Leseren skal få et god<br />

<strong>for</strong>ståelse av den modellerte delen av domenet bare ved å se på diagrammene og definisjonene<br />

til modellelementene.<br />

4.2 Fokus og kontekst<br />

En modell er ikke en kopi, men en <strong>for</strong>enkling av virkeligheten. Den som modellerer må der<strong>for</strong><br />

velge hva som er av interesse / essensielt nok til å bli med i modellen, og la være å ta med<br />

andre deler av virkeligheten. Modellereren må stille seg spørsmålene:<br />

• Hva skal modellen brukes til?<br />

• Hva er målgruppen?<br />

Modellen utvikles i en kontekst, dvs. betingelser og omgivelser <strong>for</strong> modellen. Konteksten<br />

omfatter blant annet applikasjonsområdet, in<strong>for</strong>masjon om hensikten med modellen,<br />

målgruppen, jurisdiksjon, tidsperiode modellen skal være gyldig, hvilken sammenheng<br />

in<strong>for</strong>masjon basert på modellen skal innhentes, tolkes og brukes, hvordan skal modellen<br />

kunne brukes. Når konteksten til en modell er godt beskrevet og <strong>for</strong>stått, blir også meningen<br />

med modellen klarere. Modellerere vil <strong>for</strong>stå hverandres modeller enklere, og muligheten <strong>for</strong><br />

gjenbruk av modellelementer øker.<br />

Modellereren må utvikle sine modeller varsomt med følgende dimensjoner i tankene 7 :<br />

• Formål, hvor og hvordan modeller og in<strong>for</strong>masjon er tenkt bruk.<br />

• Abstraksjonsnivå, hvor overordnet kan en definere modeller og modellelementene <strong>for</strong><br />

data.<br />

• Presisjon, hvor detaljert / presist må en definere modeller og modellelementene <strong>for</strong><br />

data.<br />

• Tilstander, hvilke egenskaper er felles <strong>for</strong> objekter i en bestemt tilstand.<br />

• Kategorier, hvilke klassifiseringer kan modellelementer systematiseres i henhold til.<br />

• Tid, hvordan endres data og tolkning av data over tid. Modeller og definisjoner må<br />

gjenspeile endringsbehovet.<br />

• Rom, hvordan endres data og tolkning av data når objektet de er knyttet til <strong>for</strong>flytter<br />

seg i rom.<br />

Et viktig poeng i denne <strong>for</strong>bindelsen er at når et begrep skal modelleres som en klasse, vil<br />

resultatet være avhengig av konteksten. For eksempel, begrepet ”bil” vil normalt modelleres<br />

med ulike attributter om konteksten er Skatteetaten, Biltilsynet eller et bilverksted. Der<strong>for</strong> vil<br />

ofte flere domenemodeller inneholde <strong>for</strong>skjellige klassedefinisjoner av samme begrep. Dette<br />

er en fundamental problemstilling innen semantisk interoperabilitet.<br />

7 Dimensjonene er basert på ISO 15926 og ebXML<br />

20


Jus og <strong>for</strong>skrifter endres over tid. Dermed må de deler av in<strong>for</strong>masjonsmodellen som er<br />

knyttet til jus endres i takt med dette og versjoneres. Data og tolkningen av data vil være<br />

knyttet til en versjon av in<strong>for</strong>masjonsmodellen. For eksempel vil data som benyttes til<br />

skatteberegning og regnskap har 10 års lagringskrav på seg. I løpende 10 års-intervaller er det<br />

nødvendig å sikre at alle data presist kan relateres tilbake til riktig versjon av<br />

in<strong>for</strong>masjonsmodellen. Liknende livsløp med ulike tilstander vil gjelde både personer og<br />

virksomheter. Virksomheter etableres, de er aktive og de endrer <strong>for</strong>m eller avvikles som<br />

selvstendige virksomheter ved oppkjøp, fusjon, konkurs etc.<br />

5 Teoretisk og språklig <strong>for</strong>ankring <strong>for</strong> SERES<br />

Når vi skal modellere in<strong>for</strong>masjon, må vi klare å filtrere dagligspråkets manglende presisjon i<br />

beskrivelsen av tidvis komplekse sammenhenger.<br />

Dette kapittelet presiserer hva vi mener med begreper, termer og definisjoner, og gir en del<br />

overordnede regler <strong>for</strong> hvordan modellelementer skal navngis og defineres. Navngivingsregler<br />

<strong>for</strong> ulike typer modellelementer beskrives i de spesifikke kapitlene.<br />

5.1 Terminologi, læren om begreper<br />

Kommunikasjon er utveksling av meningsinnhold mellom individer og grupper ved hjelp av<br />

et felles system av symboler 8 . SERES-modeller vil i denne sammenheng være et slikt felles<br />

system av symboler.<br />

Et begrep er en ide, en tanke som vi kan <strong>for</strong>estille oss. Vi bruker ordet ”bedrift” <strong>for</strong> å kunne<br />

kommunisere om begrepet som vi kaller Bedrift. Begrepene vi benytter identifiseres ved et<br />

navn som gjør at vi kan kommunisere om dem. Ut<strong>for</strong>dringene vi møter er at noe kan ha flere<br />

navn og gjerne kommuniseres på flere måter. Et og samme ord kan også henvise til ulike<br />

begreper 9 .<br />

Når vi modellerer må vi skille mellom en faktisk person og begrepet kalt Person. For<br />

tydeligere å <strong>for</strong>stå hverandre i kommunikasjon, er det vesentlig at vi har definisjoner som er<br />

knyttet til begrepet. Figuren under skisserer sammenhengen mellom elementer som til<br />

sammen benyttes <strong>for</strong> kommunikasjon og <strong>modellering</strong>.<br />

8 Aschehough og Gyldendals Store Norske Leksikon.<br />

9 I lingvistikken kalles de ulike betydningene av bar <strong>for</strong> homonymer (herunder homografer med lik skrivemåte<br />

og homofoner med lik uttale).<br />

21


Modellnivå<br />

Forekomstnivå<br />

in<strong>for</strong>masjon<br />

Forekomstnivå<br />

abstrakte eller<br />

konkrete ting<br />

Navn<br />

Begrep<br />

In<strong>for</strong>masjonsobjekt<br />

Referent<br />

Definisjon<br />

Figur 7: Referent, objekt, begrep, navn og definisjon<br />

Når vi modellerer i SERES, representerer hver klasse og semantiske type et begrep. Vi gir<br />

begrepene navn som brukes til kommunikasjon. I tillegg trenger vi en utdypende definisjon<br />

som gjør det mulig å skille mellom begrep som likner på hverandre, spesielt begreper som har<br />

lik skrivemåte (homografer).<br />

Vår samling av begreper med sine navn og definisjoner utgjør en modell av in<strong>for</strong>masjonen.<br />

Elektroniske meldinger, innhold i skjemaer, databaser e.l. (en teknisk representasjon av noe<br />

som eksisterer) med innhold fra modellen vår kaller vi objekter (instanser). Referentene er de<br />

faktiske tingene som omtales i instansen.<br />

For å lette arbeidet med å utarbeide definisjoner trenger modellereren <strong>for</strong>ståelse <strong>for</strong><br />

sammenhengen mellom elementene referent, objekt, begrep, navn og definisjon slik disse er<br />

vist i Figur 7. Elementene i figuren kan defineres på følgende måte:<br />

Referent:<br />

Enkeltstående fysisk eller abstrakt ting, tilstand, handling eller sammenheng man<br />

refererer til gjennom et begrep. Eksempler er "den fysiske personen Sevald Oddsen",<br />

"ditt sykefravær <strong>for</strong>rige uke", "nåværende budsjett til avdelingen", "bilen din", "et<br />

bestemt prosjekt", "momstilstanden til firma x i 2. kvartal 2005".<br />

Objekt:<br />

Enkeltstående sett av in<strong>for</strong>masjon som er representert i en melding eller i en database.<br />

Eksempler kan være, sykemeldingsblanketten min fra <strong>for</strong>rige uke, en fil med<br />

nåværende budsjett til avdelingen, in<strong>for</strong>masjon om bilen din, in<strong>for</strong>masjon om et<br />

bestemt prosjekt, siste momsoppgaven som ble levert fra firma x, in<strong>for</strong>masjon om deg<br />

som person.<br />

Navn:<br />

Språklig benevnelse av et begrep.<br />

For å kunne kommunisere at vi tenker på et begrep, må begrepet ha et navn.<br />

Eksempler på navn <strong>for</strong> begreper kan være: "sykefravær", "budsjett", "bil" eller "alle<br />

Porsche 911", "MVA-oppgave", "enhet".<br />

Definisjon:<br />

Entydig språklig beskrivelse av et begrep. En definisjon bør bygges opp av:<br />

22


• en grunnleggende del som henviser til et overordnet begrep (et hyperonym i et<br />

generisk begrepssystem (dvs. taksonomi))<br />

• en del som presiserer hvilke kjennetegn som skiller dette begrepet fra andre begrep<br />

som har samme hyperonym.<br />

Begrep:<br />

Mental <strong>for</strong>estilling om et konsept / en ting eller en samling av referenter med<br />

tilhørende navn og definisjon (mer eller mindre presist <strong>for</strong>mulert). Vår <strong>for</strong>ståelse av<br />

hva som er felles <strong>for</strong> en rekke referenter. Konseptet som vi tenker på skal kunne gjelde<br />

alle referenter.<br />

Definisjonen skal normalt kunne erstatte termen i løpende tekst. Vi kan <strong>for</strong> eksempel ha<br />

setningen ”Jeg har en sjelden antikvitet du må se”. Hvis vi erstatter i setningen navnet<br />

antikvitet med definisjonen av antikvitet fra tabellen neden<strong>for</strong>, blir den slik: ”Jeg har en<br />

sjelden vare som er mer enn 100 år gammelt og som omfattes av tolltariffens posisjon 97.06<br />

du må se”.<br />

Eksempel på sammenhenger mellom referenter, objekter, navn og definisjoner <strong>for</strong> begreper:<br />

Referent Førsteutgaven i din<br />

bokhylle<br />

Objekt Lagret in<strong>for</strong>masjon<br />

om boka, f eks<br />

<strong>for</strong>fatter, tittel, pris<br />

Eksempel 1 Eksempel 2 Eksempel 3<br />

Du som person Sykemeldingen min<br />

<strong>for</strong> <strong>for</strong>rige uke<br />

Lagret in<strong>for</strong>masjon<br />

om deg<br />

Lagret<br />

in<strong>for</strong>masjonen fra<br />

sykemeldingsblanketten<br />

Navn Antikvitet Person Sykemelding<br />

Definisjon Vare som er mer<br />

enn 100 år gammel<br />

og som omfattes av<br />

tolltariffens<br />

posisjon 97.06<br />

5.2 Navn og språkregler<br />

Menneske som<br />

basert på<br />

kommende,<br />

nåværende eller<br />

tidligere<br />

tilstedeværelse eller<br />

handlinger har en<br />

relasjon til en eller<br />

flere enheter i norsk<br />

offentlig sektor og /<br />

eller norsk lov.<br />

Sett av in<strong>for</strong>masjon<br />

<strong>for</strong> utveksling som<br />

beskriver en<br />

sykdomstilstand og<br />

periode <strong>for</strong> en<br />

person i et<br />

arbeids<strong>for</strong>hold,<br />

hvor hensikten er å<br />

få <strong>for</strong>malisert<br />

grunnlaget <strong>for</strong> en<br />

trygdeytelse<br />

5.2.1 Bruk av norsk språk<br />

Det er krevende å lage en in<strong>for</strong>masjonsmodell, og <strong>for</strong> å lykkes må en ha svært god kontroll<br />

med begreper og deres relasjoner til hverandre. Vi har der<strong>for</strong> valgt å bruke norsk, nærmere<br />

bestemt bokmål, i in<strong>for</strong>masjons-modellen. Vår in<strong>for</strong>masjonsmodell skal i hovedsak være en<br />

23


norsk virkelighetsbeskrivelse, og da vil bruk av et fremmed språk, <strong>for</strong> eksempel engelsk, være<br />

til hinder <strong>for</strong> dette. Vi finner det også hensiktsmessig å benytte norske navn på de semantiske<br />

typene, slik at in<strong>for</strong>masjonsmodellen fremstår språklig rendyrket og derigjennom mest mulig<br />

<strong>for</strong>ståelig.<br />

5.2.2 Navnestandarder<br />

I SERES velger en modellerer navn på modellelementer som pakker, diagrammer, klasser,<br />

attributter, semantiske typer, relasjoner, relasjonsender. I tillegg velger modellereren navn på<br />

<strong>for</strong>mater og <strong>for</strong>matfamilier.<br />

Navnet på et modellelement brukes <strong>for</strong> å kunne skille et begrep fra andre begreper. Samtidig<br />

bør navnet gi en indikasjon om hva betydningen av begrepet er. Navnet til et modellelement<br />

brukes ved generering av XML Schema og blir synlige <strong>for</strong> teknisk personell som skal lage<br />

systemer som tar imot, bearbeider eller avgir data i henhold til modellene som defineres i<br />

SERES-systemet.<br />

Eksport av modeller fra SERES på ulike <strong>for</strong>mater (XMI eller XML Schema) stiller av<br />

tekniske årsaker visse krav til elementnavn. Får å unngå at det oppstår navnevarianter ved<br />

trans<strong>for</strong>mering i produksjonsløypen, er regelverket <strong>for</strong> navngivning påvirket av dette, spesielt<br />

bruken av CamelCase (ref. ordliste).<br />

5.2.3 Generelle retningslinjer <strong>for</strong> navngiving<br />

• Det skal brukes norsk bokmål i in<strong>for</strong>masjonsmodellen, både på navn på<br />

in<strong>for</strong>masjonselementer og dets definisjoner<br />

• æ, ø, å er tillatt<br />

• Bruk det navnet som er mest karakteristisk <strong>for</strong> elementet<br />

• Bruk entalls<strong>for</strong>m <strong>for</strong> begreper der slike finnes<br />

• Navnet bør ha god uttrykkskraft at man langt på vei kan <strong>for</strong>stå meningen ut fra navnet<br />

alene.<br />

• Navnet bør være <strong>for</strong>ståelig <strong>for</strong> allmennheten og akseptert av fagmiljøet.<br />

• Forsøk å bruke vanlige hverdagslige termer og spar faguttrykk til definisjoner eller<br />

andre tekster.<br />

• Navnet skal gjenspeile in<strong>for</strong>masjonselementets eventuelle definisjon.<br />

• Ikke bruk spesialtegn eller tegn som understrekning, skråstrek, punktum, komma etc.<br />

• Dersom flere ord i navnet, sett sammen ordene til et sammenhengende ord uten<br />

mellomrom ved hjelp av CamelCase.<br />

• Unngå engelskinspirert ordoppdeling slik som årsGjennomsnitt. Skriv årsgjennomsnitt<br />

ettersom dette er ett sammenhengende ord.<br />

• Iblant må en relatere norsk begrepsbruk til internasjonale termer. Bruk<br />

modellelementets beskrivelse til å legge inn synonymer, eller henvisning til hvilken<br />

internasjonal term som er <strong>for</strong>norsket.<br />

• Ikke lag egne <strong>for</strong>kortelser, men bruk allment kjente <strong>for</strong>kortelser som ”nr”, ”id” og så<br />

videre. Se vedlegg III <strong>for</strong> liste av slike.<br />

• Forkortelser skrives på den vanligste måten, tillater store bokstaver på hele<br />

<strong>for</strong>kortelser.<br />

5.2.3.1 Navngiving av klasser<br />

Navnet på en klasse skal:<br />

• være unikt i pakken<br />

24


• ha stor <strong>for</strong>bokstav<br />

• helst velges uavhengig av diagram og pakke, slik at andre lettere ønsker å gjenbruke<br />

dem<br />

• helst være basert på ett ord, f.eks. "Person", "Bedrift"<br />

• skrives i UpperCamelCase dersom navnet kommer fra to eller flere ord<br />

• ikke ha sammenbindingsord som "av", "i", "til" etc. med mindre navnet kan mis<strong>for</strong>stås<br />

uten<br />

Eksempler på anbefalte klassenavn:<br />

• Fartøy<br />

• SalgGrunneiendom (alt. GrunneiendomSalg)<br />

• Omsetningstabell (alt. TabellOmsetning)<br />

• Pasientstatus (alt. StatusPasient)<br />

• MidlertidigAnsatt (alt. AnsattMidlertidig)<br />

Eksempler på dårlige klassenavn:<br />

• FirmaBil: Ordet er sammenhengende på norsk: Firmabil.<br />

• Kundeinfo: Klassen inneholder in<strong>for</strong>masjonselementer, der<strong>for</strong> er ” info”-delen av<br />

navnet redundant.<br />

• Personklasse: Navnet betegner en klasse, der<strong>for</strong> er ”klasse”-delen av navnet<br />

overflødig.<br />

5.2.3.2 Navngiving av attributter<br />

Navnet på attributtet bør være enkelt, gjenspeile definisjonen og<br />

• være unikt i klassen<br />

• ha liten <strong>for</strong>bokstav med mindre ordet starter med en <strong>for</strong>kortelse som er vanlig å skrive<br />

med store bokstaver<br />

• helst bestå av ett ord<br />

• skrives i lowerCamelCase dersom navnet kommer fra to eller flere ord<br />

• ikke ha sammenbindingsord som "av", "i", "til" etc. med mindre navnet kan mis<strong>for</strong>stås<br />

uten<br />

Ved <strong>modellering</strong> av blanketter vil det være tilfeller der det er behov <strong>for</strong> å utrykke lengre<br />

feltbeskrivelser ved hjelp av attributter. For å unngå <strong>for</strong> lange attributtnavn er det verdt å<br />

merke seg at attributtnavnet får tilført betydning ut fra sin klassekontekst og tilhørende<br />

semantiske type. En kan der<strong>for</strong> gjerne unngå navneledd som er en kopi av disse.<br />

Eksempler på anbefalte attributtnavn:<br />

• fødselsnummer<br />

• førsteArbeidsdag (alt. arbeidsdagFørste)<br />

• skattemessigBruttoinntekt (alt. bruttoinntektSkattemessig)<br />

• gebyrAksjesalg<br />

Eksempler på dårlige attributtnavn:<br />

• fødselsNummer (Er ett ord på norsk)<br />

• personNavn (Er ett ord på norsk. Dessuten er det sannsynlig at klassenavnet er Person<br />

og typen er navn)<br />

25


• antallEgenmeldinger (Inneholder navn på den semantiske typen antall. Bedre:<br />

egenmeldinger: antall)<br />

5.2.3.3 Navngiving av semantiske typer<br />

Navnsetting <strong>for</strong> semantiske typer bør være som <strong>for</strong> klasser. Navnet bør være enkelt, gjenspeile<br />

definisjonen og:<br />

• ha liten <strong>for</strong>bokstav, med mindre ordet er en <strong>for</strong>kortelse som er vanlig å skrive med<br />

store bokstaver<br />

• bestå av ett ord eller være en <strong>for</strong>kortelse som representerer flere ord<br />

• være unikt i pakken<br />

• helst velges uavhengig av diagram og pakke, slik at andre lettere ønsker å gjenbruke<br />

dem<br />

5.2.3.4 Navngiving av assosiasjoner og assosiasjonsender<br />

For assosiasjoner har vi mulighet til å navngi både selve assosiasjonen og assosiasjonsendene<br />

(rollene). Navnet på assosiasjonen skal være beskrivende <strong>for</strong> det <strong>for</strong>hold det uttrykker. Navnet<br />

på assosiasjonsenden beskriver rollen/relasjonen objektet på motsatt side av relasjonen har til<br />

dette objektet (klassen der rollen står). Navnene vil som regel være <strong>for</strong>skjellige i de to endene<br />

av en assosiasjon. Dersom det er naturlig å gi assosiasjonsendene samme navn, bør en<br />

alternativt gi assosiasjonen dette navnet og la endene være uten navn.<br />

• Assosiasjoner skal ha navn enten i <strong>for</strong>m av assosiasjonsnavn eller<br />

assosiasjonsendenavn<br />

• En klasses assosiasjoner skal ha unike assosiasjonsnavn og assosiasjonsendenavn (de<br />

som står lengst fra selve klassen)<br />

• Navnet skal ikke være likt et av attributtnavnene i klassene assosiasjonen knytter<br />

sammen<br />

• Ved bruk av assosiasjonsendenavn skal:<br />

o rettede assosiasjoner ha beskrivende navn på pilenden.<br />

o urettet assosiasjoner ha navn i begge ender<br />

• Navnet skrives med liten <strong>for</strong>bokstav og i lowerCamelCase dersom navnet kommer fra<br />

to eller flere ord med mindre det er en <strong>for</strong>kortelse som består av store bokstaver<br />

5.2.3.5 Navngiving av assosiasjonsklasser<br />

Her gjelder de samme regler som <strong>for</strong> klasser, se kapittel 5.2.3.1.<br />

5.2.3.6 Navngiving av pakker<br />

Pakker er det sentrale administrative begrepet i SERES. På øverste nivå finner vi de ulike<br />

domenemodellene som kan inneholde pakker både i <strong>for</strong>m av arbeidspakker og<br />

dokumentmodeller.<br />

• Navnet på domenemodeller skal være unikt blant andre domenemodeller, mens navnet<br />

på arbeidspakker og dokumentmodeller er unikt innen<strong>for</strong> sin domenemodell<br />

• Navnet på dokumentmodeller bør beskrive et bruksområde <strong>for</strong> modellelementer<br />

• Navnet skrives med stor <strong>for</strong>bokstav og i UpperCamelCase dersom navnet kommer fra<br />

to eller flere ord<br />

26


5.2.3.7 Navngiving av diagrammer<br />

• Navnet er unikt innen<strong>for</strong> sin domenemodell<br />

• Navnet skrives med stor <strong>for</strong>bokstav og i UpperCamelCase dersom navnet kommer fra<br />

to eller flere ord<br />

27


6 Grunnleggende semantiske typer<br />

I dette kapittelet presenteres de grunnleggende semantiske typene (toppnodene) som tidligere<br />

nevnt tilsvarer Core Components Primary Representation Terms. Disse er røtter i hvert sitt tre.<br />

Vi har valgt ikke å ha et nivå over disse igjen slik at alt ligger i ett tre.<br />

6.1 alternativ<br />

Den semantiske typen alternativ uttrykker to gjensidig utelukkende boolske verdier. Det vil si<br />

utfall i situasjoner der man skal indikere om en påstand er sann/usann. Eksempler på dette er<br />

om en person:<br />

• er myndig eller ikke myndig<br />

• har barn eller ikke har barn<br />

6.2 antall<br />

Den semantiske typen antall brukes til å angi tellbare mengder. Det er valgt å la antall være en<br />

grunnleggende type og ikke en avledning av tall ettersom det er en fundamental <strong>for</strong>skjell<br />

mellom tellbare mengder og beregnete <strong>for</strong>holdstall. Eksempler på hva som bør betegnes som<br />

antall er som følger:<br />

• antall ansatte (antall arbeids<strong>for</strong>hold, ikke antall stillingsandeler)<br />

• antall solgte enheter (når disse telles, ikke veies e.l.)<br />

6.3 beløp<br />

For å angi konseptet "en mengde penger" (eller en verdi som kan byttes i samme) bruker vi<br />

den semantiske typen beløp. Denne typen inneholder in<strong>for</strong>masjon både om det numeriske<br />

beløpet og hvilken valuta beløpet er i. Valuta kan koples til en valutakodeliste gjennom et<br />

kompleks<strong>for</strong>mat. Eksempler på den semantiske typen beløp:<br />

• 25 000 NOK<br />

• 150 USD<br />

• 3 450 GBP<br />

6.4 binærobjekt<br />

binærobjekt er en semantisk type som representerer en navnet og enhetlig bytesekvens. Dette<br />

representerer som oftest filer.<br />

6.5 identifikator<br />

Den semantiske typen identifikator brukes <strong>for</strong> eksplisitt å identifisere et objekt i en mengde av<br />

objekter. Ved hjelp av en slik unik identifikator kan man skille objekter fra hverandre. Det er<br />

viktig å merke seg at en identifikator bare er unik innen<strong>for</strong> et identifikasjonsregime. F.eks. er<br />

et studentnummer bare unikt innen<strong>for</strong> et gitt universitetsdomene. Et husnummer er bare unikt<br />

innen<strong>for</strong> en gate. identifikatorer skal normalt være tilknyttet et <strong>for</strong>valtningsorgan /<br />

<strong>for</strong>valtningsregime. For eksempel er det Folkeregisteret som <strong>for</strong>valter fødselsnummer.<br />

28


Identifikatorer som ikke <strong>for</strong>valtes av noen, skal settes abstrakte, dvs. ikke kunne brukes i en<br />

dokumentmodell.<br />

6.6 kode<br />

Den semantiske typen kode brukes gjennom spesialiseringer <strong>for</strong> kopling til Kodelister En<br />

kodeliste er en samling elementer, kalt kodelisteelementer, som hver har en kode og en<br />

definisjon.<br />

Et attributt knyttet til en slik semantisk type vil lovlig måtte ha en verdi fra kodelisten.<br />

sivilstand er et typisk eksempel på en spesialisering av kode. En tilhørende kodeliste består<br />

f.eks. av kodene "enslig", "samboer", "gift", "partnerskap", "skilt", "enke/-mann", "ukjent". Et<br />

attributt av type sivilstand må ha en verdi blant akkurat disse elementene.<br />

Dersom et attributt koples direkte til kode, må denne koplingen endres i en Dokumentmodell<br />

ettersom kode er Abstrakt (se ordliste).<br />

6.7 mål<br />

Den semantiske typen mål brukes <strong>for</strong> fysiske størrelser som måles med et verktøy eller<br />

instrument. Både faktisk målte størrelser og størrelser som planlegges <strong>for</strong> senere måling<br />

kommer inn under denne typen. Et mål består av en numerisk verdi og en fysisk enhet.<br />

Eksempler på mål er:<br />

• lengde (6,43 m)<br />

• arealet (24 m 2 )<br />

• masse (83 kg)<br />

• hastighet (15 m/s)<br />

• temperatur (37 ˚C)<br />

6.8 tall<br />

Den semantiske typen tall brukes til å angi dimensjonsløse (uten enhet) størrelser. Dette er<br />

enten <strong>for</strong>holdet mellom to tellbare størrelser av samme enhetstype (ref. semantisk type antall)<br />

eller <strong>for</strong>holdet mellom to målbare størrelser av samme måleenhet (ref. semantiske typer mål<br />

og beløp) eller en matematisk funksjon av andre tall. Eksempler på tall:<br />

• 7,9<br />

• 14<br />

• -294,364489<br />

6.9 tekst<br />

Den semantiske typen tekst er en type som samler alle typer tekstlige uttrykk. Vi anbefaler å<br />

bruke spesialiseringene av typen navn og beskrivelse eller egne spesialiseringer.<br />

Et navn er den offisielle betegnelsen <strong>for</strong> en ting, person, firma, sted, produkt, konsept osv. Et<br />

navn brukes primært som en praktisk, dagligdags referanse. Forskjellen på et navn og en<br />

identifikator er at navn ikke må være unikt i et domene. Det er mulig <strong>for</strong> to personer å ha<br />

samme navn selv om de jobber i samme bedrift eller trener på samme treningsstudio.<br />

Eksempler på navn:<br />

• Ola Normann<br />

29


• Oslo<br />

• Aker Kværner<br />

• Nord-Trøndelag<br />

Den semantiske typen beskrivelse gir tilleggsin<strong>for</strong>masjon om et konsept som <strong>for</strong> eksempel en:<br />

• kommentar<br />

• hjelpetekst<br />

• hinttekst<br />

6.10 tidspunkt<br />

tidspunkt er en semantisk type som betegner et punkt i historisk tid, dvs. en gitt dato og<br />

klokkeslett i et bestemt år, f.eks. 17. mai 2006 kl. 10:00 (”avmarsj <strong>for</strong> barnetoget”). Typen<br />

uttrykkes ved å bruke dato og klokkeslett.<br />

30


7 Eksempel - Flyttemelding<br />

I dette kapittelet presenterer vi et eksempel som senere brukes til å illustrere<br />

<strong>modellering</strong>spraksis i SERES. Skjemaet RF-1400 Melding til folkeregisteret om flytting<br />

innenlands (heretter kalt flyttemelding) brukes <strong>for</strong> å melde fra om at en eller flere personer<br />

flytter fra en adresse til en annen. Hvis det <strong>for</strong> eksempel er en familie som flytter, kan alle<br />

familiemedlemmene registreres på det samme skjemaet.<br />

Skjemaet inneholder opplysninger om selve flyttingen (når den skal finne sted, gammel og ny<br />

adresse osv.), og om hver enkelt person som flytter (navn, fødselsnummer osv.). Dette<br />

hentyder at det er minst to ”ting” (to typer objekter) Det sentrale folkeregisteret ønsker å vite<br />

noe om: Selve flyttingen, og hver enkelt person (en eller flere) som flytter.<br />

Figur 8: Blanketten "Melding til folkeregisteret om flytting innenlands"<br />

Blanketten inneholder også minst to ulike adresser: gammel og ny. I noen tilfeller har vi også<br />

en tredje adresse: Postadresse. Den benyttes hvis posten skal sendes til et annet sted enn<br />

boligadressen, <strong>for</strong> eksempel hvis de som flytter har en postboks. Alle disse adressene kan ha<br />

flere ulike elementer, <strong>for</strong> eksempel postnummer og poststed.<br />

I tillegg ser vi at det finnes to ulike typer tilflyttingsadresser: Gateadresse og Stedsadresse<br />

(Stedsadressen brukes der det ikke er gatenavn).<br />

Kontaktin<strong>for</strong>masjon er felles <strong>for</strong> alle som flytter, og består av ulike adresser <strong>for</strong> elektronisk<br />

kommunikasjon (epost, telefon). Denne in<strong>for</strong>masjonen kan enten betraktes som relatert til alle<br />

personene som flytter, eller som relatert til flyttingen.<br />

31


Eksemplene i de neste kapitlene tar utgangspunkt i dette skjemaet. Først illustreres bruken av<br />

de enkelte modellelementene med eksempler fra dette skjemaet. Deretter vises et eksempel på<br />

en samlet modell <strong>for</strong> in<strong>for</strong>masjonsinnholdet i skjemaet i kapittel 13. Felt som er merket som<br />

til internt bruk hos folkeregisteret er ikke tatt med i modellene.<br />

32


8 Klasser<br />

Klasser skal ha definisjoner eller beskrivelser som presiserer deres meningsinnhold. I kapittel<br />

5 er det beskrevet hvordan slike beskrivelser skal se ut.<br />

En klasse skal representere en type fysisk ”ting” eller et abstrakt (immaterielt) begrep. I<br />

flyttemeldinga kan en person være et eksempel på et fysisk objekt, mens flyttingen er et<br />

immaterielt begrep – vi kan ikke ta på en flytting, selv om vi kan beskrive egenskaper ved<br />

den.<br />

Eksempler på mulige klasser i skjemaet <strong>for</strong> flyttemelding:<br />

• Person Egenskaper til personer som flytter<br />

• Flytting Egenskaper ved selve flyttingen<br />

8.1 Antall attributter<br />

Som en hovedregel bør en klasse inneholde 2-10 attributter. Hvis det blir færre eller flere enn<br />

dette bør man vurdere å endre på modellen ved å slå sammen eller dele opp klasser.<br />

Ideelt bør en klasse representere ett og bare ett konsept i den virkelige verden, helst et<br />

vel<strong>for</strong>stått og velavrundet begrep. Glushko og McGrath (2005) kaller dette essensialitet – en<br />

modellelementer skal kun inneholde essensielle komponenter, ellers vil modellen kunne bli<br />

tvetydig og integriteten svekkes.<br />

Hvis en og samme klasse representerer flere ulike konsepter vil det kunne oppstå situasjoner<br />

der egenskaper ved et objekt vil kunne endre seg uten at det var meningen, <strong>for</strong>di objektet i<br />

praksis er ”låst fast” i et annet.<br />

Fra beskrivelsen av flyttemeldinga vet vi at en person må <strong>for</strong>holde seg til minst to ulike<br />

adresser – gammel og ny adresse. Dette tyder på at adresser er et separat begrep fra person,<br />

person- og adressein<strong>for</strong>masjon bør skilles fra hverandre. En person vil (<strong>for</strong>håpentligvis) alltid<br />

være tilknyttet en adresse, men hvilken adresse vil variere over tid. Adressen eksisterer<br />

uavhengig av personene som bebor den. Dette kan vi uttrykke ved å lage separate klasser <strong>for</strong><br />

adresse og person, <strong>for</strong> eksempel som i Figur 9<br />

Figur 9: Essensiell personklasse<br />

33


8.2 Normalisering<br />

Det vi i praksis har gjort i eksempelet over kalles normalisering. Det finnes <strong>for</strong>melle regler <strong>for</strong><br />

hvordan normaliseringen gjennomføres, men i praksis kommer vi langt med sunn <strong>for</strong>nuft og<br />

en bevissthet om at en klasse kun skal representere ett konsept i den virkelige verden. Det<br />

finner noen <strong>for</strong>melle normaliseringsregler beskrevet i diverse litteratur, <strong>for</strong> eksempel Glushko<br />

og McGrath (2005) og Date (2003). Og i noen tilfeller kan det være aktuelt å bruke disse<br />

<strong>for</strong>melle normaliseringsreglene. Med som oftest vil modellene ”normalisere seg selv” i løpet<br />

av prosessen med å utvikle en modell, rett og slett <strong>for</strong>di det viser seg at en normalisert struktur<br />

er hensiktsmessig av andre grunner enn de rent normaliseringstekniske. Om det oppdages<br />

brudd på normal<strong>for</strong>mene er det ikke sikkert at det er hensiktsmessig å splitte opp klassene; de<br />

har tross alt fått sin <strong>for</strong>m i løpet av en bevisst <strong>modellering</strong>sprosess der det har blitt bestemt at<br />

klassene representerer virkeligheten på en hensiktsmessig måte. Dette er en avveining som må<br />

gjøres i hvert enkelt tilfelle.<br />

Retningslinje: Essensialitet<br />

• En klasse bør representere ett og bare ett konsept fra den virkelige verden<br />

<strong>Retningslinjer</strong>: Klasser<br />

• En klasse skal fange essensen til ett enkelt begrep<br />

• En klasse har vanligvis 3-15 attributter<br />

34


9 Attributter<br />

Klasser inneholder som oftest et antall attributter. Attributtene representerer egenskaper ved<br />

objekter (instanser av klassen), og vil som regel ha <strong>for</strong>skjellige verdier <strong>for</strong> ulike objekter.<br />

9.1 Attributtenes semantikk<br />

Et attributt får mye av sin semantiske mening (om ikke alt) i kraft av klassen det befinner seg i<br />

og attributtets semantiske type, i tillegg til dets navn.<br />

Attributter tilordnes alltid en semantisk type, som sier noe om attributtets generelle<br />

meningsinnhold, uavhengig av hvilken klasse det befinner seg i.<br />

Betydningen av attributtet i den konkrete klassen det tilhører presiseres gjennom attributtets<br />

navn. Navngiving er der<strong>for</strong> viktig, se kapittel 5.2. For å presisere betydningen av attributtet<br />

ytterligere kan det gis en definisjon eller en beskrivelse.<br />

I skjemaet <strong>for</strong> flyttemelding ser vi at det skal oppgis <strong>for</strong>navn, etternavn og eventuelt<br />

mellomnavn <strong>for</strong> personene som flytter. Dette kan vi betrakte som tre ulike attributter. Alle<br />

disse er en type navn, og kan der<strong>for</strong> knyttes til den semantiske typen navn. Attributtenes navn<br />

(<strong>for</strong>navn, mellomnavn og etternavn) presiserer betydningen av attributtet i klassen. Vi skal<br />

også oppgi flere opplysninger om hver person, blant annet sivilstand og fødselsnummer. En<br />

person-klasse med disse attributtene vil kunne se slik ut:<br />

Figur 10: Person-klassen<br />

Her ser vi at attributtenes typer <strong>for</strong>teller hva den generelle betydningen av attributtet er, mens<br />

navnet til attributtet <strong>for</strong>teller hva attributtet betyr i den konkrete klassen.<br />

9.2 Avledete verdier<br />

Mange skjemaer innholder felter med avledet in<strong>for</strong>masjon. Det vil si in<strong>for</strong>masjon som kan<br />

beregnes på grunnlag av verdien til andre attributter i samme eller andre objekter, <strong>for</strong><br />

eksempel summeringer.<br />

En bør vurdere nøye om det faktisk er nødvendig å ta med slike attributter i<br />

in<strong>for</strong>masjonsmodellen, da de teknisk sett inneholder overflødig in<strong>for</strong>masjon. Faktorer som<br />

kan begrunne at det er nødvendig å ta med attributter med avledede verdier:<br />

• At en vil bruke den avledete verdien til å avsløre feil i grunnlagsverdiene<br />

35


• At det er knyttet særskilte juridiske kvalitetskrav til den avledete verdien, men ikke til<br />

grunnlagsverdiene<br />

Glushko og McGrath (2005) anbefaler at en unngår avledede attributtverdier i modellen, da<br />

det bryter med essensialitetsprinsippet – en modell skal ikke inneholde dupliserte eller<br />

overflødige elementer.<br />

36


10 Arv som presisering av semantikk<br />

Spesialisering ved hjelp av arv innebærer en presisering (avgrensning) av semantikken til en<br />

klasse eller en semantisk type i <strong>for</strong>hold til en annen.<br />

10.1 Klasser<br />

Skjemaet <strong>for</strong> flyttemelding spesifiserer tre ulike spesialiseringer av adresse – gateadresse,<br />

stedsadresse og postadresse. De tre spesialiseringene innsnevrer betydningen av adressebegrepet,<br />

<strong>for</strong> eksempel er ikke alle adresser gateadresser, men alle gateadresser er adresser. I<br />

tillegg til at betydningen av klassene er ulike, så ser vi også at de har ulike attributter.<br />

10.1.1 Identifisering av arve<strong>for</strong>hold<br />

Noen ganger vil modeller få to eller flere klasser som har beslektede betydninger, men ikke er<br />

knyttet sammen i et arvehierarki. Da bør en vurdere å lage en felles superklasse <strong>for</strong> dem.<br />

Attributter som er felles flyttes opp i superklassen. Det er viktig at en slik prosess ikke bare<br />

skjer på bakgrunn av at klassene har felles attributter, men på bakgrunn av at<br />

meningsinnholdet (semantikken) til klassene faktisk er beslektet. I visse tilfeller kan det være<br />

hensiktsmessig å lage subklasser som ikke har ekstra attributter i <strong>for</strong>hold til sin superklasse,<br />

men som likevel har en annen definisjon eller andre assosiasjoner enn superklassen.<br />

Fra flyttemeldingseksempelet kjenner vi til eksempelet med steds- og gateadresser. Det er en<br />

situasjon der to klasser er semantisk lignende, slik at det vil være aktuelt å gi dem en felles<br />

superklasse, slik som i Figur 12.<br />

Retningslinje: Felles superklasse<br />

• Meningsinnholdet (semantikken) til to eller flere klasser må være beslektet <strong>for</strong> at de skal<br />

kunne ha en felles superklasse. Det er ikke nok at de har felles attributter.<br />

Retningslinje: Felles attributter<br />

• Attributter som er felles mellom subklasser skal plasseres så langt opp i arvehierarkiet<br />

som mulig<br />

Noen ganger vil det finnes klasser der de aller fleste instansene kun benytter noen få av<br />

attributtene. Det er altså mange attributter som aldri blir gitt noen verdi i de faktiske<br />

objektene. Dette kan tyde på at klassen egentlig representerer to ulike nivåer av spesialisering.<br />

Da bør det vurderes om klassen skal deles i to: en super- og en subklasse.<br />

Retningslinje: Klasser med attributter som sjelden benyttes<br />

• Når en har attributter i en klasse som er ubenyttet i mange av instansene, bør en vurdere å<br />

splitte klassen i to eller flere nivåer av spesialisering.<br />

10.1.2 Attributter i subklasser<br />

Spesialiserte klasser arver alle attributtene fra sin superklasse. Ofte vil en ønske å tilføye<br />

ekstra attributter <strong>for</strong> den spesialiserte klassen, slik som i Figur 12.<br />

I eksempelet betyr det i praksis at klassen Gateadresse har attributtene postnr, poststed,<br />

gatenavn, husnummer, husbokstav, bolignr og tilleggsadresse. Attributter i en subklasse bør<br />

37


ha navn som ikke er brukt i dens superklasser. Grunnen til dette er at en i praksis vil få flere<br />

attributter med samme navn i subklassen på grunn av at attributtene arves fra superklassen.<br />

10.1.3 Alias <strong>for</strong> attributter<br />

I subklasser kan en definere et attributt som alias <strong>for</strong> et attributt i superklassen. Det betyr at<br />

attributtet i subklassen erstatter attributtet som arves fra superklassen. Dette gjøres typisk <strong>for</strong><br />

identifikatorer. For eksempel kan en ha den generelle identifikatoren id i superklassen Subjekt,<br />

og i subklassen Person ha fødselsnummer som alias <strong>for</strong> id. Det betyr da at fødselsnummer<br />

overtar plassen til id i Person-klassen. Visuelt ser dette slik ut:<br />

Figur 11: Bruk av alias <strong>for</strong> attributter<br />

Attributter som er alias <strong>for</strong> et annet, må ha en semantisk type som er subtype av typen til<br />

attributtet den erstatter. I eksempelet er både fødselsnummer og organisasjonsnummer<br />

subtyper av identifikator.<br />

10.1.4 Flyttemeldingseksempelet<br />

Ved å benytte reglene som er diskutert over kan vi lage følgende modell <strong>for</strong> adressebegrepene<br />

i flyttemeldinga:<br />

Figur 12: Spesialisering – Postadresse, gateadresse og stedsadresse er en spesialisering av Adresse<br />

38


10.1.5 Form på arvehierarki<br />

Arvehierarki kan både vokse i dybden eller i bredden. Sammenlignet med biologisk slektskap<br />

er dette slik:<br />

• Bredt arvehierarki<br />

o Mange søsken, men få ”generasjoner”, altså få arvenivåer.<br />

• Dypt arvehierarki<br />

o Mange generasjoner, men få søsken på hvert nivå.<br />

Figur 13: Eksempler på henholdsvis brede og dype arvehierarkier<br />

10.1.6 Konsekvenser av brede/dype arvehierarki<br />

Arv er en av mekanismene som UML stiller til rådighet <strong>for</strong> å beskrive virkeligheten. Vi bør<br />

der<strong>for</strong> utnytte denne mekanismen <strong>for</strong> å lage beskrivelsene så gode som mulig. Hvis begreper i<br />

virkeligheten faktisk er spesialiseringer av et annet begrep, bør dette vises i klassediagrammet.<br />

Et bredt og grunt arvehierarki kan der<strong>for</strong> være et symptom på en ufullstendig analyse av<br />

slektskap mellom begreper.<br />

Et arvehierarki med svært mange søsken på ett nivå kan også indikere at en har modellert<br />

<strong>for</strong>skjellige instanser av en klasse, og at nivået der<strong>for</strong> er unødvendig.<br />

For eksempel kan en tenke seg at klassen Kommune har subklassene Bergen og Ringerike. De<br />

to subklassene beskriver kun én konkret <strong>for</strong>ekomst av en kommune. Hvis det kun kan bli én<br />

instans (det vil kun finnes ett objekt) av hver klasse, bør det undersøkes om man egentlig har<br />

modellert en instans i stedet <strong>for</strong> en klasse. I dette eksempelet bør der<strong>for</strong> subklassene Bergen<br />

og Ringerike fjernes.<br />

Retningslinje: Klasser med kun én instans<br />

• Hvis det finnes klasser der det kun kan <strong>for</strong>ekomme én instans, bør en vurdere om<br />

klassehierarkiet har <strong>for</strong> mange spesialiseringer<br />

På den andre siden kan alt<strong>for</strong> dype arvehierarkier føre til uoversiktlige modeller som er<br />

vanskelige å lese. En klarer ikke å danne seg et fullstendig bilde av hva en klasse faktisk<br />

representerer uten å ta med alle dens superklasser i vurderingen. Det blir spesielt vanskelig å<br />

lese modellen hvis det er mange assosiasjoner knyttet til superklasser på ulike nivåer, siden<br />

assosiasjoner også arves. En bør alltid ha i tankene at <strong>for</strong>målet med modellene er å <strong>for</strong>midle<br />

in<strong>for</strong>masjon om in<strong>for</strong>masjonsstrukturer. Lite lesbare modeller gjør <strong>for</strong>midlingen vanskelig.<br />

Dette kan tale <strong>for</strong> å begrense dybden på arvehierarki.<br />

39


10.2 Spesialisering av semantiske typer<br />

Arv mellom semantiske typer betyr at den typen som arver er en semantisk begrensning i<br />

<strong>for</strong>hold til den typen det arves fra. ”fødselsnummer” er aktuell som semantisk type som arver<br />

fra den grunnleggende semantiske type ”identifikator”. Når den semantiske typen B arver fra<br />

den semantiske typen A, betyr det at den semantiske meningen i B er en begrensning i <strong>for</strong>hold<br />

til den semantiske meningen til A. ”A23” vil <strong>for</strong> eksempel være lovlig verdi <strong>for</strong> den<br />

semantiske typen identifikator, men vil ikke være en lovlig verdi <strong>for</strong> den semantiske typen<br />

fødselsnummer.<br />

Alle brukere av SERESuml kan lage nye semantiske typer, men nye typer må være subtyper<br />

av en allerede eksisterende semantiske type. En bør alltid undersøke nøye om det er mulig å<br />

bruke en eksisterende semantisk type, før en oppretter en ny. Lag en ny semantisk type hvis<br />

det er mulig å gi typen en definisjon som er uavhengig av klassen det skal stå i og helt<br />

bestemte attributter den er tenkt brukt <strong>for</strong>.<br />

<strong>Retningslinjer</strong>: Semantiske typer i in<strong>for</strong>masjonsmodellen<br />

• Bruk generelle semantiske typer<br />

• En ny semantisk type må være en subtype av en eksisterende semantisk type<br />

• En <strong>for</strong>utsetning <strong>for</strong> å lage en nye semantisk type er at det er mulig å skrive en klar,<br />

kortfattelig, og presis definisjon.<br />

40


11 Assosiasjoner<br />

Alle klasser i in<strong>for</strong>masjonsmodellen skal være knyttet til minst én annen klasse, enten via<br />

assosiasjon eller med arv. Dette <strong>for</strong> å sikre at modellen ”henger sammen”, og at det finnes<br />

knytninger til grunndata.<br />

Retningslinje: Assosiasjoner mellom klasser<br />

• En klasse i in<strong>for</strong>masjonsmodellen må være knyttet til minst en annen klasse i<br />

in<strong>for</strong>masjonsmodellen med assosiasjon og/eller arv.<br />

11.1 Urettet assosiasjon<br />

En urettet assosiasjon viser at det er en sammenheng mellom to objekter, og at begge kjenner<br />

til eksistensen av det andre objektet.<br />

Figur 14: Urettet assosiasjon<br />

I eksempelet over går det an å finne personer som deltar i en flytting, og det er også mulig å<br />

finne alle flyttingene en person har deltatt i.<br />

Assosiasjonen tolkes slik:<br />

• En person deltar i en eller flere flyttinger<br />

• En flytting gjelder en eller flere personer<br />

11.2 Rettet assosiasjon<br />

I in<strong>for</strong>masjonsmodeller skal det <strong>for</strong>trinnsvis benyttes urettede assosiasjoner. Rettede<br />

assosiasjoner bør kun brukes unntaksvis. Rettede assosiasjoner beskrives nærmere i kapittel<br />

Feil! Fant ikke referansekilden. i <strong>for</strong>bindelse med dokument<strong>modellering</strong>.<br />

11.3 Kardinalitet<br />

I SERES er spesifisering av kardinalitet <strong>for</strong> assosiasjonsender påkrevd, og standard UMLnotasjon<br />

benyttes.<br />

Evnen til å generalisere til riktig nivå er viktig ved fastsettelse av kardinalitet. Hva som er<br />

riktig kardinalitet i en konkret modell vil blant annet avhenge av hvilket tidsperspektiv vi har<br />

når vi modellerer (i øyeblikket eller over tid).<br />

41


For eksempel må vi bestemme om modellen av flyttemelding skal vise et øyeblikksbilde –<br />

”situasjonen når en bestemt flyttemelding leveres”, eller om modellen skal håndtere endringer<br />

over tid – ”summen av alle flyttemeldinger”. Hvis vi velger å modellere et øyeblikksbilde, er<br />

det tilstrekkelig å si at en person er tilknyttet kun én flytting – den som <strong>for</strong>egår i øyeblikket.<br />

Hvis vi derimot skal ha et lengre tidsperspektiv, må vi vise at en person kan ha flyttet flere<br />

ganger, og dermed være tilknyttet flere flyttinger.<br />

Når vi skal lage et klassediagram, må vi passe på at diagrammet kan håndtere alle de mulige<br />

kombinasjonene i den virkeligheten som vi har valgt å modellere.<br />

I de fleste tilfellene er det mest hensiktsmessig å bruke de generelle identifikatorene <strong>for</strong><br />

kardinalitet (0, 1, *) i in<strong>for</strong>masjonsmodellen. To mulige varianter <strong>for</strong> kardinaliteten til<br />

assosiasjonen mellom person og flytting blir slik:<br />

Figur 15: ”Øyeblikksbilde”-modell av flytting<br />

Figur 16: "Over tid"-modell av flytting<br />

Det som er et 1:m <strong>for</strong>hold i et øyeblikksbilde, kan ofte gå over til å bli m:n <strong>for</strong>hold i en modell<br />

som skal representere virkeligheten over tid. 1:1 <strong>for</strong>hold vil kunne bli 1:m <strong>for</strong>hold på samme<br />

måten. Vær der<strong>for</strong> alltid bevisst på om modellen er et øyeblikksbilde eller om den skal kunne<br />

representere at ting <strong>for</strong>andrer seg over tid.<br />

Når en modellerer konkrete blanketter, vil en ofte finne 1-til-mange (1:m) <strong>for</strong>hold. For<br />

eksempel kan en bedrift rapportere inn in<strong>for</strong>masjon om mange tilsatte. Det vil ofte være slik at<br />

når en går fra en spesifikk blankett til en generell, skjemauavhengig beskrivelse av<br />

virkeligheten, så <strong>for</strong>andrer 1:m-<strong>for</strong>holdet seg til et mange-til-mange-<strong>for</strong>hold (m:n).<br />

I SERES ønsker vi vanligvis å lage in<strong>for</strong>masjonsmodeller som er så generelle som mulig.<br />

Der<strong>for</strong> bør kardinaliteten i de fleste tilfellene være slik at den er i stand til å representere<br />

42


endringer som skjer over tid, og den bør håndtere virkeligheten utover det som er beskrevet i<br />

en enkelt blankett.<br />

Retningslinje: Kardinalitet <strong>for</strong> assosiasjoner i in<strong>for</strong>masjonsmodell<br />

• Kardinalitet skal oppgis <strong>for</strong> begge ender av en assosiasjon<br />

• I de fleste tilfellene bør kardinaliteten tillate representasjon av endringer over tid<br />

• I de fleste tilfeller bør kardinaliteten tillate representasjon av objekter fra mer enn en<br />

konkret blankett<br />

11.4 Flere assosiasjoner mellom to klasser<br />

I noen tilfeller eksisterer det to eller flere <strong>for</strong>hold mellom objekter, med ulik betydning. Disse<br />

modelleres da som separate assosiasjoner. Eksempel: To personer kan være i slekt med<br />

hverandre, men en person kan også være arbeidsgiver <strong>for</strong> en annen. Dette er to separate<br />

<strong>for</strong>hold: slektskap og arbeids<strong>for</strong>hold. Andre ganger kan flere beslektete <strong>for</strong>hold mellom<br />

klasser beskrives med assosiasjonsklasser og kodelister.<br />

11.5 Assosiasjonsklasser<br />

Figur 17: Assosiasjonsklasse<br />

I flyttemeldingen har vi sett at hver flytting har et <strong>for</strong>hold til minst to adresser: gammel<br />

adresse og ny adresse, og i noen tilfeller også postadresse. Det går ikke an å se på en adresse i<br />

seg selv om den er en gammel eller en ny adresse <strong>for</strong> en person, og adressen kan spille ulike<br />

roller <strong>for</strong> <strong>for</strong>skjellige flyttinger – noen flytter fra et hus, mens andre flytter til huset.<br />

Spesifisering av gammel og ny adresse kan der<strong>for</strong> betraktes som en egenskap ved<br />

assosiasjonen mellom flytting og adresse, og dermed representeres som en assosiasjonsklasse.<br />

Vanligvis vil assosiasjonsklasser ha relativt få attributter. Hvis de har flere enn ca 2-3<br />

attributter, vil det ofte være et tegn på at vi har innført et nytt konsept i modellen, som kanskje<br />

heller skulle vært modellert som en selvstendig klasse med assosiasjoner til de to opprinnelige<br />

klassene. Av samme grunn vil heller ikke assosiasjonsklassene inngå i arve<strong>for</strong>hold eller ha<br />

assosiasjoner til andre klasser.<br />

Regler: Assosiasjonsklasser<br />

• En assosiasjonsklasse skal vanligvis ikke ha mer enn 3 attributter<br />

• En assosiasjonsklasse kan ikke ha arve<strong>for</strong>hold eller vanlige assosiasjoner til andre klasser<br />

43


11.5.1 Attributter i assosiasjonsklasser<br />

Prinsipielt er det to hovedtyper attributter i assosiasjonsklasser:<br />

A: Attributtet beskriver et antall ulike assosiasjoner som kan <strong>for</strong>ekomme mellom<br />

objektene<br />

I eksempelet med assosiasjonen med flytting og adresse, er spesifisering av adresserolle et<br />

eksempel på dette. Attributtet må være med på grunn av at hver flytting kan ha minst to<br />

adressetilknytninger. Hver <strong>for</strong>ekomst av Flytting kan være knyttet til flere adresser, og hver<br />

assosiasjon må være spesifisert ved sin adresserolle. Hver <strong>for</strong>ekomst av assosiasjonen mellom<br />

to objekter har da en litt ulik semantisk betydning. Eksempel: en gammel adresse har en annen<br />

betydning enn en ny adresse eller en postadresse.<br />

Noen ganger kan en uttrykke det samme ved å benytte flere assosiasjoner mellom to klasser.<br />

Hvis antallet kan variere, og det er mer enn noen få (2-3) assosiasjoner er det <strong>for</strong>etrukket å<br />

benytte en assosiasjonsklasse frem<strong>for</strong> flere assosiasjoner.<br />

B: Tilleggsopplysninger om selve relasjonen.<br />

Datoen assosiasjonen gjelder fra, er et eksempel på en tilleggsopplysning om assosiasjonen.<br />

Denne in<strong>for</strong>masjonen gis <strong>for</strong> hver <strong>for</strong>ekomst av en assosiasjon. Som nevnt over kan en<br />

<strong>for</strong>ekomst av Person være knyttet til flere adresser, og <strong>for</strong> hver slik knytning (assosiasjon)<br />

kunne vi tenke oss at vi ønsker å lagre en fradato. For eksempel kan det spesifiseres at den<br />

nye adressen til en bestemt person begynte å gjelde den 2.4.2005.<br />

Begge typer attributter kan finnes i den samme assosiasjonsklassen. For eksempel kan en<br />

tenke seg at det er ønskelig både å skille mellom type assosiasjon og spesifisere når en<br />

assosiasjon begynte å gjelde.<br />

44


12 Diagrammer<br />

Når en modellerer et domene, er det teknisk mulig å lage ett stort diagram som viser alle<br />

klasser, typer og assosiasjoner <strong>for</strong> domenet. I praksis er det likevel i de fleste tilfellene mest<br />

hensiktsmessig å lage flere diagrammer som til sammen viser domenets in<strong>for</strong>masjonsmodell.<br />

Kriteriene <strong>for</strong> oppdeling av modellen i ulike diagrammer er ikke entydige, behovene vil være<br />

<strong>for</strong>skjellige.<br />

En hovedregel er at diagrammet skal kommunisere sitt meningsinnhold til leseren på en god<br />

måte. Gjør der<strong>for</strong> ikke diagrammet så komplekst at det blir ”uleselig”, <strong>for</strong> eksempel ved svært<br />

mange assosiasjoner og arvepiler som krysser hverandre, og et stort antall klasser.<br />

Menneskehjernen klarer som en tommelfingerregel å håndtere 7 +/- 2 visuelle elementer om<br />

gangen. En kan tenke seg ulike kriterier <strong>for</strong> oppdeling i ulike diagrammer. Noen slike kriterier<br />

er:<br />

• Oppdeling etter blankett<br />

• Oppdeling etter avdeling<br />

• Oppdeling etter saksområde<br />

• Ett diagram som viser arvestrukturer (hva noe er), og andre diagrammer som viser<br />

bruk av klassene, med assosiasjoner.<br />

45


13 Oppsummering av eksempel Flyttemelding<br />

Diagrammet under viser en av mange mulige modeller <strong>for</strong> in<strong>for</strong>masjonsinnholdet i<br />

flyttemeldingen, slik den ble presentert i kapittel 5.<br />

.<br />

Figur 18: In<strong>for</strong>masjonsmodell <strong>for</strong> flyttemelding<br />

Denne modellen er ut<strong>for</strong>met uten tanke på bruk av grunndataelementer. I kapittel 15.2.1<br />

modifiseres modellen slik at den gjenbruker grunndataelementer.<br />

46


14 Tabeller<br />

Tabeller <strong>for</strong>ekommer i mange blanketter. Normalt er disse todimensjonale, men de kan også<br />

ha flere enn to dimensjoner via en spesiell oppstilling. I elektroniske blanketter representeres<br />

den tredje dimensjonen typisk ved arkfaner.<br />

Når vi skal uttrykke tabeller i en modell, kan vi representere hver av tabelldimensjonene med<br />

et attributt og også selve tabellverdien med et attributt. Vi tenker oss en tabell <strong>for</strong><br />

innrapportering av antall innbyggere <strong>for</strong> hvert fylke og ulike år:<br />

Fylke/Årstall 2000 2001 2002 2003 2004 2005 2006<br />

Østfold<br />

Akershus<br />

Oslo/Akershus<br />

Oslo<br />

Hedmark<br />

Oppland<br />

Buskerud<br />

Vestfold<br />

Telemark<br />

Aust-Agder<br />

Vest-Agder<br />

Rogaland<br />

Hordaland<br />

Sogn og Fjordane<br />

Møre og Romsdal<br />

Sør-Trøndelag<br />

Nord-Trøndelag<br />

Nordland<br />

Troms<br />

Finnmark<br />

Figur 19: Tabell <strong>for</strong> angivelse av antall innbyggere i alle fylker <strong>for</strong> ulike år.<br />

Dette kan modelleres med følgende klasse:<br />

Figur 20: Modell <strong>for</strong> innbyggere i ulike fylker <strong>for</strong> ulik år.<br />

Attributtet fylke av semantisk type navn representerer den vertikale tabelldimensjonen, mens<br />

årstall av semantisk type år står <strong>for</strong> den horisontale dimensjonen. Attributtet innbyggere av<br />

semantisk type antall svarer til innholdet i tabellen. Flere dimensjoner i tabellen kan<br />

modelleres med tilsvarende ekstra attributter i klassen.<br />

47


I flyttemeldingseksempelet kan vi betrakte oversikten over personer som en tabellstruktur.<br />

Klassen Person har kolonnene i tabellen som attributter. Radene i tabellen representeres ved at<br />

assosiasjonen mellom Flytting og Person tillater at det eksisterer mange personer <strong>for</strong> hver<br />

flytting.<br />

48


15 Grunndata og gjenbruk<br />

Det er viktig å gjenbruke klasser <strong>for</strong> å få til semantisk interoperabilitet og samordning. Det er<br />

ikke ønskelig at det opprettes en ny klasse som prøver å uttrykke det samme som en<br />

eksisterende klasse.<br />

I <strong>modellering</strong>sprosessen kan en gjenbruke klasser både fra egne og andres modeller, og fra<br />

grunndatamodellen.<br />

15.1 Grunndatamodell<br />

Grunndata er et sett med felles dataelementer som er mye brukt i mange <strong>for</strong>skjellige domener<br />

(etater). Typisk vil dette være felter som en vil kunne <strong>for</strong>vente er <strong>for</strong>håndsutfylte i skjemaer.<br />

Det utarbeides in<strong>for</strong>masjonsmodeller som beskriver sentrale egenskaper ved personer,<br />

enheter, bedrifter, adresser og eiendommer. De mest brukte klassene og attributtene er samlet<br />

i en felles grunndatamodell.<br />

Den felles grunndatamodellen skal fryses i fastlagte perioder, og endringer i modellen skal<br />

gjøres etter fastlagte prosedyrer.<br />

Figur 21: Foreløpig modell over de mest sentrale grunndata (versjon 0.1)<br />

Grunndatamodellen i produksjonsversjonen av systemet vil kunne avvike noe fra modellen<br />

som er gjengitt over.<br />

15.2 Gjenbruk av elementer i in<strong>for</strong>masjonsmodellen<br />

15.2.1 Eksempel: Gjenbruk i modell av flyttemelding<br />

Klassediagrammet under viser et eksempel på en modifisert modell <strong>for</strong> flyttemelding som<br />

benytter grunndataelementer i stor grad.<br />

Person-klassen i grunndata manglet en del in<strong>for</strong>masjonselementer som er nødvendige i<br />

flyttemeldinga, der<strong>for</strong> har vi laget en subklasse PersonSomFlytter 10 .<br />

10 Siden grunndata-klassene og klassene som benyttes i modellen av flyttemeldingsskjemaet ligger i ulike pakker,<br />

kunne vi ha kalt klassen <strong>for</strong> Person, selv om grunndata-klassen også heter Person.<br />

49


Adressestrukturen i grunndatamodellen har likhetstrekk med adressestrukturen i vår tidligere<br />

flyttemeldingsmodell, men en del attributter <strong>for</strong>deler seg litt annerledes. Vi antar i dette<br />

tilfellet at adresse-strukturen i grunndatamodellen stort sett kan erstatte vår adressestruktur. Vi<br />

har likevel laget noen subklasser av adresseklassene i grunndatamodellen <strong>for</strong> å få med<br />

tilleggsadresse og land. Noen attributter i grunndatamodellen har også andre navn enn<br />

attributtene i vår modell, men ved å se på de semantiske typene og på definisjonene til<br />

attributtene og klassene, kan vi se om de likevel representerer det samme.<br />

Figur 22: Flyttemelding modellert med grunndata<br />

Diagrammet i Figur 22 ser ved første øyekast mye mer komplisert ut enn vårt utkast i Figur<br />

18, på grunn av at vi har med en del attributter og superklasser fra grunndatamodellen som i<br />

praksis ikke er relevant <strong>for</strong> flyttemeldinger. Mye av denne kompleksiteten kan vi gjemme i<br />

dokumentmodellen ved å skjule attributter og fjerne overordnede klasser. Dette vises i kapittel<br />

16.5.<br />

I de neste delkapitlene diskuterer vi enkelte aspekter ved gjenbruk av modellelementer<br />

nærmere, og henviser tilbake til eksempelet over.<br />

15.2.2 Grunndata<br />

For å fremme samordning av data bør en gjenbruke modellelementer fra grunndatamodellen<br />

hvis det er mulig. Domenemodeller som skal opp på kon<strong>for</strong>mt eller harmonisert nivå bør ha<br />

en kobling til en eller flere grunndataklasser ved hjelp av arv eller assosiasjoner.<br />

Så tidlig som mulig i <strong>modellering</strong>sprosessen bør en identifisere in<strong>for</strong>masjonselementer som<br />

allerede finnes i grunndatamodellen. Dette kan være både klasser og attributter. Noen ganger<br />

lar det seg gjøre å benytte grunndataklasser i domenemodellen u<strong>for</strong>andret. Andre ganger er<br />

det nødvendig med flere attributter <strong>for</strong> å beskrive en klasse i domenemodellen enn dem som<br />

50


finnes i grunndatamodellen. I slike tilfeller er det mest hensiktsmessig å lage en subklasse av<br />

en grunndataklasse.<br />

<strong>Retningslinjer</strong>: Gjenbruk av grunndata<br />

• Identifiser elementer som kan gjenbrukes fra grunndatamodellen som så tidlig som mulig<br />

• Tilpasning av domenemodellen til grunndatamodellen fremmer gjenbruk<br />

Tilsvarende er det ikke alltid vi trenger alle attributtene fra en grunndataklasse i<br />

domenemodellen. Da kan grunndataklassen brukes slik den <strong>for</strong>eligger. De overflødige<br />

attributtene fra grunndatamodellen kan senere skjules i dokumentmodellene som baserer seg<br />

på domenemodellen, slik at de overflødige attributtene ikke blir med i<br />

meldingsspesifikasjonene. Framgangsmåten <strong>for</strong> å fjerne attributter i dokumentmodeller er<br />

beskrevet i kapittel 16.2.<br />

Noen ganger er det som ser ut til å være et attributt i domenemodellen, representert ved en<br />

klasse i grunndatamodellen, eller omvendt. Som en generell regel er det alltid gunstigst å<br />

tilpasse domenemodellen til grunndatamodellen.<br />

Hvis en domenemodell <strong>for</strong> eksempel har et attributt som representerer kommune, går det an å<br />

lage en assosiasjon til Kommune-klassen i grunndatamodellen i stedet <strong>for</strong> attributtet, slik som<br />

vist i Figur 22.<br />

På denne måten taper en ikke in<strong>for</strong>masjonsrikdom, og sørger samtidig <strong>for</strong> å øke<br />

gjenbrukbarheten i modellen ved å peke til et eksisterende dataelement (klassen Kommune).<br />

Dermed uttrykker modellen at det en faktisk mener med kommune, er det samme som det alle<br />

andre som refererer til standardklassen Kommune mener. Det er viktig å <strong>for</strong>sikre seg om at<br />

begrepet i grunndatamodellen faktisk er de samme som begrepet i domenemodellen ved å<br />

sjekke definisjonen til klassen.<br />

Den motsatte situasjonen vil også oppstå, et begrep i virkeligheten kan være representert ved<br />

en klasse i domenemodellen og et attributt i grunndatamodellen. Koblingen mellom klassen i<br />

domenemodellen og attributtet i grunndatamodellen vil da være ivaretatt ved at et attributt i<br />

domeneklassen har et attributt av samme semantiske type som attributtet i grunndatamodellen.<br />

15.2.3 Gjenbruk av egne in<strong>for</strong>masjonselementer<br />

Foreløpig ikke skrevet<br />

15.2.4 Gjenbruk av andres in<strong>for</strong>masjonselementer<br />

Foreløpig ikke skrevet<br />

15.3 Oppsummering av in<strong>for</strong>masjons<strong>modellering</strong><br />

Modelleringen skal gi minst to ulike resultater; en in<strong>for</strong>masjonsmodell som er en språklig<br />

godt <strong>for</strong>ankret, domene-harmonisert og skjemauavhengig beskrivelse av virkeligheten, og<br />

som kan danne grunnlaget <strong>for</strong> en analyse av semantisk interoperabilitet.<br />

In<strong>for</strong>masjons<strong>modellering</strong>en skal også gjøre det mulig å definere et sett med<br />

dokumentmodeller. Det er trolig lettest å oppnå disse <strong>for</strong>delene ved å gjøre<br />

<strong>modellering</strong>sarbeidet i en bestemt rekkefølge:<br />

1. Begynn med de enkelte beskrivelsene av den virkeligheten som skal modelleres. Dette<br />

vil ofte være ett eller flere skjemaer, men det kan også være eksisterende<br />

in<strong>for</strong>masjonsmodeller, tekstdokumenter eller lignende. Lag beskrivelse (modell) av<br />

51


innholdet i beskrivelsen (skjemaet) som er så generell som mulig. Kontroller at<br />

modellen representerer alle in<strong>for</strong>masjonselementene. Hvis det er flere skjema eller<br />

andre beskrivelser som skal modelleres kan de godt modelleres i ulike diagram, men<br />

det er også mulig lage et felles diagram. Det som er viktig, er å gjenbruke klasser<br />

mellom de ulike diagrammene.<br />

2. Kontroller at den felles modellen inneholder alle in<strong>for</strong>masjonselementer (attributter,<br />

klasser) som er nødvendige <strong>for</strong> å representere in<strong>for</strong>masjonen i skjemaene som er<br />

modellert. Kontroller dette mot ett og ett skjema om gangen.<br />

3. Undersøk hvorvidt in<strong>for</strong>masjonsstrukturen som er modellert legger til rette <strong>for</strong><br />

gjenbrukbarhet, og modifiser eventuelt modellen <strong>for</strong> å gjøre in<strong>for</strong>masjonsstrukturen<br />

mer gjenbrukbar. Dette trinnet vil muligens ikke gjennomføres i alle tilfeller, men det<br />

anbefales sterkt å gjøre det ved senere revisjoner av modellen.<br />

52


16 Dokument<strong>modellering</strong><br />

Ved generering av en dokumentmodell fra in<strong>for</strong>masjonsmodellen, vil modellen i<br />

utgangspunktet være helt lik. Alle behov i dokumentmodellen sett fra et <strong>modellering</strong>sståsted<br />

skal være dekket av in<strong>for</strong>masjonsmodellen. Du har kun lov til å lage et sant subsett av<br />

in<strong>for</strong>masjonsmodellen. For å tilpasse dokumentmodellen til sitt <strong>for</strong>mål må den bearbeides i<br />

<strong>for</strong>m av at:<br />

• urettede assosiasjonene må endres<br />

• kardinalitet på assosiasjoner kan innskrenkes eventuelt nullstilles<br />

• irrelevante attributter bør skjules<br />

• semantiske typer ved behov ytterligere spesialiseres<br />

• eventuelle rotklasser spesifiseres<br />

16.1 Assosiasjoner<br />

I dokumentmodellen er assosiasjoner både representert med grafiske assosiasjonsstreker (som<br />

i in<strong>for</strong>masjonsmodellen) og som attributter i de klassene som assosiasjonen knytter sammen.<br />

En klasses eventuelle assosiasjoner til andre klasser som ikke inngår i dokumentmodellen vil<br />

også vises som attributter, men vil være indikert deaktivert ved at kardinaliteten er satt til null.<br />

16.1.1 Rettede assosiasjoner<br />

I dokumentmodellen må assosiasjonen omgjøres til å være rettet. Retning på assosiasjoner kan<br />

påvirkes av hvilket skjema som modelleres og eget ståsted. Er det arbeidstaker eller<br />

arbeidsgiver som ”eier” arbeids<strong>for</strong>holdet? I dokumentmodellen settes retningen ut fra<br />

modellens spesifikke kontekst og ønsket representasjon i meldingsspesifikasjonen.<br />

I første versjon av SERES er rettede assosiasjoner den eneste typen assosiasjon som er<br />

implementert i den delen av systemet som genererer meldingsspesifikasjoner. SERES støtter<br />

bruk av aggregat og komposisjon i dokumentmodellene, men systemet støtter <strong>for</strong>eløpig ikke<br />

disse konstruksjonene i generering av meldingsspesifikasjoner. Dette innebærer at rettede<br />

assosiasjoner, aggregering og komposisjon blir seende likt ut i meldingsspesifikasjonene.<br />

Derav regelen om å bruke denne assosiasjonstypen. Det er imidlertid ønskelig med mer<br />

fleksibilitet i generering av meldingsspesifikasjoner. Aggregat og komposisjon vil der<strong>for</strong><br />

støttes i senere utgaver av SERES, og da vil regelen <strong>for</strong> bruk av assosiasjoner i<br />

dokumentmodellen utvides.<br />

Retningslinje:<br />

• Urettede assosiasjoner må omgjøres til rettede assosiasjoner (aggregering og<br />

komposisjon kan benyttes)<br />

16.1.2 Kardinalitet<br />

Kardinaliteten til en assosiasjonsende kan gjøres strengere (mer begrenset) i en<br />

dokumentmodell og <strong>for</strong>hold til utgangspunktet fra in<strong>for</strong>masjonsmodellen. Det betyr at<br />

minimum kardinalitet kan økes (typisk fra null) og maksimum kardinalitet kan reduseres<br />

(typisk fra ubegrenset). Kardinaliteten på ”assosiasjonsattributtet” kan også settes til null <strong>for</strong> å<br />

53


deaktivere assosiasjonen. En viktig <strong>for</strong>utsetning <strong>for</strong> dette er at kardinaliteten ikke er satt til<br />

minimum én i in<strong>for</strong>masjonsmodellen.<br />

Retningslinje:<br />

• Kardinaliteten kan gjøres strengere<br />

16.2 Skjuling av attributter<br />

I in<strong>for</strong>masjonsmodellen opp<strong>for</strong>dres det til gjenbruk av in<strong>for</strong>masjonselementer. Dette vil i<br />

mange tilfeller innebære at modellereren gjenbruker klasser fra andre domener som<br />

inneholder flere attributter enn det som er relevant i modellererens domene. Det er heller ikke<br />

alltid at alle attributter som inngår i en in<strong>for</strong>masjonsklasse, selv om den er laget innen<strong>for</strong> eget<br />

domene, er relevant i den videre prosessen i dokument<strong>modellering</strong>en. Slike attributter skjules<br />

i dokumentmodellen ved å sette kardinaliteten til null.<br />

Retningslinje:<br />

• Irrelevante attributter bør skjules<br />

16.3 Semantiske typer<br />

In<strong>for</strong>masjonsmodellen har to hovedmål:<br />

1. Den skal støtte en analyse <strong>for</strong> å finne ut om det er potensial <strong>for</strong> interoperabilitet.<br />

2. Den skal støtte generering av dokumentmodeller og derav meldingsspesifikasjoner.<br />

Punkt én indikerer at de semantiske typene må være tilstrekkelig semantisk spesifisert <strong>for</strong> å<br />

unngå mis<strong>for</strong>ståelser i en slik prosess. Neste punkt endrer perspektivet på semantiske typer.<br />

Nå blir kobling mot <strong>for</strong>mat og muligheter <strong>for</strong> validering mer relevant. En motivasjon <strong>for</strong> å<br />

spesialisere kan være at samme semantiske type brukt <strong>for</strong> <strong>for</strong>skjellige klasseattributter i<br />

modellen ønskes validert ulikt. Ettersom en semantisk type bare kan være koplet til ett <strong>for</strong>mat,<br />

innebærer det at den må spesialiseres <strong>for</strong> å få til dette.<br />

Der<strong>for</strong> er det mulig ytterligere å spesialisere semantiske typer i dokumentmodellen ut fra et<br />

<strong>for</strong>materings- og valideringsbehov. Spesialiseringer ut fra slike hensyn bør unngås i<br />

in<strong>for</strong>masjonsmodellen. Indikasjoner på at en semantisk type er blitt <strong>for</strong> spesialisert i<br />

in<strong>for</strong>masjonsmodellen er at det bare er en eller få <strong>for</strong>ekomster av denne, særlig hvis<br />

<strong>for</strong>ekomstene kun brukes finnes i én klasse.<br />

De semantiske typene kan spesialiseres videre i dokumentmodellen, <strong>for</strong> eksempel hvis det<br />

trengs spesielle valideringsregler eller en bestemt kodeliste <strong>for</strong> et attributt. Attributter vil som<br />

regel dekkes tilfredsstillende av de semantiske typene beløp, dato og navn uten spesialisering,<br />

både i in<strong>for</strong>masjonsmodellen og i dokumentmodeller. Når det gjelder bruk av de semantiske<br />

typene kode, mål og identifikator, må vi bygge ut spesialiseringshierarkier av disse <strong>for</strong> bruk i<br />

dokumentmodeller. Dette <strong>for</strong>di en her må kunne serialisere de semantiske typene til ulike<br />

representasjoner avhengig av semantikken i attributtet. Spesialisering av en semantisk type vil<br />

ofte være nødvendig når klassene i en dokumentmodell inneholder flere ulike attributter som<br />

benytter samme semantiske type (kode, mål eller identifikator).<br />

<strong>Retningslinjer</strong>: Semantiske typer i dokumentmodell<br />

• Semantiske typer kan spesialiseres i en dokumentmodell <strong>for</strong> å gjøre ønsket grad av<br />

validering mulig<br />

• En ny semantisk type må være en subtype av semantisk type fra in<strong>for</strong>masjonsmodellen<br />

54


16.4 Rotklasse<br />

I dokumentmodellen kan en eller flere klasser defineres som rotklasser. Dette kan være<br />

nødvendig <strong>for</strong> å gjøre modellen presis nok til at den kan danne grunnlaget meldingsmodeller.<br />

Klasser som settes som rotklasse i dokumentmodellen danner det ”ytterste” nivået i<br />

meldingsspesifikasjonene som baseres på dokumentmodellen. Dette samsvarer på mange<br />

måter logisk med ”hvem sitt perspektiv” en dokumentmodell har. I praksis sier en at<br />

rotklassen er ”det meldingen handler om”. Som en hovedregel vil assosiasjonene være rettet<br />

fra rotklassen.<br />

Retningslinje:<br />

• Rotklasser kan defineres dersom hensiktsmessig<br />

16.5 Dokumentmodell av flyttemelding<br />

Figur 23 viser en dokumentmodell basert på in<strong>for</strong>masjonsdiagrammet av flyttemeldingen<br />

(Figur 22). Her er superklasser vi ikke trenger blitt skjult, og ikke-relevante attributter er grået<br />

ut. Klassene har også automatisk fått attributter som representerer assosiasjonene. Alle<br />

assosiasjoner er videre gjort rettet. Dette innebærer at et objekt kan kjenne til eksistensen av<br />

objekter av den/de klassene pilene peker på. For eksempel er det kun <strong>for</strong>ekomster av klassen<br />

Adresse som kjenne til et objekt av klassen Matrikkelnummer. Alle assosiasjoner knyttet til<br />

klassen Flytting, peker fra Flytting og til de andre klassene. Grunnen til dette er at klassen<br />

Flytting er antatt å være ”hovedtema” <strong>for</strong> flyttemeldingsskjemaet og dermed også <strong>for</strong> denne<br />

dokumentmodellen. Klassen er i tillegg satt som rotklasse. Klassen danner da det ”ytterste”<br />

nivået i meldingsspesifikasjonen som lages med utgangspunkt i dokumentmodellen.<br />

Denne modellen kan nå danne utgangspunkt <strong>for</strong> generering av en meldingsmodell, og slik kan<br />

vi lage en meldingsspesifikasjon <strong>for</strong> in<strong>for</strong>masjonen i modellen. Ulike aspekter med denne<br />

modellen diskuteres nærmere i de neste kapitlene.<br />

Figur 23: Dokumentmodell <strong>for</strong> flyttemelding<br />

55


17 Meldings<strong>modellering</strong><br />

Meldings<strong>modellering</strong> omfatter utarbeidelse av <strong>for</strong>mater og <strong>for</strong>matfamilier, kobling av<br />

<strong>for</strong>matfamilier til dokumentmodeller og generering av spesifikasjoner.<br />

17.1 Format<br />

Godkjenning og kontroll (validering) av semantiske typer i en meldingsspesifikasjon skjer<br />

gjennom typenes kopling til <strong>for</strong>mater. En semantisk type knyttes til et <strong>for</strong>mat gjennom et<br />

<strong>for</strong>matfamiliemedlem. Et antall slike medlemmer, hver knyttet til sin semantiske type, inngår i<br />

en <strong>for</strong>matfamilie. Denne mekanismen ble etablert <strong>for</strong> å kunne definere <strong>for</strong>mater uavhengig av<br />

en konkret dokumentmodell. Dette gjør det enklere å endre <strong>for</strong>mat uten å måtte endre<br />

dokumentmodellen, samt enkelt å regenerere en meldingsbeskrivelse når en dokumentmodell<br />

er endret.<br />

En semantisk type er knyttet til ett <strong>for</strong>mat innen<strong>for</strong> en valgt <strong>for</strong>matfamilie, men et <strong>for</strong>mat kan<br />

deles av flere semantiske typer innen<strong>for</strong> en eller flere <strong>for</strong>matfamilier. Dersom en semantisk<br />

type ikke er eksplisitt knyttet til et <strong>for</strong>mat, er det under<strong>for</strong>stått at <strong>for</strong>matet <strong>for</strong> den nærmeste<br />

supertypen, som har <strong>for</strong>mat, skal brukes (implisitt gitt <strong>for</strong>mat). De grunnleggende semantiske<br />

typene (toppnodene) skal alltid være representert i en <strong>for</strong>matfamilie.<br />

Et <strong>for</strong>mat er enten et enkel<strong>for</strong>mat eller et kompleks<strong>for</strong>mat. Et enkel<strong>for</strong>mat kan være en<br />

spesialisering av et annet enkel<strong>for</strong>mat, bare med en eller flere nye restriksjoner. Et<br />

enkel<strong>for</strong>mat kan alternativt peke til en kodeliste. Et kompleks<strong>for</strong>mat utgjøres av to sett av<br />

enkel<strong>for</strong>mater, verdielementer og tilleggselementer. Dersom et kompleks<strong>for</strong>mat bare har ett<br />

verdielement, skal navnet på dette ikke brukes i meldingsspesifikasjonene.<br />

<strong>Retningslinjer</strong>: Format<br />

• Alle grunnleggende semantiske typer skal være knyttet til et <strong>for</strong>mat i en <strong>for</strong>matfamilie.<br />

Andre semantiske typer skal enten være knyttet direkte til et <strong>for</strong>mat eller indirekte<br />

gjennom en overliggende type i hierarkiet.<br />

• Et <strong>for</strong>mat kan deles av flere semantiske typer.<br />

• Hvert <strong>for</strong>mat har et unikt navn blant alle <strong>for</strong>mater i systemet.<br />

• Et <strong>for</strong>mat spesifiseres som en kombinasjon av XML Schema-fasetter.<br />

Konseptmodellen er vist i vedlegg II Konseptmodell <strong>for</strong> semantiske typer og <strong>for</strong>mater.Feil!<br />

Fant ikke referansekilden.<br />

17.2 Formatstandard<br />

Selv om en semantisk type kan representeres med flere alternative <strong>for</strong>mater, vil det være en<br />

<strong>for</strong>del å standardisere på ett gitt <strong>for</strong>mat <strong>for</strong> et gitt <strong>for</strong>mål eller et bestemt miljø.<br />

Standardisering av <strong>for</strong>mater bidrar til teknisk interoperabilitet mellom mange involverte<br />

parter. I prinsippet kunne en tenke seg at verktøyet ga brukeren valget mellom et standard<br />

<strong>for</strong>mat eller et gitt annet <strong>for</strong>mat <strong>for</strong> hver semantisk type. Dette vil imidlertid gi heterogene<br />

spesifikasjoner som vi ser som uønskelig. I stedet knytter vi et samordnet standard sett av<br />

<strong>for</strong>mater til alle grunnleggende semantiske typer. Avledete semantiske typer vil bruke det<br />

samme <strong>for</strong>matet, med mindre et annet spesifikt <strong>for</strong>mat knyttes til den avledete typen via<br />

<strong>for</strong>matfamilien.<br />

56


For å illustrere dette vil standard<strong>for</strong>matet <strong>for</strong> den semantiske typen dato være dato<strong>for</strong>matet i<br />

ISO 8601 som også brukes i XML Schema-typen date: År-Måned-Dag, <strong>for</strong> eksempel "2004-<br />

12-16". Formatet representerer en validering som svarer til xsd:date.<br />

17.3 Administrering av <strong>for</strong>mater<br />

Hvert <strong>for</strong>mat har et unikt navn i hele systemet og beskriver hvordan en semantisk type skal<br />

representeres og valideres i meldinger. Formater opprettes og administreres i SERES Format.<br />

Alle XSD-datatyper er tilgjengelig i SERES Format <strong>for</strong> kopling til enkel<strong>for</strong>mater.<br />

Kompleks<strong>for</strong>mater er sammensatt av verdielementer og tilleggselementer som begge refererer<br />

til spesifikke enkel<strong>for</strong>mater.<br />

Et enkel<strong>for</strong>mat kan beskrives nærmere gjennom å definere en eller flere restriksjoner fra et<br />

sett av slike. Alle restriksjonene skal være oppfylt.<br />

Følgende type restriksjoner er tilgjengelig (tilhørende XML Schema-betegnelser i parentes):<br />

• minimumsverdi (xsd:minInclusive): Minimalt tillatt verdi som også kan oppnås.<br />

• maksmumsverdi (xsd:maxInclusive): Maksimalt tillatt verdi som også kan oppnås.<br />

• minimumsskranke (xsd:minExclusive): Nedre skranke dvs. at verdien kan komme så<br />

nær en nedre verdi en vil, men kan ikke være lik skrankeverdien. F.eks. vekta på en<br />

pakke kan ha en skrankeverdi på null som betyr at vekta kan være så liten en bare kan<br />

tenke seg, men verdi null ønsker vi å signalisere som en feil.<br />

• maksimumsskranke (xsd:maxExclusive): Øvre skranke dvs. at verdien kan komme så<br />

nær en øvre verdi en vil, men kan ikke være lik skrankeverdien.<br />

• absoluttlengde (xsd:length): Verdien uttrykkes med en tekststreng som skal ha en gitt<br />

lengde. F.eks. skal et organisasjonsnummer ha nøyaktig lengde 9.<br />

• minimumslengde (xsd:minLength): Verdien uttrykkes med en tekststreng som ikke kan<br />

være kortere enn et gitt antall tegn. F.eks. skal en identifikator være på minst 3 tegn,<br />

man kan ellers være så lang en bare vil.<br />

• maksimumslengde (xsd:maxLength): Verdien uttrykkes med en tekststreng som ikke<br />

kan være lengre enn et gitt antall tegn. F.eks. skal et navn være på maksimal 50 tegn<br />

<strong>for</strong> ikke å bli avkortet ved lagring i en gitt database.<br />

• totalsifre (xsd:totalDigits): En verdi skal uttrykkes med et bestemt antall sifre, f.eks. et<br />

fødselsnummer som skal være akkurat 11 sifre.<br />

• desimalsifre (xsd:fractionDigits): En verdi skal<br />

• regulæruttrykk (xsd:pattern)<br />

Noen av restriksjonene kan gjerne administreres i par i brukergrensesnittet:<br />

• mininumsverdi + maksimumsverdi: lukket intervall<br />

• minimumsskranke + maksimumsskranke: åpent intervall<br />

• mininumsverdi + maksimumsskranke eller minimumsskranke + maksimumsverdi:<br />

halvåpent intervall<br />

• minimumslengde + maksimumlengde: lengdeintervall<br />

17.3.1 Kompleks<strong>for</strong>mater<br />

Et enkel<strong>for</strong>mat uttrykkes i XSD gjennom en simpleType, mens et kompleks<strong>for</strong>mat uttrykkes<br />

gjennom en complexType. Et eksempel på semantisk type som kan uttrykkes gjennom et<br />

kompleks<strong>for</strong>mat er dato. Formatet sammensattDato kan defineres med innholdselementene<br />

57


dag, maaned og aar. maaned og dag kan ha enkel<strong>for</strong>matet positivtHeltall, mens aar kan ha<br />

enkel<strong>for</strong>matet heltall. Formatet uttrykkes slik:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Et annet eksempel på en semantisk type som kan trenge et kompleks<strong>for</strong>mat er mål. Formatet<br />

sammensattMåling kan bestå av verdielementet verdi og tilleggselementet enhet. Enhet er<br />

påkrevet og har de<strong>for</strong> ikke standardverdi. Ettersom <strong>for</strong>matet bare har ett verdielement skal<br />

ikke verdielementets navn brukes. Måling uttrykkes i XSD ved:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

En kan videre tenke seg en semantisk type lengde som en avledning av mål. Denne er såpass<br />

spesifikk at den kan ha et <strong>for</strong>mat lengdemaal knyttet til en kodeliste lengdeenhet. Videre skal<br />

enhet kunne ha en defaultverdi m. Denne kan spesifiseres slik:<br />

58


<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

17.4 Kodelister<br />

Ethvert enkel<strong>for</strong>mat kan som nevnt koples til en kodeliste. Denne angir lovlige verdier (koder)<br />

<strong>for</strong> det attributtet som via semantisk type er koplet til dette enkel<strong>for</strong>matet.<br />

En kodeliste er en samling av kodelisteelementer, der et kodelisteelement består av en kode<br />

samt en definisjon eller beskrivelse av hva koden representerer. I <strong>for</strong>eliggende versjon er det<br />

ingen begrep-mekanisme mellom (slik konseptmodellen angir). Kodelister kan være flate eller<br />

hierarkiske. Foreløpig er det bare mulig å operere med flate lister som imidlertid implisitt kan<br />

ha en hierarkisk struktur. Hierarkiet må imidlertid hentes ut ved <strong>for</strong>tolkning av kodeverdiene.<br />

I SERES er kodelister <strong>for</strong> det meste tenkt koplet til spesialiseringer (subtyper) av den<br />

semantiske typen kode, men også subtyper av andre semantiske typer kan være aktuelle. Det<br />

er ingen tekniske begrensninger <strong>for</strong> hvilke semantiske typer som (via et enkel<strong>for</strong>mat) kan<br />

koples til en kodeliste.<br />

Kodelister er en egen konstruksjon som administreres <strong>for</strong> seg uavhengig av <strong>for</strong>mater. Det er<br />

mulig å importere og eksportere kodelister i SERES<strong>for</strong>mat.<br />

59


18 Oppsummering<br />

In<strong>for</strong>masjons<strong>modellering</strong>en skal gi minst to ulike resultater; en in<strong>for</strong>masjonsmodell som er en<br />

språklig godt <strong>for</strong>ankret, domene-harmonisert og skjemauavhengig beskrivelse av<br />

virkeligheten, og som kan danne grunnlaget <strong>for</strong> en analyse av semantisk interoperabilitet.<br />

In<strong>for</strong>masjons<strong>modellering</strong>en skal også gjøre det mulig å definere et sett med<br />

dokumentmodeller. Det er trolig lettest å oppnå dette ved å gjøre <strong>modellering</strong>sarbeidet i en<br />

bestemt rekkefølge:<br />

1. Begynn med de enkelte beskrivelsene av den virkeligheten som skal modelleres. Dette<br />

vil ofte være ett eller flere skjemaer, men det kan også være eksisterende<br />

in<strong>for</strong>masjonsmodeller, tekstdokumenter eller lignende. Lag beskrivelse (modell) av<br />

innholdet i beskrivelsen (skjemaet) som er så generell som mulig. Kontroller at<br />

modellen representerer alle in<strong>for</strong>masjonselementene. Hvis det er flere skjema eller<br />

andre beskrivelser som skal modelleres kan de godt modelleres i ulike diagram, men<br />

det er også mulig lage et felles diagram. Det som er viktig, er å gjenbruke klasser<br />

mellom de ulike diagrammene.<br />

2. Kontroller at den felles modellen inneholder alle in<strong>for</strong>masjonselementer (attributter,<br />

klasser) som er nødvendige <strong>for</strong> å representere in<strong>for</strong>masjonen i skjemaene som er<br />

modellert. Kontroller dette mot ett og ett skjema om gangen.<br />

3. Undersøk hvorvidt in<strong>for</strong>masjonsstrukturen som er modellert legger til rette <strong>for</strong><br />

gjenbrukbarhet, og modifiser eventuelt modellen <strong>for</strong> å gjøre in<strong>for</strong>masjonsstrukturen<br />

mer gjenbrukbar. Dette trinnet vil muligens ikke gjennomføres i alle tilfeller, men det<br />

anbefales sterkt å gjøre det ved senere revisjoner av modellen.<br />

Dokumentmodellen beskriver en in<strong>for</strong>masjonsstruktur som kan danne utgangspunkt <strong>for</strong> en<br />

meldingsmodell, og dermed serialiseres til en meldingsbeskrivelse.<br />

I dokumentmodellen skal det ikke finnes urettede assosiasjoner, og en kan skjule attributter og<br />

klasser som ikke trengs i meldingene basert på modellen. Ved å bestemme hvilke klasser som<br />

skal være rotklasse, bestemmer en hva som blir det ytterste elementet i<br />

meldingspesifikasjonen.<br />

I meldings<strong>modellering</strong>en lager en <strong>for</strong>matfamilier, som er et sett med <strong>for</strong>mater, som beskriver<br />

hvordan semantiske typer fysisk skal representeres i en melding.<br />

Meldingsmodellen består av en dokumentmodell koblet til en <strong>for</strong>matfamilie. Den fysiske<br />

representasjonen av en meldingsmodell er en meldingsspesifikasjon. Meldingsspesifikasjonen<br />

benyttes til å validere (godkjenne) faktiske meldinger som utveksles mellom systemer/etater<br />

60


I Semantiske typer<br />

I.a Figur med arvestruktur<br />

61


I.b Definisjoner på semantiske typer<br />

De semantiske typene som er definert i figuren på <strong>for</strong>rige side og i tabellen under, representerer en skisse til harmoniserte semantiske typer. Vi<br />

har funnet det viktig å etablere en slikt sett tidlig slik at det ikke gror opp et uttall av varianter som er semantisk nært beslektet. Dette kommer i<br />

tillegg til de grunndataklassene som også gjøres tilgjengelig fra starten av.<br />

Semantisk type Arver Svarer til Definisjon<br />

identifikator cc:Identifier Tegnsekvens som unikt identifiserer et objekt i en <strong>for</strong>valtet mengde<br />

av objekter.<br />

kode cc:Code Tegnsekvens som unikt representerer et element av type begrep,<br />

navn, verdi etc. i en liste av beslektete elementer.<br />

tekst cc:Text - Tekstlig, ikke-unik betegnelse eller beskrivelse.<br />

xsd:string<br />

alternativ cc:Indicator -<br />

xsd:boolean<br />

In<strong>for</strong>masjonselement med to mulige verdier. Eksempler: 'Ja' eller<br />

'Nei', 'Sant' eller Usant', 'Har' eller 'Har ikke', 'Er' eller 'Er ikke', 'På'<br />

eller 'Av'<br />

Dimensjonsløs, beregnet størrelse.<br />

tall cc:Numeric -<br />

xsd:decimal<br />

antall cc:Quantity - Tellbar størrelse uten enhetsangivelse. Eksempler: 'Antall barn',<br />

xsd:integer 'Antall arbeidsgivere'. Det tillates negative antall som uttrykk <strong>for</strong><br />

'manglende antall'.<br />

mål cc:Measure Fysisk størrelse som kan måles med et verktøy eller instrument,<br />

eller planlagt størrelse <strong>for</strong> mulig senere realisering og måling.<br />

Størrelsen består av en numerisk måleverdi og en måleenhet.<br />

beløp cc:Amount Pengeverdi med angitt valuta.<br />

tidspunkt cc:Date Time - Punkt i historisk tid, dvs. en gitt dato og et gitt klokkeslett i et<br />

xsd:dateTime bestemt år og tidssone, eller periodisk tidspunkt i <strong>for</strong>hold til<br />

standard nullpunkt <strong>for</strong> standard tidsperiode (år, måned, dag)<br />

binærobjekt cc:Binary<br />

Object<br />

En begrenset sekvens av bytes, typisk en datafil<br />

navn tekst cc:Name Offisielt navn på personer, <strong>for</strong>etak etc.<br />

beskrivelse tekst Tekstlig beskrivelse<br />

<strong>for</strong>holdstall tall cc:Rate Tall som stammer fra <strong>for</strong>holdet mellom to andre tall<br />

62


prosenttall tall cc:Percent Tall som fremkommer som <strong>for</strong>holdet mellom to tall multiplisert<br />

med 100<br />

dato tidspunkt xsd:date Tidspunkt med døgnoppløsning, dvs tidsrommet innen<strong>for</strong> et gitt<br />

historisk døgn<br />

klokkeslett tidspunkt xsd:time Tidspunkt innen<strong>for</strong> et gitt døgn<br />

måned tidspunkt xsd:gMonth Periodisk månedsangivelse, dvs. tidsrommet som utgjøres av en gitt<br />

måned uavhengig av år<br />

år tidspunkt xsd:gYear Tidspunkt med årsoppløsning, dvs. et helt historisk år (f.eks. '2006')<br />

månedOgÅr tidspunkt xsd:gYearMont Tidspunkt med månedsoppløsning, dvs. en hel måned i et gitt år<br />

h<br />

(f.eks. '2006-04')<br />

dagOgMåned tidspunkt xsd:gMonthDay Periodisk datoangivelse, dvs. tidsrommet som utgjøres av et helt<br />

døgn i en gitt måned uansett år (f.eks. 05-17)<br />

dagIMåneden tidspunkt xsd:gDay Periodisk dagangivelse, dvs. en bestemt dag i hver måned (f.eks.<br />

'17')<br />

ukedag kode Ukedagene 'mandag', 'tirsdag' ... 'søndag'<br />

ukenummmer tidspunkt Periodisk ukeangivelse, dvs. tidsrommet som utgjøres av en gitt uke<br />

(mandag-søndag) uavhengig av år<br />

lydfil binærobjekt cc:Sound Binærobjekt med lydinnhold, f.eks. av type mp3, wav, mid.<br />

videofil binærobjekt cc:Video Binærobjekt med videoinnhold, f.eks. av type avi, mov, mpeg.<br />

grafikkfil binærobjekt cc:Graphic Binærobjekt med grafisk innhold, dvs. figurer og symboler, f.eks.<br />

av type svg, png, gif.<br />

bildefil binærobjekt cc:Picture Binærobjekt med fotografisk eller malttegnet materiale, f.eks. av<br />

type jpg.<br />

personidentifikator identifikator Identifikasjon av en fysisk person<br />

organisasjonsidentifikator identifikator Identifikasjon av en organisasjon<br />

eiendomsidentifikator identifikator Identifikasjon av fast eiendom<br />

fødselsnummer personidentifikator Et norsk fødselsnummer<br />

organisasjonsnummer organisasjonsidentifikator Et norsk organisasjonsnummer<br />

bedriftsnummer organisasjonsidentifikator En unik identifikator <strong>for</strong> bedrifter som igjen er organisert under<br />

enheter med sine respektive organisasjonsnummer.<br />

matrikkelnummer eiendomsidentifikator Matrikkelnummer <strong>for</strong> en eiendom sammensatt av<br />

kommunenummer, gårdsnummer, bruksnummer, seksjonsnummer<br />

og eventuelt festenummer<br />

63


gårdsnummer eiendomsidentifikator Gårdsnummer <strong>for</strong> en eiendom<br />

bruksnummer eiendomsidentifikator Bruksnummer <strong>for</strong> en eiendom<br />

seksjonsnummer eiendomsidentifikator Seksjonsnummer <strong>for</strong> en eiendom<br />

festenummer eiendomsidentifikator Festenummer <strong>for</strong> en eiendom<br />

eiendelsidentifikator identifikator Identifikasjon av en eiendel (løsøre)<br />

bilkjennemerke eiendelsidentifikator Norsk bilkjennemerke normalt bestående av to bokstaver med<br />

påfølgende 5 sifre. Også 4 sifre og tidligere nummersystemer som<br />

<strong>for</strong>tsatt er i bruk er inkludert.<br />

åndsverksidentifikator identifikator Identifikasjon av et åndsverk (skrifter, kunstverk, oppfinnelser etc)<br />

ISBN åndsverksidentifikator Det internasjonale identifikasjonssystem <strong>for</strong> bøker (International<br />

Standard Book Number) administrert av 'International ISBN<br />

Agency'<br />

ISSN åndsverksidentifikator Det internasjonale identifikasjonssystem <strong>for</strong> tidsskrifter<br />

(International Standard Serial Number) administrert av 'ISSN<br />

International Centre'<br />

ressursidentifikator identifikator Identifikator <strong>for</strong> fysiske eller elektroniske ressurser<br />

URI ressursidentifikator Identifikasjon av nettressurs (Uni<strong>for</strong>m Resource Identifier)<br />

URL URI Adresse til nettressurs (Uni<strong>for</strong>m Resource Locator<br />

URN URI Navn <strong>for</strong> nettressurs (Uni<strong>for</strong>m Resource Name)<br />

regionkode kode Kode <strong>for</strong> et geografisk område<br />

virksomhetskode kode Kode som beskriver ulike aspekter ved en virksomhet<br />

telefonnummer ressursidentifikator Telefonnummer, både norsk og utenlandsk. Gjelder både <strong>for</strong><br />

fasttelefoni, mobiltelefoni og telefaks<br />

varighet mål xsd:duration Mål av type tid, dvs. målt eller planlagt <strong>for</strong>løpt tid uavhengig av når<br />

det skjer<br />

lengde mål Målt eller angitt lengde<br />

areal mål Målt eller angitt areal<br />

volum mål Målt eller angitt volum<br />

hastighet mål Målt eller angitt hastighet<br />

temperatur mål Målt eller angitt temperatur<br />

energi mål Målt eller angitt energi<br />

masse mål Målt eller angitt masse<br />

64


vinkel mål Målt eller angitt vinkel<br />

omkrets lengde Målt eller angitt omkrets, dvs. en lengden av en lukket kurve langs<br />

et objekts ytterside<br />

epost ressursidentifikator Epost-adresse (f.eks.: 'ola.nordmann@firmaet.no')<br />

kommunenummer regionkode Offisielt kommunenummer <strong>for</strong> norsk kommune, basert på<br />

løpenummer <strong>for</strong> fylke og kommune i fylke<br />

landkode regionkode Internasjonal landkode, normalt ulike ISO 3166-varianter<br />

kjønn kode Biologisk kjønn<br />

husnummer eiendomsidentifikator Identifikator <strong>for</strong> en bygning eller del av bygning som er unik<br />

innen<strong>for</strong> ei gate.<br />

postnummer regionkode Identifikator <strong>for</strong> poststeder i Norge som <strong>for</strong>valtes av 'Posten Norge<br />

AS'<br />

eiendomstype kode Type og status <strong>for</strong> eiendom: 'Grunneiendom', 'Anleggseiendom',<br />

'Festegrunn', 'Eiersseksjon', 'Jordsameie', 'Selveier', 'Selveier i<br />

sameie', 'Utgått'.<br />

etasjetype kode Type etasje, f.eks. kjeller, sokkel, hovedetasje, loft<br />

adressetype kode Type adresse: 'Hjemmeadresse', 'Jobbadresse', 'Fakturaadresse',<br />

'Besøksadresse', 'Fritidsboligadresse' etc.<br />

personstatus kode Status <strong>for</strong> en person, om personen er død, bor i utlandet, er<br />

umyndiggjort eller har en normal status (bor i Norge som myndig<br />

person).<br />

sivilstand kode Sivilstand: 'Enslig', 'Samboer', 'Partnerskap', 'Gift', 'Skilt', 'Enke'<br />

eller 'Enkemann'<br />

registeringstype kode Diplomat, klient, adressesperring ol<br />

organisasjons<strong>for</strong>m virksomhetskode Type organisasjon som et <strong>for</strong>etak er: 'Enkeltperson<strong>for</strong>etak',<br />

'Aksjeselskap', 'Ansvarlig selskap' etc. Synonymer er 'Selskaps<strong>for</strong>m'<br />

og 'Enhetstype'<br />

næringskode virksomhetskode Type næring i <strong>for</strong>m av en NACE-kode<br />

enhetsstatus virksomhetskode Avvikende status <strong>for</strong> enhet: Oppløst, konkursåpnet, under<br />

tvangsavvikling, oversendt tingretten etc.<br />

sektorkode virksomhetskode Navn på institusjonell sektorkode som er en organisatorisk<br />

kategorisering<br />

mål<strong>for</strong>m kode Mål<strong>for</strong>m (bokmål, nynorsk eller samisk) en person eller enhet<br />

65


ønsker <strong>for</strong> skriflig kommunikasjon med det offentlige<br />

styrerolle virksomhetskode Navn på funksjon i et styre<br />

kapitaltype kode Type kapital f.eks.<br />

'Aksjekapital', 'Selskapskapital', 'Grunnkapital', 'Grunnfondsbeviska<br />

pital' etc.<br />

personrelasjon kode Primærrolle en person har oven<strong>for</strong> en gitt annen person: 'Mor', 'Far',<br />

'Barn', 'Ektefelle', 'Samboer', 'Partner', 'Fostermor', 'Fosterfar',<br />

'Fosterbarn', 'Verge'<br />

kontakttype kode Type kontaktmulighet: 'Hustelefon', 'Mobiltelefon', 'IPTelefon',<br />

'Telefaks', 'Epost', 'Henvendelse via nettadresse'<br />

kontaktsammenheng kode Navn på rolle en har ved kontakt med andre<br />

cc: refererer til Core Component Permissible Representation Term.<br />

xsd: refererer til XML Schema datatype.<br />

Noen av spesialiseringene av de semantiske typene dekker standardens "Secondary Represention Terms", men SERES har ikke satt en endelig<br />

grense <strong>for</strong> spesialisering av semantiske typer på samme måte som vi finner et endelig sett av Permissible Representation Terms. SERES bygger<br />

ut strukturen av standardiserte semantiske typer til en taksonomi som skal dekke et nasjonalt behov, men vi vil i utgangspunktet søke å unngå<br />

innføring av grunnleggende semantiske typer (rottyper som ligger på øverste nivå) som ikke er definert i CCTS. Om vi lager nye rottyper, bør<br />

disse sendes som utvidelses<strong>for</strong>slag til internasjonal standardisering. Kun <strong>Brønnøysundregistrene</strong> kan etablere nye rottyper i SERES.<br />

66


II Konseptmodell <strong>for</strong> semantiske typer og <strong>for</strong>mater<br />

Figur 24 Konseptmodell <strong>for</strong> semantiske typer, <strong>for</strong>mater, <strong>for</strong>matfamilier mm.<br />

67


III Forkortelser<br />

Forkortelser brukes typisk som et ledd i et CamelCase-basert navn.<br />

adm Administrasjon,<br />

administrativ/t<br />

apr April<br />

av Av verdien<br />

aug August<br />

des Desember<br />

feb Februar<br />

fk Førstkommende<br />

<strong>for</strong>eg Foregående<br />

grl Grunnlagt<br />

id Identifikator<br />

inkl Inklusive<br />

jan Januar<br />

jr Junior<br />

jun Juni<br />

jul Juli<br />

lø Lørdag<br />

nr Nummer<br />

ma Mandag<br />

mai Mai<br />

mar Mars<br />

min Minimumsverdi<br />

maks Maksimumsverdi<br />

mfl Med flere<br />

mht Med hensyn til<br />

mill Million<br />

min Minutt<br />

mrd Milliard<br />

mva Merverdiavgift<br />

no Norsk<br />

nov November<br />

nto Netto<br />

off Offentlig<br />

ofl Og flere<br />

okt Oktober<br />

ol Og liknende<br />

on Onsdag<br />

osv Og så videre<br />

ovf Oven<strong>for</strong><br />

pa Pro anno<br />

pb Postboks<br />

pga På grunn av<br />

pkt Punkt<br />

pr Per<br />

pst Prosent<br />

resp Respektive<br />

sep September<br />

spm Spørsmål<br />

sr Senior<br />

sst Samme sted<br />

stk Stykk/er<br />

stud Student<br />

sø Søndag<br />

så Samme år<br />

såk Såkalt<br />

temp Temperatur<br />

ti Tirsdag<br />

tils Til sammen<br />

tilsv Tilsvarende<br />

tlf Telefon<br />

to Torsdag<br />

tom Til og med<br />

ult Ultimo (siste)<br />

UT Universaltid<br />

(tidligere GMT)<br />

utg Utgave<br />

v Vei<br />

vedk Vedkommende<br />

vg Videregående<br />

vha Ved hjelp av<br />

vol Volum<br />

vs Versus<br />

(mot eller i <strong>for</strong>hold<br />

til)<br />

vsa Ved siden av<br />

årg Årgang<br />

årh Århundre<br />

68


IV Internasjonale standarder<br />

SERES relaterer seg til en rekke internasjonale standarder enten ved at standarden er basis <strong>for</strong><br />

detaljer i løsningen eller standarden er studert <strong>for</strong> å finne gode mekanismer eller det er vurdert<br />

hvordan standarden kan støttes på sikt om det kommer krav om dette.<br />

UML v1.4 In<strong>for</strong>masjonsmodellene og dokumentmodellene er basert UMLs klassediagram<br />

og følger versjon 1.4 av standarden.<br />

XMI v.1.2 Modelleringsverktøyet kan importere og eksportere modeller som er beskrevet<br />

i denne standarden.<br />

ISO11179 Dette er den gamle metadatastandarden fra ISO. Den er basis <strong>for</strong> en del av<br />

begrepsapparatet vi bruker.<br />

ebXML og Core Components De grunnleggende semantiske typene er norske<br />

oversettelser av Core Component Permissible Representation Terms (CC PRT)<br />

fra UN/CEFACT. De semantiske typene i SERES har referanser til CC PRT og<br />

er ekvivalente med dem. Grunndataklassene og deres attributter skal ha<br />

referanser til Core Components Library (UN/CCL) der paralleller finnes.<br />

Dublin Core Benyttes som standard <strong>for</strong> administrative metadata knyttet til modellelementer<br />

(klasser, attributter, typer med flere).<br />

XBRL XBRL (eXtensible Business Reporting Language) er en XML-standard <strong>for</strong><br />

regnskapin<strong>for</strong>masjon og tilgrensende områder. Den er i ferd med å få godt<br />

fotfeste internasjonalt og er der<strong>for</strong> en svært aktuell type ekstern referanse <strong>for</strong><br />

in<strong>for</strong>masjonselementer i SERES.<br />

HL7 Innen<strong>for</strong> helsedomenet finnes den utbredte HL7-standarden (Health Level 7).<br />

Denne er tatt i bruk av KITH <strong>for</strong> deres hovedoppdragsgiver Rikstrygdeverket<br />

(RTV). HL7 vedlikeholder en standardisert in<strong>for</strong>masjonsmodell (RIM -<br />

Reference In<strong>for</strong>mation Model) uttrykt i UML med bruk av arv og<br />

assosiasjoner. KITH-modeller har vært studert i <strong>for</strong>bindelse med utvikling av<br />

<strong>modellering</strong>sretninglinjene i SERES.<br />

V Meldinger over landegrensene<br />

Det er et økende behov <strong>for</strong> å sende meldinger over landegrensene. I disse tilfelle vil det måtte<br />

benyttes en internasjonal standard <strong>for</strong> meldingsbeskrivelser som i de fleste tilfelle må<br />

oversettes fra nasjonale beskrivelser. Det er da naturlig å oversette <strong>for</strong>skjellen både i<br />

in<strong>for</strong>masjonsstruktur og språk i en felles prosess. Det som da vil være nyttig er at vi kan legge<br />

inn tilleggsin<strong>for</strong>masjon som relaterer våre in<strong>for</strong>masjonselementer til en internasjonal standard,<br />

f.eks. XBRL (se vedlegg Internasjonale standarder).<br />

69


VI Import av eksterne modeller<br />

Som hjelp til import av eksterne modeller er det utviklet et separat verktøy kalt XMIgen som<br />

leser et UML-<strong>for</strong>ankret XML-<strong>for</strong>mat XMDL som er svært mye enklere enn XMI. Verktøyet<br />

genererer som navnet antyder en XMI-basert modell som kan importeres av SERESuml.<br />

Programmet kan også generere XMDL-filer basert på SQL-baserte etableringsskript <strong>for</strong><br />

databaser.<br />

Programmet skal i utgangspunktet bare brukes internt ved <strong>Brønnøysundregistrene</strong>. Det viktige<br />

her er XMDL-<strong>for</strong>matet som alle som vil kan generere <strong>for</strong> å få spesifisert sine metadata <strong>for</strong><br />

enkel import til SERES. <strong>Brønnøysundregistrene</strong> gir bistand dersom noen vil bruke SQLfunksjonaliteten<br />

til programmet.<br />

Her er et eksempel på innholdet i dette <strong>for</strong>matet:<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

<br />

Her er en fullt sett av XML-komponenter en kan bruke:<br />

Tagnavn Attributtnav Beskrivelse Subtagge Eksempel<br />

n<br />

r<br />

model Alle<br />

unntatt<br />

'model'<br />

name Kortnavnet på<br />

modellen<br />

name="SSB"<br />

tekst Fullnavnet på tekst="Domenemodel<br />

70


modellen l <strong>for</strong> SSB"<br />

datatype<br />

name Datatypens navn name="nummer"<br />

def Definisjon av<br />

def="Pengeverdi med<br />

datatypen<br />

enhet"<br />

inherits Navn på supertypen<br />

inherits="identifikator<br />

ved arv<br />

"<br />

abstract Datatypen er abstrakt<br />

hvis verdi er '+'<br />

abstract="+"<br />

root Datatypen har ingen<br />

supertyper hvis verdi<br />

er '+'<br />

root="+"<br />

leaf Dataypen har ingen<br />

leaf="-" (attributtet<br />

subtyper hvis verdi '+'<br />

kan da sløyfes)<br />

cc Tilsvarende Core<br />

Component<br />

Permissible<br />

Representation Term<br />

cc="Date Time"<br />

xsd Tilsvarende XML<br />

Schema Datatype<br />

xsd="dateTime"<br />

iso Tilsvarende ISOstandard-element<br />

class 'attribute'<br />

name Klassenavn name="Pasient"<br />

def Definisjon av klassen def="Fysisk person"<br />

inherits Navn på superklasse inherits="Person"<br />

cc Tilsvarende Aggregate<br />

Core Component<br />

attribute<br />

name Attributtnavn name="gatenavn"<br />

datatype Navn på datatype <strong>for</strong><br />

attributtet<br />

datatype="navn"<br />

multiplicity Kardinalitet <strong>for</strong><br />

attributtet<br />

multiplicity="1..*"<br />

def Definisjon av<br />

attributtet<br />

def="Offisielt navn"<br />

cc Tilsvarende Basic<br />

Core Component<br />

association 'role'<br />

name Assosiasjonsnavn name="personadresse"<br />

role<br />

name Assosiasjonsendenavn<br />

(rollenavn)<br />

name="har"<br />

class Navn på assosiert<br />

klasse<br />

class="Adresse"<br />

multiplicity Kardinalitet <strong>for</strong><br />

assosiasjonsenden<br />

multiplicity="0..*"<br />

71


associationClas<br />

s<br />

def Definisjon av<br />

assosiasjonsenden<br />

name Assosiasjonsklassenav<br />

n<br />

def="Offisielt navn"<br />

'attribute' name="Adressetype"<br />

72


VII Ordliste<br />

1. Abstrakt<br />

Et modellelement kan være abstrakt. Det betyr at det ikke kan instansieres, dvs. det kan ikke<br />

ha <strong>for</strong>ekomster i den utgaven som er abstakt, men bare som spesialiseringer som bygger på<br />

det abstakte elementet. En abstrakt klasse i en in<strong>for</strong>masjonsmodell kan ikke benyttes i en<br />

dokumentmodell, men subklasser som bygger på denne og derigjennom henter attributter og<br />

assosiasjoner fra denne kan brukes. Dersom et attributt er koplet til en abstrakt semantisk type<br />

i in<strong>for</strong>masjonsmodellen, må attributtet i tilhørende dokumentmodell koples til en<br />

spesialisering av den abstakte typen.<br />

2. Antonymer<br />

Ulike ord med motsatt betydning. Disse deles inn i to undertyper: absolutte og relative. De<br />

absolutte har bare to mulige verdier, mens de relative kan ha mellomverdier.<br />

Eksempler på absolutte antonymer: ja og nei, sant og usant, gutt og jente.<br />

Eksempler på relative antonymer: ung og gammel (med mellomverdier litt ung, halvgammel<br />

etc.), høy og lav (med mellomverdi normalhøy).<br />

Ref. Synonymer, Homonymer, Hyponymer og hyperonymer, Polysemer, Meta<strong>for</strong>er.<br />

3. Arv<br />

Arv er en relasjon som brukes mellom klasser. Klasser som inngår i en arverelasjon er en<br />

spesialisering av /generalisering fra en annen klasse. For eksempel kan klassene ”Bedrift” og<br />

”Person” ha ”Subjekt” som en felles generalisering. Da arver ”Bedrift” og ”Person” fra<br />

”Subjekt” og er altså spesialiseringer av ”Subjekt”. En spesialisering av en klasse arver alle<br />

egenskaper fra superklassen.<br />

4. Assosiasjon<br />

En assosiasjon mellom to klasser beskriver at objekter av hver klasse kan eller skal ha en<br />

<strong>for</strong>bindelse seg imellom. For eksempel er det naturlig med en assosiasjon mellom en<br />

Arbeidsgiver- og Arbeidstaker-klasse. En assosiasjon har to Assosiasjonsender som uttrykker<br />

hvilke roller objekter av klassene har til hverandre. Noen ganger er rollene symmetriske, men<br />

ikke alltid.<br />

Assosiasjoner er urettede eller rettede. I en urettet assosiasjon er objekter av begge klassene<br />

synlige <strong>for</strong> hverandre, mens i en rettet assosiasjon er objekter av den klassen synlig som har<br />

en pil rettet mot seg, mens objekter av klassen i andre enden er "ukjent" <strong>for</strong> den andre.<br />

5. Assosiasjonsende<br />

En assosiasjonsende er koplingen mellom en Assosiasjon og en Klasse. En assosiasjonsende<br />

kan ha et navn, ha kardinalitet og være navigerbar (eller ikke). Navnet benyttes <strong>for</strong> å indikere<br />

rollen tilknyttet klasse har i <strong>for</strong>hold til den andre klassen. Kardinaliteten angir antall objekter<br />

(av klassen koblet til assosiasjonsenden) som kan inngå i den gitte assosiasjonen til ethvert<br />

objekt av klassen koblet til den andre assosiasjonsenden. At den er navigerbar betyr at<br />

tilknyttet klasse er synlig <strong>for</strong> (kan hente in<strong>for</strong>masjon fra) klassen tilknyttet andre<br />

assosiasjonsenden.<br />

6. Assosiasjonsklasse<br />

En assosiasjonsklasse er en assosiasjon som er utvidet med en egen klasse <strong>for</strong> ekstra<br />

beskrivelse.Den uttrykkes i en klassediagram ved en assosiasjon på vanlig måte og som har en<br />

stiplet linje til en egen klasse. Klassen og assosiasjonen er ett og samme modellelement som<br />

har egenskaper både som klasse og assosiasjon.<br />

73


7. Attributt<br />

Et attributt <strong>for</strong> en klasse beskriver en karakteristikk eller en egenskap til alle objektene av<br />

denne klassen. For eksempel er fødselsdato en egenskap ved en person, og dermed et aktuelt<br />

attributt <strong>for</strong> klassen ”Person”.<br />

8. Avgiverdimensjon<br />

En dimensjon er en gitt faktor som er definert <strong>for</strong> en avgivermodell. Eksempler på<br />

avgiverdimensjoner er: Organisasjons<strong>for</strong>m, Antall ansatte, Næringstype, Varetype, Eksport /<br />

import osv. En avgivermodell kan ha et visst antall avgiverdimensjoner. Noen<br />

avgivermodeller vil bare ha en avgiverdimensjon, mens andre vil relatere seg til mange eller<br />

alle potensielle avgiverdimensjoner.<br />

9. Avgivermodell<br />

Et viktig spørsmål i <strong>for</strong>hold til overlappssøk er hvem som kan eller må avgi en blankett eller<br />

en melding. Avgivermodellen er en beskrivelse av hvem som skal levere en blankett eller<br />

melding og <strong>for</strong> hvilket tidspunkt eller tidsperiode dataene i blankett/meldingen gjelder. All<br />

in<strong>for</strong>masjon som kan være relevant i <strong>for</strong>hold til hvem som skal levere hvilken in<strong>for</strong>masjon bør<br />

taes med.<br />

10. Blankett<br />

En blankett er et elektronisk eller papirbasert skjema. En blankett inneholder hele eller deler<br />

av in<strong>for</strong>masjonen fra en eller flere dokumentmodeller, og inneholder i tillegg in<strong>for</strong>masjon om<br />

ut<strong>for</strong>ming.<br />

11. CamelCase<br />

CamelCase er en måte å sette sammen flere ord til ett sammenhengende "ord" ved å bruke stor<br />

<strong>for</strong>bokstav på hvert nytt ord som knyttes på, f.eks. LønnForStrevet. Det er to undertyper:<br />

lowerCamelCase som starter med liten <strong>for</strong>bokstav og UpperCamelCase som starter med stor<br />

<strong>for</strong>bokstav.<br />

12. Diagram<br />

Et diagram er det en bruker primært opererer gjennom <strong>for</strong> å bygge opp og endre modeller. Et<br />

diagram er presentert i et egen diagrampanel. Den viser aktuelle klasser med relasjoner som<br />

brukeren selv har valgt ut og er organisert slik brukeren selv ønsker det. For eksempel vil et<br />

diagram ha posisjons- (koordinat-) in<strong>for</strong>masjon koplet til klasse- og relasjonssymboler. En<br />

bruker kan ha flere diagrammer som hver viser ulike utsnitt av in<strong>for</strong>masjonsmodellen, eller de<br />

kan alternativt vise dokumentmodeller.<br />

13. Dimensjonsløs<br />

En størrelse er dimensjonsløs dersom den ikke har en tilknyttet enhet. Dimensjonsløse<br />

størrelser er som regel <strong>for</strong>holdstall, f.eks. andelen kvinner i en bedrift som uttrykkes som en<br />

fraksjon (0,59) eller en prosent 59%.<br />

14. Dokument<br />

En fil der innholdet har et gitt eksternt definert <strong>for</strong>mat.<br />

15. Dokumentmodell<br />

En dokumentmodell definerer strukturen og semantikken <strong>for</strong> innholdet i en gitt melding som<br />

brukes <strong>for</strong> in<strong>for</strong>masjonsutveksling mellom aktører. Den henter all semantikk fra<br />

74


in<strong>for</strong>masjonsmodellen ved å være et utplukk av in<strong>for</strong>masjonselementer herfra med eventuelle<br />

justeringer av disse <strong>for</strong> å passe til meldingen.<br />

16. Format<br />

Et <strong>for</strong>mat angir hvordan en semantisk type skal representeres i ulike sammenhenger. Vi skiller<br />

mellom transport<strong>for</strong>mat som beskriver hvordan den semantiske type representeres i<br />

meldinger, lagrings<strong>for</strong>mat som beskriver hvordan den semantiske typen representeres i ulike<br />

databaser og visnings<strong>for</strong>mat som beskriver hvordan den semantiske typen ser ut i elektroniske<br />

blanketter. Hvert <strong>for</strong>mat har et navn. Ett av <strong>for</strong>matene (eller det ene <strong>for</strong>matet) <strong>for</strong> en<br />

semantisk type vil være et standard<strong>for</strong>mat. Hvert <strong>for</strong>mat er definert gjennom en eller flere<br />

<strong>for</strong>matregler.<br />

17. Generalisering<br />

Se Arv.<br />

18. Gjenbrukssøk<br />

For å få overlappssøk til å fungere på en god måte er vi avhengige av at man benytter seg av<br />

eksisterende klasser der dette er mulig i stedet <strong>for</strong> å lage en ny klasse. Hvis bare deler av<br />

funksjonaliteten allerede finnes i klasse A, arver man A <strong>for</strong> så å lage en ny klasse B basert på<br />

funksjonaliteten i A. Gjenbrukssøket vurderer om det finnes klasser i in<strong>for</strong>masjonsmodellen<br />

som likner på den du prøver å lage. Brukeren får opp en liste over kandidatklasser og velger<br />

den som passer best.<br />

19. Grunndata<br />

Dette er sentrale deler av den totale in<strong>for</strong>masjonsmodellen som arves eller har relasjoner fra<br />

flere etatsspesifikke domenemodeller. Det at alle domenemodellene direkte eller indirekte<br />

skal referere til grunndata gjør at modellene samlet kan betraktes som en stor<br />

in<strong>for</strong>masjonsmodell.<br />

20. Grunnleggende semantiske typer<br />

Dette er de semantiske typer som ikke har supertyper, der<strong>for</strong> kalt rottyper. Dette er et sett på<br />

følgende 10 typer identifikator, kode, tekst, alternativ, tall, antall, mål, beløp, tidspunkt,<br />

binærobjekt. Alle andre semantiske typer skal være subtyper (gjennom ett eller flere ledd) av<br />

disse.<br />

21. Homonymer<br />

Ord som skrives og/eller uttales likt, men har flere betydninger. Disse deles inn i to<br />

undergrupper: Homofoner som uttales likt og Homografer som skrives likt.<br />

Eksempel på homofoner: vinn og vind<br />

Eksempel på homograf: egg (spiselig fra høna eller skjæredel på kniv).<br />

22. Hyponymer og hyperonymer<br />

Ord som er submengde eller supermengde av et annet ord.<br />

Eksempler: hingst er et hyponym av hest, mens hest er hyperonym av hingst.<br />

rose er et hyponym av plante, mens plante er hyperonym av rose.<br />

23. In<strong>for</strong>masjonselement<br />

Dette er et element i en in<strong>for</strong>masjonsmodell som representerer ett enkelt dataelement.<br />

75


24. In<strong>for</strong>masjonsmodell<br />

I SERES finnes det en in<strong>for</strong>masjonsmodell. Denne inneholder in<strong>for</strong>masjonselementer som<br />

behøves i <strong>for</strong>bindelse med avgivelse av in<strong>for</strong>masjon til det offentlige og mellom offentlige<br />

etater. In<strong>for</strong>masjons-modellen består av klasser og relasjoner mellom klassene. Vi arbeider<br />

med in<strong>for</strong>masjonsmodellen i hovedsak gjennom bruk av diagrammer.<br />

25. Klasse<br />

En klasse representerer et begrep i den virkelige verden. Sentrale eksempler på klasser i vårt<br />

system er Person og Enhet. En modellklasse består av et antall beskrivelseselementer som<br />

enten er attributter eller assosiasjoner. Disse elementene beskriver en felles<br />

in<strong>for</strong>masjonsstruktur til alle objektene av klassen. En klasse kan arve attributter og<br />

assosiasjoner fra en annen klasse (som da kalles superklasse). Fra superklassens synspunkt<br />

kalles klassen en subklasse.<br />

26. Kravspesifikasjon<br />

Detter er summen av funksjonelle krav til systemet. Disse kravene ”interesserer seg ikke” <strong>for</strong><br />

hvordan systemet skal realiseres i praksis.<br />

27. Kodeliste<br />

En kodeliste er en samling elementer, kalt kodelisteelementer, som hver har en kode og en<br />

definisjon. Koden er unik <strong>for</strong> hver kodeliste og definisjonen skal entydig beskrive det unike<br />

med elementet.<br />

28. Løvelement<br />

Nederste element i en trestruktur, også kalt løvnode. Elementet har ingen subelementer, bare<br />

eventuelle superelementer. Eksempler på løvelementer er løvklasser og løvtyper. Meta<strong>for</strong>en er<br />

et tre snudd på hodet slik at løvet (bladene) kommer nederst.<br />

29. Melding<br />

En melding er et dokument som inneholder data i et gitt struktur som er definert av en<br />

meldingsbeskrivelse. En melding sies også å være en instans av en meldings-beskrivelse.<br />

30. Meldingsspesifikasjon<br />

En meldingsspesifikasjon er en definert samling av in<strong>for</strong>masjonsbærere eller metadata med en<br />

gitt struktur. I vårt system vil den være et uttrekk fra en in<strong>for</strong>masjonsmodell via en<br />

dokumentmodell med påbygging av <strong>for</strong>mater og realisert som et XML Schema-dokument.<br />

31. Metadata<br />

Metadata er en definisjon eller beskrivelse av data, såkalt ”data om data”. Metadata gir<br />

in<strong>for</strong>masjon om hva et enkelt dataelement eller en gruppe av data egentlig er. Ordet er utledet<br />

fra gammelgresk "meta" som blant annet betyr "sammen med".<br />

32. Meta<strong>for</strong>er<br />

Dette er polysemer som er overført fra et gitt bruksområde til et annet.<br />

Eksempler: stolbein (fra menneske/dyrebein), flerarmet lysestake, trestruktur (fra trærne i<br />

skogen), rotelement, ikon (fra religiøse malerier).<br />

33. Modell<br />

En modell er en <strong>for</strong>enklet beskrivelse av deler av virkeligheten, som fokuserer på de<br />

aspektene/detaljene ved virkeligheten vi er interessert i.<br />

76


34. Modellelement<br />

Dette er et enkeltelement i en modell. Både klasser, klasseattributter, semantiske typer,<br />

assosiasjoner og generaliseringer er modellelementer.<br />

35. Modellering<br />

Modellering er oppbygging og endring av en Modell.<br />

36. Node<br />

En node betegner gjerne et element i en Trestruktur. Toppnoden eller rotnoden er den øverste<br />

i trestrukturen, mens løvnodene er de ytterste/underste i trestrukturen.<br />

37. Ontologi<br />

En ontologi (læren om hvordan ting er) er en in<strong>for</strong>masjonsmodell <strong>for</strong> et domene som<br />

inneholder beskrivelser av in<strong>for</strong>masjonselementer og relasjoner mellom disse. Ofte brukes<br />

ontologibegrepet om relativt avanserte mekanismer <strong>for</strong> relasjonsbeskrivelser, men blir også<br />

brukt som en samlebetegnelse <strong>for</strong> alle typer in<strong>for</strong>masjonsbeskrivelser, også vokabularer,<br />

Taksonomier og Tesauruser.<br />

38. Overlappssøk<br />

Søk etter innrapportering av samme in<strong>for</strong>masjon flere ganger. Eksempel på dette kan være<br />

sjekk av hvorvidt en bedrift må innrapportere antall ansatte ved et gitt årsskifte to eller flere<br />

ganger på like mange ulike blanketter.<br />

39. Pakke<br />

Dette er en administrativ samling av et antall in<strong>for</strong>masjonselementer og diagrammer som<br />

hører til en gitt etat eller fagavdeling i en etat. En klasse kan bare tilhøre en pakke og alle<br />

klasser må tilhøre en pakke.<br />

40. Paradata<br />

Dette er data som beskriver <strong>for</strong>hold rundt instanser av data, <strong>for</strong> eksempel hvor mange<br />

<strong>for</strong>ekomster av enkeltdata som ligger bak en middelverdi. Ordet er utledet fra gammelgresk<br />

"para" som betyr "ved siden av".<br />

41. Polysemer<br />

Polysemer likner på homonymer, men ordene har ikke flere ulike betydninger, men flere<br />

beslektede betydninger. Eksempel: vill i de ulike, men beslektede betydningene "ville<br />

blomster" og "ville mennesker".<br />

42. Rotelement<br />

Øverste element i en Trestruktur, også kalt rotnode. Elementet har ingen superelementer, bare<br />

eventuelle subelementer. Eksempler på rotelementer er rotklasser og rottyper. Meta<strong>for</strong>en er et<br />

tre snudd på hodet slik at roten kommer øverst.<br />

43. Semantikk<br />

Semantikk er beskrivelser av hva begreper betyr. Ofte blir ordene semantikk og Syntaks brukt<br />

i sammenheng. Grunnen til dette er gjerne at man sier at syntaksen er hvordan man skriver<br />

noe. Og at semantikken er meningsinnholdet i det man skriver. I ordene ”blå bil” er de to<br />

ordene med hver sine bokstaver i gitt rekkfølge syntaks, mens en beskrivelse av hva en bil er<br />

og hvordan fargen blå er utgjør semantikken i uttrykket.<br />

77


44. Semantisk type<br />

En semantisk type er et in<strong>for</strong>masjonselement som representerer et sentralt begrep. En<br />

semantisk type er satt sammen av et navn og en definisjon. Alle klasseattributter skal knyttes<br />

til en semantiske type.<br />

45. Serialisering<br />

Serialisering vil si å representere en modell som en lesbar fil. Ideelt sett skal det være et en-tilen-<strong>for</strong>hold<br />

mellom modellen som en f.eks. ser i <strong>for</strong>m av et diagram og den serialiserte filen.<br />

En meldingsspesifikasjon er en serialisering av en meldingsmodell.<br />

46. Spesialisering<br />

Se Arv<br />

47. Spesifikasjon<br />

I SERES er en spesifikasjon et XML-dokument som representerer en modell, som regel en<br />

meldingsmodell. Det er i størst mulig grad et en-til-en <strong>for</strong>hold mellom en modell og en<br />

spesifikasjon. All in<strong>for</strong>masjon som finnes i en modell bør også finnes i den tilhørende<br />

spesifikasjonen.<br />

48. Synonymer<br />

Ulike ord med samme eller lik betydning. Eksempler: gate og vei, klokke og ur.<br />

49. Syntaks<br />

Syntaks er <strong>for</strong>matreglene som gjelder <strong>for</strong> en skriftlig representasjon av in<strong>for</strong>masjon.<br />

50. Taksonomi<br />

En taksonomi er en samling begreper ordnet i en trestruktur. Taksonomier brukes typisk<br />

innen<strong>for</strong> artsbeskrivelser (dyr og planter) og typebetegnelser (utstyr, biler etc). SERES ordner<br />

settet av Semantisk typer i en taksonomi.<br />

51. Tesaurus<br />

En tesaurus en en avansert ordbok hvor alle ord er relatert til hverandre i <strong>for</strong>m av Synonymer,<br />

, Hyponymer og hyperonymer etc.<br />

52. Trestruktur<br />

En trestruktur er en samling elementer (noder) som er knyttet til hverandre i <strong>for</strong>m av <strong>for</strong>eldreeller<br />

barn-relasjoner, i denne sammenheng som regel betegnet som superelementer<br />

(supernoder) eller subelementer (subnoder).<br />

53. Versjoner<br />

Ulike utgaver av filer og beskrivelser som er knyttet til et gitt tidspunkt og eventuelt en gitt<br />

bruker.<br />

54. XMI<br />

XMI (XML Metadata Interchange) er et XML-<strong>for</strong>mat beskrevet i et vokabular hentet fra MOF<br />

(Meta-Object Facility). Åpningstaggen <strong>for</strong> en klasse kan se ut som følger:<br />


55. XMIgen<br />

XMIgen er et verktøy som leser et UML-<strong>for</strong>ankret XML-<strong>for</strong>mat kalt XMDL som er svært<br />

mye enklere enn XMI. Verktøyet genererer en XMI-basert modell som kan importeres av<br />

SERESuml. Programmet kan også generere XMDL-filer basert på SQL-baserte<br />

databaseetableringsskript.<br />

56. Åpen kildekode<br />

Dette er programmer tilgjengelig i <strong>for</strong>m av kildekode som alle kan bruke fullt ut uten å svare<br />

kostnader til den institusjon eller det firma som har intellektuelt eierskap til kildekoden. Det er<br />

god skikk å la egen kode som bygger på den åpne kildekoden også være åpen på samme måte.<br />

Som minimum må en referere til den åpne koden.<br />

57. Åpne standarder<br />

Dette er standarder som alle kan bruke fullt ut uten å svare kostnader til den institusjon eller<br />

det firma som har intellektuelt eierskap til standarden.<br />

58. Åpne system<br />

Dette er systemer som alle kan bruke fullt ut uten å svare kostnader til den institusjon eller det<br />

firma som har intellektuelt eierskap til systemet. Det er normalt et krav at en tydelig <strong>for</strong>teller<br />

til brukere av sitt eget system at en har implementert hele eller deler av det åpne systemet og<br />

at det angis hvem som har intellektuelt eierskap til dette.<br />

79


VIII Referanser<br />

1. Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modelling Language User Guide,<br />

2nd edition. Addison-Wesley, Boston, USA, 2005<br />

2. Codd, E. F.: A Relational Model of Data <strong>for</strong> Large Shared Data Banks.<br />

Communications of the ACM, Vol. 13, No. 6, June 1970, pp. 377-387<br />

3. Date,C.J.: An Introduction to Database Systems, Addison-Wesley, 8th edition, July<br />

2003, 983 pages, ISBN 0321197844<br />

4. Fowler M. & Scott K., 2001, UML distilled: a brief guide to the standard object<br />

modelling language, 2 nd edition, Addison Wesley Longman<br />

5. Glushko, R.J., og McGrath, T.: Document Engineering: analyzing and designing<br />

documents <strong>for</strong> business in<strong>for</strong>matics and Web services. MIT Press, Cambridge,<br />

Massachusetts, 2005.<br />

6. ISO/IEC 11179, Final committee draft, Parts 1-6<br />

7. ISO 15000-5 ebXML Core Components Technical Specification<br />

8. OASIS: Universal Business Language (UBL) Naming and Design Rules, 15 November<br />

2004<br />

9. Rumbaugh, J., Jacobson, I., Booch, G.: The Unified Modelling Language Reference<br />

Manual, 2nd edition. Addison-Wesley, Boston, USA, 2005<br />

10. W3C: Extensible Markup Language (XML) 1.0 (Second Edition), W3C<br />

Recommendation, 6 October 2000<br />

11. W3C: XML Schema, W3C Recommendations Parts 0, 1, and 2, 2 May 2001<br />

80

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!