OCL 2.5 RTF Avatar
  1. OMG Issue

OCL25 — Possible typo or error in symbolic notation

  • Key: OCL25-228
  • Status: open  
  • Source: Nanjing University ( Zhuo Cao)
  • Summary:

    Issue Description

    1. In *Definition A.22*, the following symbolic condition appears to be incorrect:
    [
    \text

    {if } n > 2 \ \text{or } M_j - {0,1} = \emptyset \ \text{ then }
    r_{j(as;ri)} : t_{ci} \rightarrow Set, t_{cj} \in \Omega_{nav}(c)
    ]
    Based on the intended semantics of multiplicities, the condition should instead be:
    [
    \text{if }

    n > 2 \ \text

    {or }

    M_j -

    {0,1} \neq \emptyset \ \text{ then }
    r_{j(as;ri)} : t_{ci} \rightarrow Set(t_{cj}) \in \Omega_{nav}(c)
    ]
    That is, the set difference ( M_j - {0,1}

    ) should be *non-empty*, rather than empty, in order for the navigation to yield a set-valued result.

    2. In Definition A.23, the symbolic notation appears to be incorrect.
    The definition currently states:
    [
    L(as)(\underline

    {c}_i) = { \underline{c}

    _j \mid (\underline

    {c}_1, \ldots, \underline{c}

    _i, \ldots, \underline

    {c}_j, \ldots, \underline{c}

    n) \in \sigma{\text{CLASS}}(c) }
    ]
    However, since ( L(as) ) is defined over an association ( as ), the tuple should range over the association relation rather than a class relation. Therefore, the definition should instead be:
    [
    L(as)(\underline

    {c}_i) = { \underline{c}

    _j \mid (\underline

    {c}_1, \ldots, \underline{c}

    _i, \ldots, \underline

    {c}_j, \ldots, \underline{c}

    n) \in \sigma{\text{ASSOC}}(as) }
    ]

  • Reported: OCL 2.4 — Wed, 14 Jan 2026 08:14 GMT
  • Updated: Thu, 29 Jan 2026 08:54 GMT