Geonovum / MIM-Werkomgeving

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

Constraints toestaan op alle modelementen #317

Closed ArjanLoeffen closed 10 months ago

ArjanLoeffen commented 1 year ago

In 1.1.1 bestaat de regel dat constraints worden geaccepteerd op Objecttype, Gegevensgroeptype en Relatieklasse. En elders niet. Zie https://docs.geostandaarden.nl/mim/def-st-mim-20220217/#metagegeven-heeft-constraint en https://docs.geostandaarden.nl/mim/def-st-mim-20220217/#specificatie-voor-een-constraint

Ik vermoed dat dat eigenlijk een fout is in de standaard. Het moet veel breder inzetbaar zijn. Ik lees uit https://docs.geostandaarden.nl/mim/def-st-mim-20220217/#constraint dan ook dat het op "alle modelelementen" van toepassing is.

ThiesMesdag commented 1 year ago

Wordt in het BAGLV model ook op andere plekken gebruikt bijvoorbeeld op relatiesoorten.

Gtrouborst commented 11 months ago

Dit klinkt als een tegenstrijdigheid. Als het alleen om het aanpassen van de tekst gaat, kunnen we dit nog in versie 1.2 meenemen.

Gtrouborst commented 11 months ago

Note Het is de vraag in hoeverre het haalbaar is om deze aanpassingen mee te nemen in versie 1.2

Het gaat in ieder geval om meer dan alleen tekst. Op alle onderstaande punten in de documentatie moet dit onderdeel rechtgetrokken worden. Dit is meer werk dan wat kleine tekstuele aanpassingen. Het betreft ook diagrammen en uitbreiding van tabellen.

Onderwerp Toepassing
Modelelement alle modelelementen
Diagram specifieke modelelementen
Metagegeven specifieke modelelementen
Diagram specifieke modelelementen
Specificatie in uml specifieke modelelementen
Diagram ld specifieke modelelementen
Afspraken en regels alle of alleen specifieke modelelementen?
Transformaties alle of alleen specifieke modelelementen?
Metagegevens objecten en attributen in LD specifieke modelelementen
Specificatie meetgegevens voor overige relaties specifieke modelelementen
Diagram in h6 specifieke modelelementen
Gtrouborst commented 11 months ago

Antwoord

Constraints zijn inderdaad toegestaan op alle modelelementen

Acties

Dat betekent dat de wijzigingen op alle onderstaande onderdelen doorgevoerd dan wel gecontroleerd moet worden:

Tekst

Diagrammen

Gtrouborst commented 11 months ago

@ArjanLoeffen: de toelichting op Constraint wordt aangepast. Samengevat: een Constraint kan op alle modelelementen betrekking hebben, maar niet op alle modelelementen vastgelegd worden. De uitzondering hierin is de «Generalisatie». Een Constraint daarop leg je vast bij een «Objecttype», niet op de «Generalisatie» zelf.

Gtrouborst commented 11 months ago

@pmaria: kun jij op onderstaande vragen reageren?

Hoofdstuk Metamodel in LD: Constraint opnemen bij tabellen

Hoe zitten constraints in LD? In paragraaf 4.3 heb mim:constraint toegevoegd aan alle tabellen (branch: 317 ). Is dat correct? Is Constraint daadwerkelijk een modelelement in LD, óf bestaat het wel als concept, maar wordt het vormgegeven met SHACL (constraint language) en hoort het dus niet als eigenschap thuis in de tabellen? Ik ging er vanuit van een daadwerkelijk modelelement, omdat het, zoals je hier kunt zien (branch: master), in een aantal tabellen al was opgenomen.

Hoofdstuk Metamodel in LD: Aanpassen diagram

Verder moet dit diagram ook aangepast moeten worden in lijn met de opvatting dat een constrinat op alle modelelementen van toepassing is. Hoe dat er precies uit moet komen te zien weet ik niet. Bovendien heb ik hiervan (LD-diagrammen) geen brondocument. Kun jij dit, indien nodig, aanpassen?

in hoofdstuk Metamodel in LD: Kop mim:constraint

Tot slot vond ik onder het kopje mim:constraint, een tekst over enumeratie(waarden). Die tekst lijkt nog bij de paragraaf ervoor te horen. Klopt dat? Zo ja, dan is er geen tekst en uitleg beschikbaar voor mim:constraint.

pmaria commented 11 months ago

@pmaria: kun jij op onderstaande vragen reageren?

Hoofdstuk Metamodel in LD: Constraint opnemen bij tabellen

