Versjon 2024-09-06

Hvis du opplever problemer med disse veilederne er det fint om du kan sende en tilbakemelding til
standardiseringssekretariatet@kartverket.no

Send oss også gjerne en beskrivelse av hva du savner veiledning om.

Dokumentasjon

Lage en standardisert produktspesifikasjon

Veileder i å lage en standardisert produktspesifikasjon

Standardisert produktspesifikasjon

En produktspesifikasjon som både følger standarden for SOSI produktspesifikasjoner, og styrende dokument for standardisering med kvalitetssikring gjennom en åpen konsensusprosess.

SOSI Standarden for produktspesifikasjoner setter krav til struktur og innhold, og til godkjenning. Den skal følge en fast disposisjon, og inneholde faste elementer som identifikator, ansvarlig, temakategori o.l. Den skal også inneholde kvalitetskrav, geografisk utstrekning, formatrealiseringer og nødvendige metadata. Kartverket skal godkjenne alle SOSI produktspesifikasjoner. Dette er beskrevet i dokumentet https://register.geonorge.no/standarder/sosi/del-1-generell-del/sosi-produktspesifikasjoner-krav-og-godkjenning

Støtteverktøy

SOSI standarder

SOSI standarder utvikles etter klare prosessprinsipper. Enhver part eller person i geomatikkmiljøet kan sende inn prosjektforslag til standardiseringssekretariatet. Etter kvalitetssikering av forslaget sendes dette til standardiseringskomiteen for geomatikk (SKG) for klarsignal. Det etableres et prosjekt med åpen invitasjon til deltakelse, samt at nøkkeletater vil bli bedt om å delta. Når prosjektet er enige om at de har et ferdig utkast sendes dette ut for åpen høring, vanligvis i fire uker. Etter avsluttet høring innarbeider prosjektet kommentarene i utkastet, og kvalitetssikrer innholdet. Til slutt sendes det ferdige utkastet SKG for godkjenning. Standardiseringssekretariatet publiserer den godkjente standarden og merker tidligere versjon som erstattet.

Revidere en eksisterende SOSI-produktspesifikasjon

Veileder i å revidere en eksisterende SOSI produktspesifikasjon - FKB-utkast

Forrige versjon av denne veilederen fra 2021-07-09

Dette er en variant av løypa for å lage informasjonsmodellen i en SOSI-produktspesifikasjon som et utplukk av objekttyper fra fagområdene i SOSI del 2. https://sosi.geonorge.no/veiledere/Veileder_i_å_modellere_produktspesifikasjon_som_utplukk_fra_SOSI_fagområder.pdf

Steg 1 - Forberedelser med kopiering av pakker
  • Lag ny pakke i SOSI-modellregister

  • Opprett ny pakke under temapakka og legg den inn i revisjonskontroll (lage egen XMI-fil)

  • Pakkenavnet skal ikke inneholde blanke tegn, og XMI-fila skal ha samme navn som den ferdige pakka. (Standardisering gjør dette for FKB i forkant denne gangen)

  • Under utviklingsperioden skal pakka ha en tagged value SOSI_modellstatus med verdi utkast eller ukastOgSkjult.

  • Under utviklingsperioden kan man gjerne legge til Utkast i pakkenavnet og eventuelt en dato etter for å få rask oversikt i statusen på pakka.

Steg 2 - Kopier gjeldende applikasjonsskjema med alt innholdet fra en eksisterende produktspesifikasjon inn i den nye pakka
  • Gå til eksisterende pakke i SOSI-modellregister

  • Høyreklikk på eksisterende pakke og velg Copy → Copy to Clipboard → Full Structure

Da vil alle referanser mellom elementene i pakka, og alle referanser ut av pakka bli med inn i den nye pakka.

Steg 3 - Dra alle eksisterende underpakker og diagrammer opp i den nye pakka
  • Velg alle, og dra og slipp dem på den nye pakka. (Samme som punkt 7 i den gamle veilederen).

Steg 4 - Revider pakkeinformasjonen i ny pakke og slett gammel pakke
  • Kopier og revider innholdet i notefeltet, og innholdet i hovedpakkas tagged values. (Samme som punkt 15 og 21 i den gamle veilederen).

