vegvesen / nvdb-datakatalogen Goto Github PK
View Code? Open in Web Editor NEWArbeid med datakatalogen (objektkatalogen) for NVDB
Arbeid med datakatalogen (objektkatalogen) for NVDB
NB! For å unngå minneproblemer: EA bør være satt til å bruke JEt 4.0, og MaxLocksPerFile i Registry bør være juster opp til f.eks. 25000.
https://support.microsoft.com/en-us/help/815281/-file-sharing-lock-count-exceeded-error-message-during-large-transacti
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
Owl:disjointUnionOf for alle superklasser -
ref v440: buildingsmart-norway/maskinlesbar_v440#25
For å sørge for at ingen individer kan tilhøre mer enn en klasse i samme hierarki.
NB! For å unngå minneproblemer: EA bør være satt til å bruke JEt 4.0, og MaxLocksPerFile i Registry bør være juster opp til f.eks. 25000.
https://support.microsoft.com/en-us/help/815281/-file-sharing-lock-count-exceeded-error-message-during-large-transacti
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
Egenskapstyper med datatype 26 (struktur) bør oversettes til datatyper i UML, inneholdende tilkoblede egenskapstyper.
F.eks. egenskapstypen 9553 (Kvalitet, geometri) under NVDB Dokumentasjon. Denne har tilkobla egenskapstyper gjennom fremmednøkler på de tilkobla egenskapstypene. F.ek.s har 9545 (Nøyaktighet) fremmednøkkel til 9553.
NB! For å unngå minneproblemer: EA bør være satt til å bruke JEt 4.0, og MaxLocksPerFile i Registry bør være juster opp til f.eks. 25000.
https://support.microsoft.com/en-us/help/815281/-file-sharing-lock-count-exceeded-error-message-during-large-transacti
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
NB! For å unngå minneproblemer: EA bør være satt til å bruke JEt 4.0, og MaxLocksPerFile i Registry bør være juster opp til f.eks. 25000.
https://support.microsoft.com/en-us/help/815281/-file-sharing-lock-count-exceeded-error-message-during-large-transacti
Original Datakatalog:
Dakat2UML 1_Datatyper
)Dakat2UML 2_Objekttyper
)Dakat2UML 3_Egenskapstyper
)Dakat2UML 4_Kodelister
) NB! Stopper flere ganger og må startes på nytt uten noen forklaringDakat2UML 5_Kodelisteverdier
)Dakat2UML 6_Assosiasjoner
)Dakat2UML 7_Diagrammer
)SOSI-versjon:
_AbstrakteKlasser
ligger direkte under NVDB, ikke under NVDB Datakatalogen. Ellers blir den sletta automatisk!DakatUML2SOSI_1_Pakker
)DakatUML2SOSI_24_Klasser
)DakatUML2SOSI_35_Attributter
)DakatUML2SOSI_36_Fix_Geometriattributter
)DakatUML2SOSI_6_Assosiasjoner
)DakatUML2SOSI_61_AbstrakteKlasser
)DakatUML2SOSI_6_Assosiasjoner
og DakatUML2SOSI_61_AbstrakteKlasser
på nytt!DakatUML2SOSI_7_Diagrammer
)DakatUML2SOSI_8_XMI
)SOSI-versjon i SOSI-modellregister:
GML-applikasjonsskjema:
DakatUML2SOSI2GML_0_Enkeltskjema
)OWL
NVDB2OWL_0_KunOTL
)tv16255
NVDB2OWL_1_Vegobjekttypekategorier
)nvdbKategoriOTL.py
)Produktspesifikasjoner ut fra kategori
DakatUML2SOSIPS_1_Klasser_i_kategorier
)DakatUML2SOSIPS_2_Egenskaper_og_verdier
)DakatUML2SOSIPS_3_Arv_og_assosiasjoner
)DakatUML2SOSIPS_4_XMI_og_GML
)NB! Fjern skjema for abstrakte klasser og SOSI Felles dersom de er med. Skal ikke være med!
SOSI Produktspesifiasjoner\Statens vegvesen\ObjektlisteFerdigvegsdata
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
Logikken i OWL/RDF gjør en instans (individ) av en vegobjekttype (f.eks. Gangfelt) til også en instans av overornda klasse. Et individ som er Gangfelt
er dermed også Vegobjekttype
. Dette er en blanding av begrepene "FeatureType" og "Feature" fra ISO/TC 211. Et individ er et Feature
, ikke en FeatureType
. Klassen er derfor allerede en subtype av ISO 19109 AnyFeature
og GeoSPARQL Feature
. Den overordna klassen bør derfor hete Vegobjekt
.
Endringer som må gjøres:
Vegobjekttype
pr vegobjekttype
Vegobjekt
, ikke Vegobjekttype
Tilsvarende er en kodelisteverdi nettopp det, og ikke en Kodeliste. Begrepet Kodeliste bør derfor endres til Tillatt verdi
Endringer som må gjøres:
Kodeliste
Tillatt verdi
, Ikke Kodeliste
Tillatt verdi for ...
, ikke Kodeliste for ...
Hva skal være URI for disse - for eksempel for kodelister med begrensa verdier fra hovedontologien?
Tilordne properties til klasser, med tilhørende datatyper, som i kategorivise ontologier.
Pakker kan kobles til XMI-filer under Package Control, uten Version Control.
Oppdatering til og fra XMI-fil må håndteres annerledes enn utsjekk/innsjekk:
XMI load/save er standard funksjonalitet, ikke VC.
Versjonering må da håndteres i GitHub, som commits.
XMI-koblingene som i dag finnes for SVN må settes opp mot GitHub-mappa i stedet. Må kunne løses med script?
Original Datakatalog:
NB! Stopper flere ganger og må startes på nytt uten noen forklaring
SOSI-versjon:
SOSI-versjon i SOSI-modellregister:
GML-applikasjonsskjema:
NB! Lar seg ikke gjøre, ukjent årsak.
OWL
Produktspesifikasjoner ut fra kategori
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
Original Datakatalog:
NB! Stopper flere ganger og må startes på nytt uten noen forklaring
SOSI-versjon:
NB! Pass på at _AbstrakteKlasser ligger direkte under NVDB, ikke under NVDB Datakatalogen. Ellers blir den sletta automatisk!
Pakker (Scriptet DakatUML2SOSI_1_Pakker)
Klasser (Scriptet DakatUML2SOSI_24_Klasser)
Attributter (Scriptet DakatUML2SOSI_35_Attributter)
Doble geometriegenskaper (DakatUML2SOSI_36_Fix_Geometriattributter)
Assosiasjoner (Scriptet DakatUML2SOSI_6_Assosiasjoner)
Legg til nivå for abstrakte klasser (Scriptet DakatUML2SOSI_61_AbstrakteKlasser)
Diagrammer (Scriptet DakatUML2SOSI_7_Diagrammer)
Legg _AbstrakteKlasser under NVDB Datakatalogen, så den inngår i XMI-eksport og subversion-pakka
Eksport til XMI-filer for GitHub (Scriptet DakatUML2SOSI_8_XMI)
Sjekk eksport av oppdatert XMI for Abstrakte klasser
Dytte SOSI-XMI-filer til GitHub
Endre versjonskontroll fra lokal XMI til SOSI-SVN (NVDB Datakataloge [versjonsnummer]) for hovedpakken NVDB Datakatalogen
Sjekke inn til SVN
Rename og sjekke inn gammel fil NVDB Datakatalogen på SVN til NVDB Datakatalogen [versjonsnummer]
Rename og sjekke inn ny fil som NVDB Datakatalogen på SVN
Endre versjonskontroll tilbake fra SOSI-SVN til lokal XMI for hovedpakken NVDB Datakatalogen
Flytt _AbstrakteKlasser tilbake til direkte under NVDB, ikke under NVDB Datakatalogen
GML-applikasjonsskjema:
NB! Lar seg ikke gjøre, ukjent årsak.
OWL
Produktspesifikasjoner ut fra kategori
Generering av kategorivise pakker med tilhørende klasser (Scriptet DakatUML2SOSIPS_1_Klasser_i_kategorier)
Innsnevring av egenskaper og tillatte verdier ut fra koblingstabeller (Scriptet DakatUML2SOSIPS_2_Egenskaper_og_verdier)
Opprydding i arv og assosiasjoner (Scriptet DakatUML2SOSIPS_3_Arv_og_assosiasjoner)
Export av XMI og generering av GML-skjema
Innsjekk av pakke til SOSI-svn (SOSI Del 3\Statens vegvesen\ObjektlisteFerdigvegsdata\ObjektlisteFerdigvegsdata_V400.xmi)
Importer pakke til "SOSI Del 3\Statens vegvesen\ObjektlisteFerdigvegsdata"
Slett eldste versjon av foregående versjoner (kun 4 versjoner i pakken)
Importer pakken til ShapeChange, og generer GML-Applikasjonsskjema
Kopier GML-Applikasjonsskjema til korrekt mappe
Lag Commit, og dytt til GitHub via GIT Shell
owl:oneOf for kodelister - ref v440: buildingsmart-norway/maskinlesbar_v440#22
oneOf ( alle kodelisteverdier )
Hva oppnår man med denne? Svar: Kodelisten blir til en enumeration. Det er relevant for NVDB også.
Men: Blir veldig tung for lange kodelister?
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
Import av core i OTL
Original Datakatalog:
NB! Stopper flere ganger og må startes på nytt uten noen forklaring
SOSI-versjon:
SOSI-versjon i SOSI-modellregister:
GML-applikasjonsskjema:
NB! Lar seg ikke gjøre, ukjent årsak.
OWL
Produktspesifikasjoner ut fra kategori
For hver klasse (objekttyper og kodelister) i hver pakke i NVDB Datakatalogen:
For hver klasse (objekttyper og kodelister) i hver pakke i SOSI-modellen:
Felles:
NB!
Tagged values fjernes fra modellen ved konvertering til SOSI-UML. Ta vare på flere, og ta dem med ut i OWL.
For eksempel BrKode1 og Brkode2 i Vegreferanse, der mellomrom uten initialverdi er en av de tillatte verdiene.
Midlertidig, manuell løsning: Legger inn "null" som intialverdi for de blanke i XSD-fil
(532.xsd) og i koblingstabell.
Søk/erstatt i xsd:
Erstatt enumeration value="" med enumeration value="null"
Søk/erstatt i koblingstabell NVDB_enMapping.csv:
Erstatt ; ; med ;null;
Original Datakatalog:
SOSI-versjon:
Pakker (Scriptet DakatUML2SOSI_1_Pakker)
Klasser (Scriptet DakatUML2SOSI_24_Klasser)
Attributter (Scriptet DakatUML2SOSI_35_Attributter)
Doble geometriegenskaper (DakatUML2SOSI_36_Fix_Geometriattributter)
Assosiasjoner (Scriptet DakatUML2SOSI_6_Assosiasjoner)
Legg til nivå for abstrakte klasser (Scriptet DakatUML2SOSI_61_AbstrakteKlasser)
Diagrammer (Scriptet DakatUML2SOSI_7_Diagrammer)
Eksport til XMI-filer for GitHub (Scriptet DakatUML2SOSI_8_XMI)
Dytte SOSI-XMI-filer til GitHub
Endre versjonskontroll fra lokal XMI til SOSI-SVN (NVDB Datakataloge [versjonsnummer]) for hovedpakken NVDB Datakatalogen
Sjekke inn til SVN
Rename og sjekke inn gammel fil NVDB Datakatalogen på SVN til NVDB Datakatalogen [versjonsnummer]
Rename og sjekke inn ny fil som NVDB Datakatalogen på SVN
Endre versjonskontroll tilbake fra SOSI-SVN til lokal XMI for hovedpakken NVDB Datakatalogen
GML-applikasjonsskjema:
OWL
Object properties pr vegobjekttype
. Feil i forbindelse med kardinaliteter?Data properties pr vegobjekttype
bør hete Data properties for ...
, ikke Datatype properties for ...
Rekkefølge endra fra Access-->UML, med tanke på datatyper for attributter.
NB! For å unngå minneproblemer: EA bør være satt til å bruke JEt 4.0, og MaxLocksPerFile i Registry bør være juster opp til f.eks. 25000.
https://support.microsoft.com/en-us/help/815281/-file-sharing-lock-count-exceeded-error-message-during-large-transacti
Original Datakatalog:
Dakat2UML 1_Datatyper
)Dakat2UML 2_Objekttyper
)Dakat2UML 3_Egenskapstyper
)Dakat2UML 4_Kodelister
) NB! Stopper flere ganger og må startes på nytt uten noen forklaringDakat2UML 5_Kodelisteverdier
)Dakat2UML 6_Assosiasjoner
)Dakat2UML 7_Diagrammer
)SOSI-versjon:
_AbstrakteKlasser
ligger direkte under NVDB, ikke under NVDB Datakatalogen. Ellers blir den sletta automatisk!DakatUML2SOSI_1_Pakker
)DakatUML2SOSI_24_Klasser
)DakatUML2SOSI_35_Attributter
)DakatUML2SOSI_36_Fix_Geometriattributter
)DakatUML2SOSI_6_Assosiasjoner
)DakatUML2SOSI_61_AbstrakteKlasser
)DakatUML2SOSI_6_Assosiasjoner
og DakatUML2SOSI_61_AbstrakteKlasser
på nytt!DakatUML2SOSI_7_Diagrammer
)DakatUML2SOSI_8_XMI
)SOSI-versjon i SOSI-modellregister:
GML-applikasjonsskjema:
DakatUML2SOSI2GML_0_Enkeltskjema
)OWL
NVDB2OWL_0_KunOTL
)tv16255
NVDB2OWL_1_Vegobjekttypekategorier
)nvdbKategoriOTL.py
)Produktspesifikasjoner ut fra kategori
DakatUML2SOSIPS_1_Klasser_i_kategorier
)DakatUML2SOSIPS_2_Egenskaper_og_verdier
)DakatUML2SOSIPS_3_Arv_og_assosiasjoner
)DakatUML2SOSIPS_4_XMI_og_GML
)NB! Fjern skjema for abstrakte klasser og SOSI Felles dersom de er med. Skal ikke være med!
SOSI Produktspesifiasjoner\Statens vegvesen\ObjektlisteFerdigvegsdata
Utgått-verdier tas ikke med i modellen i dag. Gir problemer for GML-filer.
Forslag: La dem være med, men skjule i diagrammer?
NB! For å unngå minneproblemer: EA bør være satt til å bruke JEt 4.0, og MaxLocksPerFile i Registry bør være juster opp til f.eks. 25000.
https://support.microsoft.com/en-us/help/815281/-file-sharing-lock-count-exceeded-error-message-during-large-transacti
Original Datakatalog:
SOSI-kopi:
915 | Vegsystem |
---|---|
916 | Strekning |
917 | Kryssystem |
918 | Krysdel |
919 | Sideanlegg |
920 | Sideanleggsdel |
922 | Vegmyndihet kan bli endret |
923 | Beredskapsveg |
924 | Serviceveg |
Original Datakatalog:
Flytting av XMI-filer til mappe uten versjonnummer, inkludert også endringer i VC-oppsett i EA.
Process:
1. Move package in EA
2. Check out package in EA
3. Remove from version control in EA
4. Add to version control in EA, with xmi in correct folder
5. Check in in EA
6. Delete new xmi-file in Explorer
7. Commit in Explorer
8. Copy and rename old xmi file to new name and path in Explorer https://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-copy.html
9. Get latest for package in EA
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
Spesielle tilleggsegenskaper. Usikker på å om de er nødvendige å implementere.
Finnes i https://github.com/vegvesen/NVDB-Datakatalogen/blob/master/Script/Dakat2SOSI%201_Konverter.vbs
Retning
Kjørefelt
Svingerestriksjoner...
Sortering...
Gjennomgang av eksisterende SOSI-modell
Gjennomgang av alle pakker i SOSI-modellen
Sjekk samtidig om pakkene finnes i NVDB.
Pakken finnes i NVDB:
Legg til i liste
Oppdater pakke (properties og tagged values)
Oppdater klasser og kodelister (properties og tagged values), inkludert lag nye
Oppdater attributter og kodelisteverdier, inkludert lag nye
Pakken finnes ikke i NVDB:
Slett pakken
Spol gjennom Datakatalog-lista for å finne manglende.
Lag nye pakker for manglende, inkludert lag nye klasser osv.
Kategorier fra NVDB som klasser i OTL-en, vegobjekttyper som subklasser av kategoriene.
Kategorier fra NVDB som Datatype properties og Object Properties i OTL-en, attributter som sub properties av kategoriene.
Kategorier fra NVDB som kodelisteklasser i OTL-en, kodelister og instanser av dem som subklasser.
Pga at vegreferansen ligger både på SOSI Fellesegenskaper og på objekttypen Vegreferanse kommer kodelister dobbelt opp i skjemaet. Det takler ikke XML.
Løsning:
Utelate egenskapene
fra pakken SOSI Fellesegenskaper for akkurat denne objekttypen.
Løses i første omgang manuelt i SOSIFelles.xsd for denne pakken, må legges inn i scriptet "GML Generer applikasjonsskjema pr vegobjekttype".
SOSI-kopi:
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
Behov for en gyldig versjon av NVDB Datakatalogen. Tilrettelegge Dakat2UML-script og Dakat2SOSI-script for oppdatering av SOSI-modellen direkte fra Datakatalog-databasen.
Ref vegvesen/SOSI-Vegnett#71
Original Datakatalog:
SOSI-kopi:
GML-applikasjonsskjema:
Objektliste ferdigvegsdata:
Original Datakatalog:
SOSI-versjon:
Utsjekk av hele grenen "NVDB Datakatalogen" i SOSI-modellregister
Pakker (Scriptet DakatUML2SOSI_1_Pakker)
Klasser (Scriptet DakatUML2SOSI_24_Klasser)
Attributter (Scriptet DakatUML2SOSI_35_Attributter)
Doble geometriegenskaper (DakatUML2SOSI_36_Fix_Geometriattributter)
Assosiasjoner (Scriptet DakatUML2SOSI_6_Assosiasjoner)
Legg til nivå for abstrakte klasser (Scriptet DakatUML2SOSI_61_AbstrakteKlasser)
Diagrammer (Scriptet DakatUML2SOSI_7_Diagrammer)
Eksport til XMI-filer for GitHub (Scriptet DakatUML2SOSI_8_XMI)
Manuell innsjekk av nye pakker i SOSI-modellregister
Innsjekk av hele grenen "NVDB Datakatalogen" i SOSI-modellregister
GML-applikasjonsskjema:
På denne måten vet man at denne verdien/objektet tilhører det spesifikke objektet og kun det, og omvendt.
Dette samsvarer med måten Pauwels og Terkaj har beskrevet konverteringen fra EXPRESS til OWL for IFC.
Midlertidig endring til https://ontologi.utv.atlas.vegvesen.no/nvdb/core/nvdb-owl.ttl, skal bli https://ontologi.atlas.vegvesen.no/nvdb/core/nvdb-owl.ttl etterhvert, evt uten "atlas".
Til bruk for andre applikasjonsskjema i tillegg til Objektliste Ferdigvegsdata
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.