Hoe zitten constraints in LD? In paragraaf 4.3 heb mim:constraint toegevoegd aan alle tabellen (branch: 317 ). Is dat correct? Is Constraint daadwerkelijk een modelelement in LD, óf bestaat het wel als concept, maar wordt het vormgegeven met SHACL (constraint language) en hoort het dus niet als eigenschap thuis in de tabellen? Ik ging er vanuit van een daadwerkelijk modelelement, omdat het, zoals je hier kunt zien (branch: master), in een aantal tabellen al was opgenomen.

Ja, Constraint is gewoon een modelelement in het LD metamodel. Eventuele vertalingen naar SHACL of iets anders zijn out of scope. Het hoort dus wel thuis in de tabellen.

Hoofdstuk Metamodel in LD: Aanpassen diagram

Verder moet dit diagram ook aangepast moeten worden in lijn met de opvatting dat een constrinat op alle modelelementen van toepassing is. Hoe dat er precies uit moet komen te zien weet ik niet. Bovendien heb ik hiervan (LD-diagrammen) geen brondocument. Kun jij dit, indien nodig, aanpassen?

De brondocumenten staan in media map. Dat zijn de *.graphml bestanden, die je met yEd kunt editen.

Daarnaast moeten ook de shapes aangepast worden en zal de ontologiepagina opnieuw gegenereerd moeten worden. Ik kan dat wel oppakken, maar dat gaat deze week niet lukken.

in hoofdstuk Metamodel in LD: Kop mim:constraint

Tot slot vond ik onder het kopje mim:constraint, een tekst over enumeratie(waarden). Die tekst lijkt nog bij de paragraaf ervoor te horen. Klopt dat? Zo ja, dan is er geen tekst en uitleg beschikbaar voor mim:constraint.

Dat lijkt inderdaad een kopieerfout. Hier zal een juiste passende tekst moeten komen.

Gtrouborst commented 11 months ago

Hoofdstuk Metamodel in LD: Constraint opnemen bij tabellen

Hoe zitten constraints in LD? In paragraaf 4.3 heb mim:constraint toegevoegd aan alle tabellen (branch: 317 ). Is dat correct? Is Constraint daadwerkelijk een modelelement in LD, óf bestaat het wel als concept, maar wordt het vormgegeven met SHACL (constraint language) en hoort het dus niet als eigenschap thuis in de tabellen? Ik ging er vanuit van een daadwerkelijk modelelement, omdat het, zoals je hier kunt zien (branch: master), in een aantal tabellen al was opgenomen.

Ja, Constraint is gewoon een modelelement in het LD metamodel. Eventuele vertalingen naar SHACL of iets anders zijn out of scope. Het hoort dus wel thuis in de tabellen.

Dit is verwerkt in h4.

Hoofdstuk Metamodel in LD: Aanpassen diagram

Verder moet dit diagram ook aangepast moeten worden in lijn met de opvatting dat een constrinat op alle modelelementen van toepassing is. Hoe dat er precies uit moet komen te zien weet ik niet. Bovendien heb ik hiervan (LD-diagrammen) geen brondocument. Kun jij dit, indien nodig, aanpassen?

De brondocumenten staan in media map. Dat zijn de *.graphml bestanden, die je met yEd kunt editen.

Ook dit is verwerkt. Het diagram rdf-constraint-1.2.graphml (en de afbeelding: rdf-constraint.png) is aangepast. Ik heb ervoor gekozen dezelfde opzet te kiezen als de vergelijkbare UML-diagrammen die zijn aangepast, dat wil zeggen: i.p.v. alle afzonderlijke modelelementen (met metadata) op te nemen, heb ik de superklasse Modelelement opgenomen, met een constraint dat een «Constraint» niet op een Generalisatie vastgelegd mag worden.

Daarnaast moeten ook de shapes aangepast worden en zal de ontologiepagina opnieuw gegenereerd moeten worden. Ik kan dat wel oppakken, maar dat gaat deze week niet lukken.

Fijn dat jij dit wilt oppakken. Ik zet alvast een pull request klaar met de vraag of jij wilt reviewen

in hoofdstuk Metamodel in LD: Kop mim:constraint

Tot slot vond ik onder het kopje mim:constraint, een tekst over enumeratie(waarden). Die tekst lijkt nog bij de paragraaf ervoor te horen. Klopt dat? Zo ja, dan is er geen tekst en uitleg beschikbaar voor mim:constraint.

Dat lijkt inderdaad een kopieerfout. Hier zal een juiste passende tekst moeten komen.

Wil jij die toevoegen?