Spesielt for FKB Generell del 5.0
  • Kopier inn pakka "Generelle elementer" som ligger under den nye pakka FKB Generell del 5.0 i SOSI-modellregister

  • Gå til FKB Generell del 5.0 i SOSI-modellregister

  • Høyreklikk på pakka og velg Package Control → Get Latest

  • Høyreklikk på underpakka "Generelle elementer" og velg Copy → Copy to Clipboard → Full Structure

  • Deretter høyreklikk på den ny pakka og velg Paste → Paste Package

Da vil alle referanser mellom elementene og ut av underpakka "Generelle elementer" bli med inn i den nye pakka.

Dra inn nye supertyper i hoveddiagrammene og flytt arvepilene til de nye supertypene

  • Åpne eksisterende diagrammer som viser arv av fellesegenskaper

  • Dra aktuelle nye supertyper med fellesegenskaper inn i diagrammet

  • Flytt arvepilene fra gammel supertype over til ny supertype

  • Gamle supertyper kan bli liggende, de vil alle bli borte fra diagrammet når pakka "Generelle konsepter" fjernes

  • (Liknende beskrivelser kan finnes i punkt 11 og 12 i den gamle veilederen).

Fjern den gamle pakka med "Generelle konsepter"

  • Høyreklikk i Browser og velg Delete

Hent inn en ny oppdatert versjon av generelle elementer

  • Endre navn på pakka Generelle elementer til noe annet.

  • Kopier inn nyere versjon av pakka Generelle elementer fra SOSI Produktspesifikasjoner - Geovekst

  • Dra inn fellesegenskapsklassene i aktuelle hoveddiagrammer og flytt arvepiler til de nye supertypene.

  • For egne egenskaper som peker på kodelister fra pakka Generelle typer må man manuelt velge nyeste versjon:

  • -velg klasse

  • -velg egenskap (i Features-lista i midten nederst)

  • -under Type klikk på velgepil til høyre og naviger til ny versjon av datatypen eller kodelista og klikk på OK.

  • NB Husk at basistyper og geometrityper ikke skal kobles opp.

  • Når alle koblinger er reetablert kan den gamle renavna pakka slettes.

Steg 5 - Revider objekttyper og andre klasser

Lag hoveddiagram og oversiktsdiagram

  • Diagrammene skal oppfylle kravet om at objekttyper og datatyper skal vise alt sitt innhold i et diagram.

  • Dersom applikasjonsskjemaet har for mange klasser å vise fullt ut kan flere hoveddiagram lages, oppdelt etter geometrityper (flater) eller tematisk, eller begge.

  • Har man flere hoveddiagrammer skal man ha et oversiktsdiagram der alle klasser vises (tomme) slik at leseren får full oversikt over innholdet.

  • -Tips slå av egenskapsvisning for alle: "høyreklikk i diagrammet→Properties…​Elements→Attributes (slås av til venstre i lista)"

  • -Tips slå av egenskapsvisning for noen: "velg noen klasser i diagrammet og høyreklikk→Compartment Visibility..Attribute Visibility Public(slås av øverst til venstre)"

  • Husk å slå på visning av restriksjoner i hoveddiagrammer, "høyreklikk i diagrammet→Properties…​Elements→Constraints(til høyre i lista)"

  • Husk også at du har full styring på rekkefølgen på dokumentasjonen av diagrammer og klasser, bruk de blå pilene rett over browserlista.

  • Et eksempel med hoveddiagram og oversiktsdiagram er lagt ut på http://sosi.geonorge.no/adoc-test

Legg inn nye stereotyper på elementene

  • Velg etter tur hver klasse, og klikk på flippen Element og velg Stereotype …​

  • I menyen velges SOSI UML Profile 5.1 og ønsket stereotype (som passer i valgt klasse)

  • Legg merke til alle standardiserte tagged values som nå skal være synlige under flippen Element

  • Se gjerne mer om stereotyper under http://sosi.geonorge.no/veiledere#stereotyper

  • .

  • TBD: Hva bør gjøres med stereotyper på egenskaper og roller? Skal vi lage stereotyper på disse også? Har vi full oversikt over alle bieffekter? I tilfelle vi får ulike stereotyper på egenskaper må diagrammene konfigureres så de ikke viser stereotyper og egenskapene sorteres på stereotypene (Høyreklikk inne i diagrammet og velg Properties → Features og slå av Show Stereotypes).

