-
Notifications
You must be signed in to change notification settings - Fork 12
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unieke namen voor relaties en -rollen beter valideren #523
Comments
Klopt precies! |
@PalmJanssen: Wat betreft de vereiste uniciteiten voor relatiesoort en relatierol (afhankelijk van wat leidend is): ik zou graag willen weten waarop de keuze voor deze uniciteiten is gebaseerd. Daarnaast: nu het niet in MIM 1.2 staat, lijkt me dat voor dit - best ingrijpende - besluit eerst het werkveld geconsulteerd moet worden. Bij 'relatiesoort leidend' zou ik als regel hanteren dat de combinatie van relatiebenaming & doelobjecttype uniek moet zijn. |
Dit komt uit algemene object-orientatie. Naam van een kenmerk moet uniek zijn binnen de context (objecttype) waar het kenmerk bij hoort. Als het niet uniek is kan je er ook niet over praten. Bijvoorbeeld, stel een objecttype Persoon heeft twee aparte attributen 'naam'. Een keer voor het invullen van de voornaam, een keer voor de achternaam. Dat lukt natuurlijk niet in de gegevensdefinitie. Vandaar twee unieke namen voor deze attributen. In dit geval 'voornaam' en ' achternaam'. Hetzelfde geldt voor relatie(naam) of relatie(rol). Het zijn immers ook kenmerken.
Dit staat ook in alle MIM versies. Kenmerken moeten binnen de context van objecttype uniek benoemd zijn. Je moet dan wel doorhebben dat als 'relatierol = leidend' dat dan de relatienaam geen kenmerk meer is en dus ook deze regel niet voor geldt. BRO doet dat heel goed.
Deze regel is er niet en niet nodig. Het gaat om de kenmerken. Deze combinatie is geen kenmerk. |
Bij het modelleren van objecten (stereotype: Objecttype) en elementen van objecttype lijkt het me niet meer dan logisch om unieke namen te gebruiken. Dat wordt ook afgedwongen in de modelleertooling (EA). Bij (association-)relaties ligt dat in de praktijk anders.
Waar zijn relatienaam en -rol kenmerken van? Dat is bij mijn weten niet van een van de twee objecten waartussen de relatie ligt, maar van de relatie zelf. De relatie wordt niet gestereotypeerd als objecttype en hoeft dan ook niet te voldoen aan de regel: Naam van een kenmerk moet uniek zijn binnen de context (objecttype) waar het kenmerk bij hoort. Het is dan ook niet meer dan logisch dat de modelleertooling het niet afdwingt.
Het zou fijn zijn als dit 'doorhebben' ook in de MIM-catalogus zo ondubbelzinnig mogelijk beschreven is. Misschien ook met het advies dat als je kiest voor niet unieke relatienamen, je automatisch 'kiest' om relatierol leidend te laten zijn. Of misschien onderscheid maken in de toepassing van de uniciteits-regels tussen een conceptueel model in natuurlijke taal en een logisch model in formelere taal. |
@ArjanLoeffen In welke Imvertor versie is dit probleem opgelost? |
De regel is nog steeds van kracht. Er zal een property o.i.d. kunnen komen die stelt dat deze eis niet geldt voor het betreffende model. Maar die er is nog niet en we willen het kind niet met het badwater weggooien. Er moet een duidelijk besluit komen, een regel die we kunnen volgen. |
Op basis van jouw eerste bericht bij dit issue, meende ik dat het zou worden:
Wat ik wil weten vanaf welke Imvertor versie dit is geïmplementeerd. Bedoel je nu dat er misschien nog een mogelijkheid komt om deze rules te negeren bij een bepaald model? Dat was op zich niet mijn vraag. |
Op 13 dec 2023 is de regel toegevoegd voor MIM 1.1 (en hoger) modellen. Zie #428 (comment) |
Excuses, nee, die zit nog niet in 4.1, maar in de nightly build. |
Ik heb een feature opgenomen voor een metamodel, waarin je aangeeft dat de namen van relaties of rollen uniek moeten zijn of niet: <feature name="unique-normalized-association-names">yes</feature> Dit betekent: namen van relaties of rollen moeten uniek zijn, afhankelijk van gekozen relatiemodelleringstype. Als 'no', dan deze test niet uitvoeren. Voor BRO en IHW zet ik deze waarde op 'no'. @WijnandIHW @jacobvosimpronotion Is dit voor jullie voldoende? |
Hoi Arjan,
Het is niet dat we vanuit BRO deze controle niet willen! Dus graag niet op 'no' zetten, maar op 'yes'.
Maar zoals gecommuniceerd m.b.t. SLD: het werkt nog niet goed in Imvertor.
Nog wel de vraag: waar ergens stel je deze feature in (graag verwijzing naar wrs. bestand op GitHub)?
Groeten,
Jacob
…________________________________
Van: Arjan Loeffen ***@***.***>
Verzonden: woensdag 21 augustus 2024 13:55
Aan: Imvertor/Imvertor-Maven ***@***.***>
CC: Jacob Vos ***@***.***>; Mention ***@***.***>
Onderwerp: Re: [Imvertor/Imvertor-Maven] Unieke namen voor relaties en -rollen beter valideren (Issue #523)
Ik heb een feature opgenomen voor een metamodel, waarin je aangeeft dat de namen van relaties of rollen uniek moeten zijn of niet:
<feature name="unique-normalized-association-names">yes</feature>
Dit betekent: namen van relaties of rollen moeten uniek zijn, afhankelijk van gekozen relatiemodelleringstype. Als 'no', dan deze test niet uitvoeren.
Dit geldt o.a. voor metamodellen MIM 1.1 en hoger. Moeten bepalen of dit ook voor MBG geldt.
Voor BRO en IHW zet ik deze waarde op 'no'.
@WijnandIHW<https://github.com/WijnandIHW> @jacobvosimpronotion<https://github.com/jacobvosimpronotion> Is dit voor jullie voldoende?
—
Reply to this email directly, view it on GitHub<#523 (comment)>, or unsubscribe<https://github.com/notifications/unsubscribe-auth/AQ2QU2TUVTZHL3MYRA56XZ3ZSR54PAVCNFSM6AAAAABMOL27SSVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDGMBRHA3TAMZYHA>.
You are receiving this because you were mentioned.
|
Zie #523 Minor, misschien bugfix.
In SLD staat dat het MIM model Relatiesoort leidend is. De validatie verloopt in dat geval goed, nietwaar? Het moet relatierol leidend zijn, neem ik aan. |
Ja, inderdaad graag aanpassen (ik heb daar geen rechten). |
De namen van rollen moeten uniek zijn. Zie #523 Configuratie aanpassing.
Ik zie dat er een bug zat in het uitlezen van namen van rollen. Dat is nu hersteld. Morgen beschikbaar in Development = Nightly-build. |
Zojuist getest met nightly build. Aangeboden: SLD, waarbij relatierol leidend is. Helaas toch nog de foutmelding "Several properties with same name found: "omvat"". En de naam 'omvat' is de naam van een relatiesoort. Zie job 2024-08-23-06-34-46-410. |
De aanpak moet zijn:
Zie https://docs.geostandaarden.nl/mim/mim/#uniekheid-van-namen-van-modelelementen dat dus nog achterloopt.
The text was updated successfully, but these errors were encountered: