Issue 15357: OCL 2.2 OclState, State, StateExp, StateExpCS, StateValue and StateExpEval (ocl2-rtf) Source: Model Driven Solutions (Dr. Edward Willink, ed(at)willink.me.uk) Nature: Uncategorized Issue Severity: Summary: The use of OclState in the specification is not defined in the normative part of the specification, where it appears solely as OclAny.oclIsInState(statespec : OclState). A corresponding StateExp exists to convey this as a referredState of type State. Surely the OclState type is redundant and it should be OclAny.oclIsInState(statespec : State)? The use of OclState in Annex A may be helpful, so perhaps an introduction to Annex A could explain the mappings between the names used for clarity in Annex A and those used in the normative specification. Aren't a StateValue and StateExpEval needed to define the semantics? Isn't a StateExpCS needed to define the abstract/concrete syntax? Perhaps this could merge with TypeExpCS, TypeLiteralExpCS as ModelElementLiteralCS. Resolution: Revised Text: Actions taken: July 8, 2010: received issue Discussion: End of Annotations:===== ronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AioHAEgHNUzUnw4U/2dsb2JhbACTWYxAcb5mhSUE Date: Thu, 08 Jul 2010 07:02:55 +0100 From: Ed Willink User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0 To: issues@omg.org Subject: OCL 2.2 OclState, State, StateExp, StateExpCS, StateValue and StateExpEval Hi The use of OclState in the specification is not defined in the normative part of the specification, where it appears solely as OclAny.oclIsInState(statespec : OclState). A corresponding StateExp exists to convey this as a referredState of type State. Surely the OclState type is redundant and it should be OclAny.oclIsInState(statespec : State)? The use of OclState in Annex A may be helpful, so perhaps an introduction to Annex A could explain the mappings between the names used for clarity in Annex A and those used in the normative specification. Aren't a StateValue and StateExpEval needed to define the semantics? Isn't a StateExpCS needed to define the abstract/concrete syntax? Perhaps this could merge with TypeExpCS, TypeLiteralExpCS as ModelElementLiteralCS. Regards DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:received:mime-version:sender:received :in-reply-to:references:from:date:x-google-sender-auth:message-id :subject:to:cc:content-type; bh=jfI4wWB0DMYD9qtJ1/V/D6x7D+hZ+TirL6v4rgsWm00=; b=J4UPloBgPVcYxj3dkVdex4yZi4VTtiqC3WAwq6dz+rorHGQ9O0WLrJK7v8OD7vLjci C7YWPURr0xGgnHrZnAS85g1s5usIkVbXJV4P04FLOZ1bGwQfgLqGfKm09lEpxucdANle K+zYTDYNWszNw9IBI5L8+siNwLLzTp22UusqI= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:sender:in-reply-to:references:from:date :x-google-sender-auth:message-id:subject:to:cc:content-type; b=Cec1fkBuAoNGntyDdyLX2tpt4mot3NCV3ihbulquHbeQTfVNdyNMJoy+bobYzDSLpE naWVf61oDg7SwQXR2xG2JMfxW9MAbFD1AvIH/qWQApVASR53mOrzjsgJOc55piUiKQyu lGLE7q7mHUabqKC/OSZLwbDRAIVn+Uku0WpY0= Sender: bran.selic@gmail.com From: Bran Selic Date: Thu, 8 Jul 2010 17:57:59 -0400 X-Google-Sender-Auth: 8bF9zr3isOwd6v0XSMA9US0d27k Subject: Re: issue 15357 -- OCL 2 RTF issue To: Juergen Boldt Cc: issues@omg.org, ocl2-rtf@omg.org Actually, this brings up the bigger issue of the overall relationship between OCL, MOF, and UML. As originally conceived (by Steve Cook when he was at IBM), OCL was UML agnostic -- it was a general first-order logic facility for navigating sets and their relationships as represented by class diagrams in either MOF or UML (with the exception of supporting Association classes). However, when oclIsInState was introduced, OCL entered into the realm that was specific to one particular UML domain (statecharts). In my view, it is definitely useful to include these UML-specific OCL extensions, but they should be clearly separated from the core OCL. It is clear that the semantics of such constructs are far more complex and domain specific than the "core OCL" (do we really want OCL semantics to get encumbered with complex concepts such as UML state, or transition, etc.?). Burdening OCL with all these language/domain specific semantics is the wrong way to approach it. One possibility is to have a set of distinct OCL extensions for various UML diagrams (statecharts, activities, interactions, etc.). One could then imagine other domain-specific language extensions for various other MOF-based languages, and even standard mechanisms for customizing OCL to a particular language. Cheers...Bran On Thu, Jul 8, 2010 at 4:49 PM, Juergen Boldt wrote: X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AioHAEgHNUzUnw4U/2dsb2JhbACTWYxAcb5mhSUE Date: Thu, 08 Jul 2010 07:02:55 +0100 From: Ed Willink User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0 To: issues@omg.org Subject: OCL 2.2 OclState, State, StateExp, StateExpCS, StateValue and StateExpEval Hi The use of OclState in the specification is not defined in the normative part of the specification, where it appears solely as OclAny.oclIsInState(statespec : OclState). A corresponding StateExp exists to convey this as a referredState of type State. Surely the OclState type is redundant and it should be OclAny.oclIsInState(statespec : State)? The use of OclState in Annex A may be helpful, so perhaps an introduction to Annex A could explain the mappings between the names used for clarity in Annex A and those used in the normative specification. Aren't a StateValue and StateExpEval needed to define the semantics? Isn't a StateExpCS needed to define the abstract/concrete syntax? Perhaps this could merge with TypeExpCS, TypeLiteralExpCS as ModelElementLiteralCS. Regards Ed Willink Juergen Boldt Director, Member Services Object Management Group 140 Kendrick St Building A Suite 300 Needham, MA 02494 USA tel: +1 781 444 0404 x 132 fax: +1 781 444 0320 email: juergen@omg.org www.omg.org X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Aq8EAC9RNkzUnw4S/2dsb2JhbACBQ5g0hV+BUL88gmUVgi0E Date: Fri, 09 Jul 2010 06:32:43 +0100 From: Ed Willink User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0 To: Bran Selic CC: Juergen Boldt , ocl2-rtf@omg.org Subject: Re: issue 15357 -- OCL 2 RTF issue Hi Bran Interesting point. With a general ModelElementLiteral capability, it is easy to modularize out oclIsInState as a defined helper operation. No explicit CST, AST or Eval footprint. More challenging will be Message explicitly defined as Message but always written as Message. I'm currently examining the possibility of defining the missing OCL Runtime Meta-Model (aka Pivot) as a variant UML merge (Basic+Templates+AssociationClasses+OCL); unfortunately the SuperStructure 'Abstractions' need tweaking to be merged with Basic. In this merge, State and Message are missing so they have to be added by hand to avoid bringing in StateMachines and ... Of course Message also has ^ and ^^ concrete syntax support, so maybe there needs to be some flexibility to define custom infix operators and custom precedence (neither my LALR nor ANTLr parser will like this). Regards Ed Willink On 08/07/2010 22:57, Bran Selic wrote: Actually, this brings up the bigger issue of the overall relationship between OCL, MOF, and UML. As originally conceived (by Steve Cook when he was at IBM), OCL was UML agnostic -- it was a general first-order logic facility for navigating sets and their relationships as represented by class diagrams in either MOF or UML (with the exception of supporting Association classes). However, when oclIsInState was introduced, OCL entered into the realm that was specific to one particular UML domain (statecharts). In my view, it is definitely useful to include these UML-specific OCL extensions, but they should be clearly separated from the core OCL. It is clear that the semantics of such constructs are far more complex and domain specific than the "core OCL" (do we really want OCL semantics to get encumbered with complex concepts such as UML state, or transition, etc.?). Burdening OCL with all these language/domain specific semantics is the wrong way to approach it. One possibility is to have a set of distinct OCL extensions for various UML diagrams (statecharts, activities, interactions, etc.). One could then imagine other domain-specific language extensions for various other MOF-based languages, and even standard mechanisms for customizing OCL to a particular language. Cheers...Bran On Thu, Jul 8, 2010 at 4:49 PM, Juergen Boldt wrote: X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AioHAEgHNUzUnw4U/2dsb2JhbACTWYxAcb5mhSUE Date: Thu, 08 Jul 2010 07:02:55 +0100 From: Ed Willink User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.0; en-GB; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0 To: issues@omg.org Subject: OCL 2.2 OclState, State, StateExp, StateExpCS, StateValue and StateExpEval Hi The use of OclState in the specification is not defined in the normative part of the specification, where it appears solely as OclAny.oclIsInState(statespec : OclState). A corresponding StateExp exists to convey this as a referredState of type State. Surely the OclState type is redundant and it should be OclAny.oclIsInState(statespec : State)? The use of OclState in Annex A may be helpful, so perhaps an introduction to Annex A could explain the mappings between the names used for clarity in Annex A and those used in the normative specification. Aren't a StateValue and StateExpEval needed to define the semantics? Isn't a StateExpCS needed to define the abstract/concrete syntax? Perhaps this could merge with TypeExpCS, TypeLiteralExpCS as ModelElementLiteralCS. Regards Ed Willink Juergen Boldt Director, Member Services Object Management Group 140 Kendrick St Building A Suite 300 Needham, MA 02494 USA tel: +1 781 444 0404 x 132 fax: +1 781 444 0320 email: juergen@omg.org www.omg.org No virus found in this incoming message. Checked by AVG - www.avg.com Version: 9.0.830 / Virus Database: 271.1.1/2989 - Release Date: 07/08/10 07:36:00 Ed Willink