Issue 15220: OCL 2.2 7.5.4 Property-qualified association navigation has no concrete or abstract syntax (ocl2-rtf) Source: Model Driven Solutions (Dr. Edward Willink, ed(at)willink.me.uk) Nature: Uncategorized Issue Severity: Summary: Section 7.5.4 describes an association navigation qualification to accommodate 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 qualifiers. 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 AssociationClassCallExp and so it was removed and merged with AttributeCallExp as PropertyCallExp. It would appear that a form of AssociationEndCallExp is required with syntaxes 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." Suggest: 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"). Resolution: Revised Text: Actions taken: April 22, 2010: received issue Discussion: End of Annotations:===== m: "Willink, Ed" To: "'issues@omg.org'" Subject: OCL 2.2 7.5.4 Property-qualified association navigation has no co ncrete or abstract syntax Date: Thu, 22 Apr 2010 16:06:36 +0100 X-Mailer: Internet Mail Service (5.5.2657.72) Hi Section 7.5.4 describes an association navigation qualification to accommodate 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 qualifiers. 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 AssociationClassCallExp and so it was removed and merged with AttributeCallExp as PropertyCallExp. It would appear that a form of AssociationEndCallExp is required with syntaxes 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." Suggest: 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"). Regards Ed Willink **************************************************************************** Please consider the environment before printing this email. Thales Research and Technology (UK) Limited DISCLAIMER: The information contained in this e-mail is confidential. It may also be legally privileged. It is intended only for the stated addressee(s) and access to it by any other person is unauthorised. If you are not an addressee, you must not disclose, copy, circulate or in any other way use or rely on the information contained herein. Such unauthorised use may be unlawful. We may monitor all e-mail communications through our networks. If you have received this e-mail in error, please inform us immediately on +44 (0)1293 575987 and delete it and all copies from your system. We accept no responsibility for changes to any e-mail which occur after it has been sent. Attachments to this e-mail may contain software viruses which could damage your system. We therefore recommend you virus-check all attachments before opening. The registered office of Thales Research and Technology (UK) Limited is at: 2 Dashwood Lang Road, The Bourne Business Park, Addlestone, Weybridge, Surrey KT15 2NX. Registered in England No. 774298. ****************************************************************************