Fjern unødvendige elementer og legg inn nye elementer basert på beskrevne brukstilfeller

  • (Samme som punkt 8-10 i den gamle veilederen) Husk å navne diagrammene i henhold til kravene i standarden (Hoveddiagram NNN …​ etc.).

Steg 6 - Lag eksempel på formatrealisering

Lag en GML-fil med et objekt av hver objekttype og test at det som modellen beskriver kan leses i klienter

  • Høyreklikk på applikasjonsskjemapakka og velg Specialize → Scripts → listGMLExample.

  • (Se enkel video som viser bruk av dette skriptet i EA).

Steg 7 - Dokumenter bruk av fagområdestandarder

Revider realiseringene til fagområdene og noter ned eventuelle behov for revisjon av fagområder

  • (Samme som punkt 15 og 21 i den gamle 29-punktsveilederen).

Lese og forstå UML-diagrammer
Modellere en SOSI-produktspesifikasjon

Veileder i å modellere en produktspesifikasjon

Dette er ei 29-punkts løype for å lage informasjonsmodellen i en SOSI-produktspesifikasjon basert på fagområdestandarder.

Utkast til en mer moderne variant, der flere produktspesifikasjoner bygger på hverandre:

Veileder i å modellere en modulær SOSI produktspesifikasjon (Utkast)

Tradisjonell modellering

Tradisjonell modellering av produkt er med kun et applikasjonsskjema med et felles applikasjonsskjema for alle brukstilfeller
Denne løypa er godt innarbeidet i infrastrukturen og dekker godt brukstilfeller som har fokus på leveranser av forvaltningsdata.
Dette dekker oftest også alle enklere brukstilfeller, om enn med å måtte få en del unødvendige data med på lasset.

Modellering av produkt med fler enn et applikasjonsskjema

Planlegg et applikasjonsskjema for hver gruppe av brukstilfeller eller for hver fase i en dataflyt eller dataformat
  • Gruppér brukstilfeller med fellestrekk og bestem hvordan modulstrukturen skal være.

  • Lag en applikasjonsskjemapakke for hver modul.

EA Browser med visning av tre UML-pakker
  • Gå inn i hver pakke og legg inn de klassene som hører hjemme der.

  • Legg inn et unikt navnerom (targetNamespace) for hver applikasjonsskjemapakke.

  • Legg inn et enkelt navneromsprefiks (xmlns) unikt for hver pakkegruppering. (eks. basis, app1, app2)

diagram med tre UML-pakker som viser utvalgte tagged values
Dra inn pakker i pakkediagram og sett avhengigheter mellom disse
  • I pakker som skal være grunnlag for leveranser lages et pakkediagram som kalles Pakkeavhengighet.

  • Dra inn denne pakka i pakkediagrammet.

  • Dra inn de andre pakkene som elementene i denne pakka skal benytte elementer fra.

  • Legg inn pakkeavhengighetspil fra denne pakka til de pakkene som man har avhengigheter til.

diagram med en UML-pakke som viser avhengighet til en annen
Dra inn datatyper og supertyper i hoveddiagrammene og sett referanser til disse
  • Åpne eksisterende hoveddiagrammer og dra aktuelle supertyper og datatyper fra andre pakker inn i diagrammet.

  • Legg inn arvepiler til nye eksterne supertyper og koble opp egenskaper til nye eksterne datatyper.

(Liknende beskrivelser kan finnes i punkt 11 og 12 i den gamle veilederen).

diagram med en UML-klasse som viser arv fra ekstern UML-klasse
Generer GML-Applikasjonsskjema (.xsd) for leveransepakkene
  • Lag en GML-Applikasjonsskjemafil (.xsd) som denne spesielle leveransen skal valideres mot.

  • Høyreklikk på pakka i Browser og velg Specialize → ShapeChange → Transform…​

Eksempel på skjemafil med ekstern avhengighet finnes på http://skjema.geonorge.no/sositest/produktspesifikasjon/Bygning3D/5.0

