Geonovum / MIM-Werkomgeving

Werkomgeving van MIM. Bevat werk en alle pre-publicatieversies.
https://geonovum.github.io/MIM-Werkomgeving/
8 stars 15 forks source link

Externe packages meer informatie geven #281

Open lennartvanbergen opened 1 year ago

lennartvanbergen commented 1 year ago

Het externe package GM van ISO 19107 bevat in het IM weinig informatie, zo dat er geen locatie bij en geen definitie en toelichting.

Verder is bij de verwerking van #242 en het verwijderen van het woord interface uit de export, ook wat komen te vervallen. Als een attribuut datatype GM_Point heeft, dan is deze niet in de export te vinden. Eerst stond er interace, nu niet meer.

We willen graag:

Dat de metadata van het externe package netjes wordt in gevuld, door de modelleur van een extern package.

Dat de modelelementen in het externe package, waarnaar verwezen wordt, opgesomd zijn. Bv. datatype GM POINT definition herkomst ISO 19107

Zoiets.

Wat mij betreft hoeven alleen de modelelementen in het externe package staan, die in het informatiemodel gebruikt worden.

Extern datatype zit nu in het model zonder dat deze Ref heeft, maar de target van de Ref is er niet meer. Zodra dit target er wel weer is zouden we dit element kunnen hernoemen naar ExternDatatypeRef of gewoon DatatypeRef

wmb kandidaat voor 1.2

Meningen graag.

ArjanLoeffen commented 1 year ago

Ik kom met een eerste voorstel.

ArjanLoeffen commented 1 year ago

De referentie naar een "construct" in een model dat niet onderdeel is van het aangeboden model kan op zich beperkt blijven tot de naam van die construct: bijv. "Gebouw". Bij het verwerken van het MIMformat document kom je dan Gebouw tegen, en wordt je uitgenodigd daar zelf een implementatie voor te zoeken.

Bijvoorbeeld: bij het genereren van documentatie wil je dat gebouw niet alleen noemen (als type van een attribuutsoort), maar ook een link onder die naam opnemen naar documentatie van dat Gebouw in een extern model.

Je weet echter niet méér dan dat er een "Gebouw" bestaat elders. Waar, in welk gerefereerd model, is open. De ontwikkelaar is gedwongen dat expliciet uit te coderen of zo. Voorstel is dus de ontwikkelaar te helpen bij het localiseren van Gebouw, namelijk door het betreffende Externe package waarin het thuis hoort ook op te nemen (mim:Extern).

Echter, dan ben je er nog niet: hoe weet de ontwikkelaar wélk van de packages het betreft? Als er 20 externe packages bestaan, welke moet dan worden geraadpleegd? Dat kan alleen als je in het package opneemt dat Gebouw daar onderdeel van is.

Dat hoeft dus niet, maar is wel erg fijn.

De laatste vraag is dan: wat voor sóórt ding is dat Gebouw? Is het een Datatype, Objecttype, Keuze etc. of zelfs een FeatureType of een niet gestereotypeerd UML construct? Je kunt geen aannames maken over dat externe model.

In de vorige release van Imvertor werd dit "interface" genoemd. Binnen het externe package vallen dat meerdere <mim:Interface> elementjes, bijv.:

<mim:Extern>
  <mim:naam>BINNENSTAD</mim:naam>
  <!--meer info over dit externe model hier-->
  <mim:interfaces>
     <mim:Interface id="binnenstad-gebouw">Gebouw</mim:Interface>
  </mim:interfaces>
<mim:Extern>

Het is mijn mening dat dat correct is. Echter de term Interface is niet besproken in MIM, het is geen onderdeel van de standaard. De vraag is of dat erg is. Iedere "listing" van zulke model elementjes vereist een elementstructuur die je ter plaatse verzint. Mijn voorstel is het te houden bij deze --op zich correcte-- naamkeuze. Ook al omdat veel Imvertor gebruikers eraan gewend zijn, en zie de wiki beschrijving.