OMG default multiplicity not supported for [..*]

It appears that the default multiplicity of [..*] being the same as [0..*] is not currently supported. I, myself, never cared for that, as it opens the specification to doubt that it was done correctly. I think explicit bounds are the proper way to write this. Regardless, the spec calls for it to be supported.

This is an editor session showing this. If there is some default not set that would remove this error, please indicate.

Hi Richard,

This is expected behaviour according to the KerML specifications. More concretely, in section 8.2.5.11 Multiplicities Concrete Syntax, the EBNF is given as follows:

MultiplicityBounds : MultiplicityRange =
    '[' ( ownedRelationship += MultiplicityExpressionMember '..' )?
          ownedRelationship += MultiplicityExpressionMember ']'

As you can see, the lower bound AND the .. literal is in the same optional group (identified by the parentheses and the ? at the end).

This means that there is no way to omit the lower bound while still having .. in the syntax. If .. is used, then a lower bound has to be set as well.

I can agree with you that the human readable text in section 7.4.12 Multiplicities is a bit confusing:

A multiplicity range can also be written without the lower bound (or ..). […]

I belive that or should instead be and.

But in any case, clause 7 is not normative, while clause 8 is. Therefore, all of the tools supporting KerML (and SysMLv2) shall follow what is written in clause 8.

Simonas,

Thank you for that clarification. I reported the documentation errata to the OMG on the KerML specification. The non-normative text of “(or ..)” still occurs in the 2026-05 release (KerML v1.1 Beta 1) document.

I verified that the OMG Eclipse Pilot implementation functions the same as Syside 0.10.3.