Generer GML-eksempeldatafiler (.gml) for leveransepakkene
  • Lag en GML-fil med et objekt av hver objekttype og test at det som modellen beskriver kan leses i klienter.

  • Høyreklikk på pakka i Browser og velg Specialize → Scripts → listGMLExample.

Hva kan modularitet brukes til?
  • Lager vi applikasjonsskjema med innhold som hensiktsmessige moduler kan vi sette dem sammen i ulike arkitekturer.

diagram av UML-pakker som inneholder andre UML-pakker med modulært innhold
diagram av UML-pakker som viser avhengigheter til andre UML-pakker med mer generelt innhold

Eksempel 1 viser en felles kjerne som utvides for ulike formål. Disse implementerbare modulene kan beskrive ulike faser i dataflyten, og spesialtilpassinger til ulike leveranser.

diagram av en UML-pakke som har avhengighet til to andre UML-pakker med mer spesielt innhold

Eksempel 2 viser ulike moduler for ulike formål, og en modul som beskriver en sammensatt leveranse.

Modellering

Installering av modelleringsverktøy
Modellere en kodeliste for ekstern forvaltning

Veileder i å modellere en kodeliste for ekstern forvaltning

Koder i kodelister skal ha navn etter samme mønster som alle andre UML-modellelementer, slik at lesere intuitivt forstår meningen med koden. Kodelister med veldig mange koder er vanligvis ikke godt egnet til å vises i sin helhet i et UML-diagram.

eksempel på lang kodeliste

Slike kodelister er best realisert som eksternt forvaltede kodelister, dette vil si at kodelisten forvaltes utenfor modellen og kan endres levende. For å oppnå dette må kodelisten merkes som en eksternt forvaltet kodeliste, og den må brukes til å generere kodelistefiler på standardisert format. Dette gjøres i UML-modellen ved å legge inn to tagged values med navn asDictionary og codeList på kodelisten. Verdiene skal være henholdsvis true og en http-URI til stedet der kodelisten finnes.

to tagged values for kodelister

Skript kan benyttes til å generere eksterne filer på ulike standardformat. I filen fra SOSI-modellregister finnes skriptet listGMLDICTfraKodeliste som lager ei fil på standardisert GML-Dictionary-format. Høyreklikk på kodelista og kjør skripetet. I filen fra SOSI-modellregister finnes skriptet listSKOSfraKodeliste som lager ei fil med underkatalog på SKOS/RDF/xml-format. Høyreklikk på kodelista og kjør skripetet.

Bruke en eksternt forvaltet kodeliste fra sitt datasett

Veileder i å bruke en eksternt forvaltet kodeliste fra sitt datasett. (uferdig)

Generering av egenskapsverdier fra database utføres likt som interne kodelistekoder, og datafilene vil se like ut.

Validering vil derimot ikke utføres i vanlige XML-editorer og må derfor testes i spesialverktøy som SOSI-kontroll eller Inspire ETF (Esdin Test Facility).

SOSI-kontroll som validerer GML-filer kan lastes ned fra TBD.

Tjenerbasert validering (med ETF) kan kjøres mot nettsted TBD.

Bruke en eksternt forvaltet kodeliste i sin egen UML-modell

Veileder i å bruke en eksternt forvaltet kodeliste i sin egen UML-modell

I modeller som skal benytte eksternt forvaltede kodelister må man lage en egen tom kodeliste med det samme navn som den eksterne.

Denne kodelisten må kun ha tagged value asDictionary = true. Egenskaper som har eksternt forvaltede kodelister som type skal kobles opp mot denne tomme i din egen modell.

Da vil modellvalidering ikke melde feil om manglende egenskapstype. Det skal også legges inn en tagged value defaultCodeSpace på egenskapen, med stien til kodelista.

<img src="img/defaultCodeSpace.png" alt="egenskapens sti til kodelista">

I ei generert GML 3.2.1 applikasjonsskjemafil vil denne beskrivelsen se slik ut:

<element name="kommunenummer" type="gml:CodeType">
   <annotation>
      <appinfo>
         <defaultCodeSpace xmlns="http://www.opengis.net/gml/3.2>
            http://skjema.geonorge.no/SOSI/kodeliste/AdmEnheter/2019/Kommunenummer
         </defaultCodeSpace>
         <taggedValue xmlns="http://www.interactive-instruments.de/ShapeChange/AppInfo" tag="SOSI_navn">KOMM</taggedValue>
      </appinfo>
   </annotation>

