Open isotc211 opened 3 years ago
[...] (which it already does, <> and <> already break the UML meta model).
Something seems to be missing here, what exactly is breaking the UML meta model?
I believe these words are from an email discussion and was written by @cportele. The issue relates to https://github.com/ISO-TC211/ISO19103/issues/6 and concerns the findings in Tatjana Kutzner's PhD thesis.
This is not related to Tatjana's findings, the issue came up during discussions in an OGC initiative (forgot which one).
Unfortunately the links to the "old" standards tracker are now broken plus the transfer of content into GitHub was incomplete. Let me see, if I can find out what information was dropped in the transfer to GitHub / Markdown.
I had a look, I am sure it was
... (which it already does,
<<union>>
and<<codelist>>
already break the UML meta model).
Found it in an old email. I believe it does relate to Tatjana's research - on how union and code list is modelled in the profile.
Yes, the union/codelist issues have been discussed at various occasions before, but these are just a side issue here (to note that 19103 already is not UML). The main point of the issue is that the GFM in 19109 is inconsistent with UML in how inheritance is interpreted by default.
Agree, clumsy wording from my side :). The issue does not concern union and code list, but the sentence @heidivanparys asked about does.
ISO/FDIS 19103 contains a note regarding this in subclause 7.4.3, therefore this issue should no longer be labeled with 19103.
Justification: /req/uml/inheritance is inconsistent with UML.
That said, UML 2.4.1 (the normative reference), is internally inconsistent, too. In 7.3.21 the default for isDisjoint (the equivalent to uniqueInstance from the GFM, which has a default of "true") is "false", which is in conflict with the 19109 requirement. At the same time, UML 2.4.1 also states that the constraint "{incomplete, disjoint}" would be the default, which would be consistent with /req/uml/inheritance.
OMG has resolved the internal inconsistency by changing the default in UML 2.5.1 to "{incomplete, overlapping}", which is now consistent with the default for isDisjoint in UML 2.4.1/2.5.1, so the use of {disjoint} as the default in UML 2.4.1 is a bug. Proposal: /req/uml/inheritance could be updated to bring it inline with UML.
The issue, however, is much broader. The intended semantics for most generalization sets in most application schemas in UML and probably also many of the models in the Harmonized Model is probably "{disjoint}", so this would require a broader discussion and potentially some outreach activities, too.
Alternatively TC 211 could update 19103 to state that it uses UML tools for modelling, but that is uses not UML, but a variation of UML, ie., a different meta model (which it already does, <> and <> already break the UML meta model).