OCL 2.5 RTF Avatar
  1. OMG Issue

OCL25 — OCL 2.2 7.5.4 Property-qualified association navigation has no concrete or abstract syntax

  • Key: OCL25-162
  • Legacy Issue Number: 15220
  • Status: open  
  • Source: Model Driven Solutions ( Ed Willink)
  • Summary:

    Section 7.5.4 describes an association navigation qualification to
    recursive associations.

    e.g. self.employeeRanking[bosses]

    in which "bosses" is a Property role name.

    OCL 2.2 has no concrete syntax for this. Superficially it resembles an
    AssociationClassCallExp, but that requires OclExpression values for its

    Prior to OCL 2.0 (and still present in many obstinate residual artefacts in
    OCL 2.2),
    there was an AssociationEndCallExp, whose syntax was identical to an
    and so it was removed and merged with AttributeCallExp as PropertyCallExp.

    It would appear that a form of AssociationEndCallExp is required with

    OclExpressionCS '.' pathNameCS[1] ('[' pathNameCS[2] ']')? isMarkedPreCS?
    pathNameCS[1] ('[' pathNameCS[2] ']')? isMarkedPreCS?

    in which pathNameCS[2] defines the NavigationCallExpCS.ast.navigationSource
    that is currently completely undefined and very confusingly described in
    Section 8.3.2:

    "navigationSource The source denotes the association end Property at the end
    of the object itself. This is used to
    resolve ambiguities when the same Classifier is at more than one end (plays
    more than one
    role) in the same association. In other cases it can be derived."


    Remove NavigationCallExp::navigationSource that currently has no semantics

    Introduce QualifiedPropertyCallExp (and etc.) as a further NavigationCallExp
    to support
    the qualified navigation. It has two associations:

    referredSourceProperty: Property (e.g. "bosses")
    referredTargetProperty: Property (e.g. "employeeRanking").

  • Reported: OCL 2.1 — Thu, 22 Apr 2010 04:00 GMT
  • Updated: Thu, 8 Oct 2015 14:12 GMT