Ei GML 3.2.1 datafil vil bruke formen:

<kommunenummer>0101</kommunenummer>

Valg av eksternt forvaltet kodeliste for Kommunenummer

Veileder i valg av eksternt forvaltet kodeliste for Kommunenummer

Ved modellering av en egenskap som inneholder eksternt forvaltede kommunenummer må det gjøres et valg mellom en spesifikk versjon av lista, eller den til enhver tid gjeldende liste. Den gjeldende lista vil oppdateres sentralt på et planlagt tidspunkt. Velges spesifikk versjon vil datasettet alltid være gyldig, men kan bli foreldet i forhold til de fleste brukstilfeller. Velges gjeldende versjon vil datasettet kunne bli ugyldig ved validering mot oppdatert liste, og dataeier må derfor alltid holde datasettet levende oppdatert og følge alle oppdateringer i kodelista. Det er viktig å kjenne endringsmønsteret og planlegge hvordan endringer i kommuneinndelingen detekteres, og når og hvordan innholdet i datasettet skal oppdateres. Det vil si om det kan kjøres skript i datasettet, eller om full omlasting må gjøres, og presist når dette må skje.

Spesifikk versjon angis ved å la versjonsinformasjonen (2019) ligge med i stien, som vist under:

tagged value defaultCodeSpace = http://skjema.geonorge.no/SOSI/kodeliste/AdmEnheter/2019/Kommunenummer

egenskapens sti til kodelista
Figure 1. egenskapens sti til kodelista

Dersom meningen er å holde et datasett levende oppdatert bør stien kun inneholde produktnavnet, som vist under:

tagged value defaultCodeSpace = http://skjema.geonorge.no/SOSI/kodeliste/AdmEnheter/Kommunenummer

Validering av geometrien i en GML-datafil mot norsk SOSI-GML-profil

Veileder i validering av geometrien i en GML-datafil mot norsk SOSI-GML-profil

Produktspesifikasjoner kan angi at de kun benytter et navnet subsett av geometrityper i den fulle GML 3.2.1 standarden. (I kapittel 11) Dette kan verifiseres ved å validere mot en SOSI-GML-profil som beskrevet i standarden: SOSI del 1 - Realisering i GML-format - versjon 5.0.

Der beskrives profilene:

  • SOSI-GML-heleid2Dgeometri

  • SOSI-GML-heleid3Dgeometri

  • SOSI-GML-delt2Dgeometri

  • SOSI-GML-delt3Dgeometri

Automatisk validering bør kunne kjøres fra alle vanlige norske valideringsprogrammer for GML-datafiler, men her beskrives en mer manuell metode for validering.

Velg en GML-datafil som skal verifiseres at er i henhold til en bestemt SOSI-GML-profil.

bilde av sti til en skjemafil som beskriver dataene i XML
Figure 2. Identifiser hvilken GML-applikasjonsskjemafil som beskriver produktets navnerom.
sti til skjemafil som beskriver GML-skjema
Figure 3. Hent ned og lagre en lokal kopi av GML-applikasjonsskjemafila, og modifisér importen av GML til å koble navnerommet med prefiks gml: til en SOSI-GML-profil.

Til:

sti til skjemafil som beskriver en SOSI-GML-profil
Figure 4. sti til skjemafil som beskriver en SOSI-GML-profil
sti til lokal editert kopi av skjemafil som beskriver dataene
Figure 5. Modifisér GML-datafila til å bruke den lokale GML-applikasjonsskjemafila ved å rette i xsi:schemaLocation. (Bør kunne bruke absolutt eller relativ sti.)
  • Åpne GML-datafila i en profesjonell XML-editor (oxygen, xmlspy, eclipse, …​) og start validering.

  • Merk at denne skjemavalideringen ikke også sjekker logikken med at 2D geometrier forholder seg til 2D koordinatreferansesystem, og 3D geometrier krever et 3D koordinatreferansesystem.

  • Dette må gjøres ved å inspisere GML-datafilas verdier i xml-egenskapen srsName og manuelt sammenligne denne med verdiene i de to listene for 2D- og 3D-koordinatreferansesystemer.

