Imvertor

TODO: invullen vanuit de volgende documenten

Imvertor wordt veel gebruikt binnen Geonovum voor het transformeren van UML modellen naar bijvoorbeeld xml-schema’s of feature catalogues. De instructies van hoe er mee om te gaan zijn overal verspreid. Op deze pagina probeer ik alles te verzamelen….

onderwerp verwijzing
Imvertor-properties Uitleg verschillende properties
Algemeen Verzamelde handleiding van organisaties
Werkinstructie IMGeluid werkinstructie
Uitleg schema mapping Hier
Nieuwsbrieven https://armatiek.nl/nieuwsbrieven.html

Veel te veel plaatjes in de data folder

  • Een Imvertor run levert een flink aantal UML diagrammen op in de data folder. Niet meer gebruikt diagrammen worden nooit verwijderd uit deze folder waardoor er vaak veel niet gebruikt diagrammen in staan. Tip: gooi voor het draaien van Imvertor de data map een keer leeg.

Schema generatie

Imvertor in in staat om verschillende soorten schema's (i.e. verschillende uitwisselformaten) te genereren. Via het properties file kun je aangeven of en welke schema's je wilt genereren. Er zijn ook (gelimiteerde) mogelijkheden om datgene wat er gegenereerd wordt aan je wensen aan te passen.

Zie de imvertor documentatie van het properties file.

JSON genereren

Geef in de properties file die je kunt kiezen bij het runnen van imvertor, de volgende parameter mee:

createjsonschema = yes

Imvertor genereert dan een .json en een .yaml bestand. Dit zijn, in 2 formaten, API beschrijvingen conform OpenAPI 3.0.0 die zijn gegenereerd uit je informatiemodel.

TODO uitzoeken wat er mogelijk is met de property createjsonschemavariant. De mogelijke waarden zijn niet gedocumenteerd.

Mapping van geo-klassen en -typen

Imvertor werkt met een configuratiebestand conceptual-schemas.xml waarin een mapping is opgenomen tussen gestandaardiseerde ISO-, OGC- en INSPIRE-klassen en typen die wij in informatiemodellen gebruiken, naar bijvoorbeeld in GML voorkomende typen. Imvertor gebruikt dit om bijvoorbeeld GML Application schema's te genereren uit een informatiemodel.

Bij deze klassen en typen is het ook mogelijk om links op te nemen naar een online gepubliceerde definitie en/of uitleg ervan, die Imvertor dan kan gebruiken om links in de documentatie te genereren.

Een voorbeeldje. In onze UML modellen gebruiken we vaak GM_Surface.

Imvertor “weet” al (omdat dit in een configuratiebestand staat) hoe dit vertaald moet worden naar een GML-type zodat er een correct GML application schema uit komt rollen.

We genereren met Imvertor niet alleen XML/GML schema’s, maar ook dataspecificaties, bv. dit hoofdstuk uit de IMGeluid catalogus is met Imvertor uit UML gegenereerd: https://docs.geostandaarden.nl/cvgg/img/#cat

Je ziet daarin dat het ISO-concept GM_Surface niet gedocumenteerd is. Een lezer die het niet kent, kan niet direct opzoeken wat het betekent. Zie bv. het geometrie attribuut in de klasse VlakbronIndustrie https://docs.geostandaarden.nl/cvgg/img/#detail_attribute_IMGeluidAlgemeen_VlakbronIndustrie_geometrie

Terwijl andere typen klikbaar zijn omdat ze elders in de data specificatie worden gedefinieerd.

Nu willen we Imvertor in gevallen zoals GM_Surface links laten genereren naar definities in de ISO Geolexica, het INSPIRE register en ons eigen definities.geostandaarden.nl voor NEN 3610. Daarvoor hebben we een eerste (onvolledige) mapping gemaakt.

De ambitie is om niet alleen deze mapping te verbeteren, maar om ook de lijst van in informatiemodellen te gebruiken geo-klassen en -typen te standaardiseren.