Najonalt anbefalt subsett av koordinatreferansesystemkoder finnes i SOSI del 1 - Realisering i SOSI-format - versjon 5.0.

2D:

  • EPSG/0/4258 EUREF 89 Geografisk (ETRS 89)

  • EPSG/0/4326 WGS84 geografisk

  • EPSG/0/32629 UTM 29 basert på WGS84 (etc.)

  • EPSG/0/25829 UTM 29 basert på EUREF89 (etc.)

  • EPSG/0/5105 NTM 5 basert på EUREF89 (etc.)

  • EPSG/0/3035 EUREF89 LAEA Lambert asimut

  • EPSG/0/3034 EUREF89 LCC Lambert konisk

  • EPSG/0/27391 NGO 1948

3D:

  • EPSG/0/6144 ETRS89 + NN54

  • EPSG/0/5942 ETRS89 + NN2000

  • EPSG/0/4937 WGS84 + ellipsoidehøyde

  • EPSG/0/6169 UTM 29 basert på EUREF89 + NN54 (etc.)

  • EPSG/0/5973 UTM 29 basert på EUREF89 + NN2000 (etc.)

  • EPSG/0/6145 NTM 5 basert på EUREF89 + NN54 (etc.)

  • EPSG/0/5945 NTM 5 basert på EUREF89 + NN2000 (etc.)

  • EPSG/0/4896 ITRF 2005

  • EPSG/0/…​ (Hva med ITRF 2014?)

NB: Mange visningsverktøy for GML-datafiler handterer akserekkefølge og akseenhet korrekt basert på EPSG-koden. Men de har ikke (2018) implementert at akseantall også er en entydig funksjon av EPSG-koden, så det anbefales i tillegg å legge inn srsDimension eksplisitt på 3D-data.

<gml:Curve srsName="http://www.opengis.net/def/crs/epsg/0/6173" srsDimension="3">

Detaljer om modellering

Modellering av rekkefølgen på assosiasjonsroller i GML

Veileder i modellering av rekkefølgen på assosiasjonsroller i GML

I GML (som i XML) er det krav på å følge samme rekkefølgen på elementene som de som er beskrevet i GML-Applikasjonsskjemafila (.XSD). Rekkefølgen på egenskaper kontrolleres i Enterprise Architect, husk å ta vekk alfabetisk sortering under Start→Preferences→Objects. Rekkefølgen på assosiasjonsroller kan kontrolleres ved å legge inn en tagged value med navn sequenceNumber på alle assosiasjonsrollene og gi disse unike serienummer.

X
Figure 6. Eksempelfigur som viser tagged value sequenceNumber på en assosiasjonsrolle
Modellering av assosiasjoner til objekttyper

Veileder i modellering av assosiasjoner til objekttyper

Der en geografisk objekttype (FeatureType) har en navigerbar assosiasjon til en annen objekttype skal den navigerbare assosiasjonsenden ha en tagged value inLineOrByReference med verdien byReference. Tagged value inLineOrByReference er beskrevet i standarden regler for UML-modellering versjon 5.1 kapittel 13, og bruken av verdien byReference er for GML beskrevet (noe indirekte) i standarden Realisering i GML-format versjon 5.0 kapittel 7.2. Hvis tagged value inLineOrByReference ikke er lagt inn sier standarden iso19136-1 (GML) kapitter E.2.4.11 at default encoding skal brukes. Noen åpen-kildekode-systemer (deegree) forventer at denne taggen er satt eksplisitt så det anbefales da å sette den til byReference.

Grensesnittstandarden WFS (ogc.org/standards/wfs) gir føringer for hvordan man via en parameter i et spørregrensesnitt kan styre i detalj hva responsen skal inneholde. Dersom parameteren resolveDepth er satt til 0 skal lenker til assosierte objekter være fulle url-er til de refererte objektene. Dersom parameteren er satt til 1 skal tjenesten nøste ned en gang (o.s.v.), da skal tjenesten også legge inn de assosierte objektene i returen, og endre lenkene til lokale pekere (#). Forøvrig må man ved lesing av GML-filer ta høyde for at full GML åpner for at for to objekter av samme objekttype i samme datasett kan det ene objektet legges inn inline mens det andre objektet kan refereres.

Modellering av egenskaper med geometri som datatyper

Veileder i modellering av egenskaper med geometri som datatyper (uferdig om topologi)

Brukstilfeller

Brukstilfellene vil indikere hvilken type geometri som er nødvendig, enklest mulig geometritype bør alltid velges. Tidligere ble norske klassenavn benyttet i modellene, Punkt, Kurve, Flate og Sverm. Dette er fortsatt støttet, og disse skal automatisk mappes til moderne og realiserbare typer.

X
Figure 7. Eksempel på klasser med nasjonal og internasjonal geometritype:

Forholdet mellom nasjonale og internasjonale geometrityper

X
Figure 8. Modell som viser forholdet mellom eldre nasjonale geometrityper og geometrityper i internasjonale standarder:

Det anbefales nå å modellere med de moderne internasjonale typene direkte. De vanligste av disse er GM_Point, GM_Curve, GM_Surface og GM_Solid.

X
Figure 9. Her er listene over geometrityper i geometriprofilen SOSI-GML-delt3Dgeometri:

Listene over geometrityper i geometriprofilen SOSI-GML-heleid3Dgeometri er like, bortsett fra at klassene med GM_CompositeXxx mangler.

X
Figure 10. Eksempel på modell med bruk av internasjonale geometrityper:
X
Figure 11. Eksempelfigur med naboflater og enklaver:

Modellering av egenskaper med heterogene geometrityper

Egenskaper med geometri som kan være enten punkt, kurve, flate eller legeme kan modelleres med typen GM_Object. Dette vil generere GML_Applikasjonsskjema som tillater gml:Point, gml_Curve og gml:Surface (og gml:Solid). OGC Simple Feature støtter dette, og Oracle, PostGIS og QGIS kan handtere slike heterogene geometriegenskaper.

TBD:-diagram—​eksempelfigur—​eksempelfigur-

Modellering og utveksling av objekters topologiske egenskaper

Dersom brukstilfellene krever utveksling av topologiegenskaper må UML-modellen angi dette eksplisitt. Denne modelleringen er beskrevet i Regler for UML-modellering versjon 5 i kapittel 11.4.3.4 Topologi. Realisering er beskrevet i standarden Realisering i GML-format versjon 5 i kapittel 8.5 Realisering av toplologi. image::img/Topologiegenskaper.png Nettverkstopologi kan alternativt modelleres som topologiske assosiasjoner i applikasjonsskjemaet. (Ledning, vegnett.)

TBD:-diagram

Modeller bør uansett beskrive topologiske restriksjoner som krav om full flatedekkning innen et område, eller krav om ingen overlapp mellom objekter.

TBD:-diagram—​eksempelfigur-

Den vanligste praksis er at data modelleres og utveksles med heleide geometriegenskaper, og at topologien bygges opp i mottakersystemet i etterkant. Oppbygging av topologistrukturer på mottakersiden er en omfattende prosess, spesielt med data fra flere kilder, med behov for identifisering av overlappende kurver og naboflater etc.

TBD:-diagram—​eksempelfigur-

Delt geometri

Delt geometri er der en geometri kan beskrives i et objekt, og deles/refereres fra andre objekter. Bruk av dette kan ved spesielt nøye bruk unngå noen vanlige effekter som glipper og overlapp, spesielt ved avrunding av koordinater. Dette gjøre at data med delt geometri vil kunne være mer topologiklare for mottakeren. Men mottakerens topologioppbygging må ta høyde for at den delte geometrien også kan være bygget opp på en ikke-topologiklar måte. Delt geometri må modelleres spesielt i UML, med geometriklasser av typen "Composite", for å kunne arve mekanismen med pekere til andre geometrier.

TBD:-diagram—​eksempelfigur—​eksempelfigur-

Normalisert geometri

Normalisert geometri betyr at hver posisjon beskrives kun en gang, og at det kun refereres til fra andre geometrier av høyere orden. Mottakeren må da bygget opp fullstendig geometri for hvert objekt. I SOSI-format og gml (og geojson?) er det ikke vanlig praksis å referere til endepunkter på kurver, men geometrityper av typen "Composite" kan benyttes til å angi at man kan/skal bruke pekere til andre geometrier av lavere orden.

TBD:-diagram—​eksempelfigur—​eksempelfigur-

Modellering med stereotyper og UML-profiler i EA

Veileder i modellering med stereotyper og UML-profiler i EA (15 og seinere)

tl;dr - Nye klasser bør lages med EA Toolbox og SOSI-UML-Profil-5.1.

Eksisterende klasser kan gjerne bytte til SOSI-UML-Profil-5.1, men da må tagged values kontrolleres.

Lengre forklaring:

Alle klasser skal ha standardiserte stereotyper, og alle modellelementer kan ha et sett med standardiserte tagged values. Fra tidligere tider har stereotype vært en enkel tekststreng på modellelementene, og modellelementene har eid sitt eget sett av tagged values. Dette gjelder for eksempel for klasser med tekstlig stereotype «featureType». I en periode har modellelementer også kunnet bruke stereotyper fra standardiserte UML-profiler, som for eksempel stereotypen «FeatureType» fra UML-profilen "SOSI-UML-Profil-5.0". Stereotypene i denne profilen eier ingen tagged values. Dersom man kun vil ha den anbefalte skrivemåten på stereotypene på gamle klasser uten profil kan man bytte til UML-profil "SOSI-UML-Profil-5.0" uten å endre at alle tagged values er eid av klassene. Denne profilen kan ikke brukes via EA 15 sin Toolbox, så endringen må legges inn manuelt (under Properties → Tags).

Disse gamle metodene kan fortsatt videreføres som de er i EA 15, og det kan fortsatt legges til nye tagged values rett på modellelementene.

En mer framtidsretta løsning er å bytte til stereotyper fra en moderne UML-profil. Hvis man bytter fra gamle modeller vil standardiserte tagged values overføres fra klassen til å bli eid av stereotypen. Den nyeste UML-standarden (ISO 19505:2012) har som hovedbeskrivelse at stereotyper skal beskrives i UML-profiler, og stereotypene skal eie settet med tagged values. Nyere versjoner av Enterprise Architect (EA 14/EA 15) har tatt dette til følge mer og mer, og man kan for eksempel ikke lenger skrive inn et stereotypenavn som tekststreng der. Vi har dessverre observert at når vi bytter fra en slik stereotype i en UML-profil til en stereotype fra en annen UML-profil vil vi kunne miste noen eksisterende verdier i de beskrevne tagged values !!! Vi må derfor alltid ha god kontroll på verdiene i de beskrevne standardiserte tagged values.

Vi har i dag tre moderne UML-profiler:

"GML" som kommer med EA "native" - denne har noen viktige begrensninger og dekker IKKE norske behov og standarder (underpakker behandles ikke etc.). Vi anbefaler derfor å "disable MDG-technology GML" slik at denne ikke vises.

"SOSI" er en UML-profil som kommer med SOSI-plugginn og er i hovedsak utviklet for å følge reglene i SOSI 4.0. Den har en blanding der noen tagger eies av stereotyper og noen eies av klassene, og den dekker fortsatt norske behov.

"SOSI-UML-profil-5.1" som kommer med SOSI-Verktøykasse 1.0 og er en realisering av profilen i standarden Regler for UML-modellering versjon 5.1. Den dekker norske behov.

Vi anbefaler nå at hvis man bytter til andre UML-profiler må man klarlegge hvordan dette kan gjøres uten å miste informasjon. Alle de beskrevne variantene har til nå fungert likt i alle eksisterende MDA-løyper (som ShapeChange etc.). Det er også ofte vanskelig å se tagger fra stereotyper som kommer fra eldre uml-profiler (for eksempel uml-profil SOSI). Disse taggene kan vises ved å velge elementet, høyreklikke på Properties og så velge Properties…. Da vil en i vinduet som kommer opp kunne se flipper helt til høyre som kan vise resten av elementets tagged values. Andre konfigurasjoner som påvirker hvilke tagger man ser er å enable/disable under menyene Specialize: Manage-Tech (for MDG) og Manage-Addin (for Addins).