Issue 16210: Property::isID (uml2-rtf) Source: (Dr. Maged Elaasar, melaasar(at)gmail.com) Nature: Uncategorized Issue Severity: Summary: Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Resolution: Revised Text: Actions taken: May 2, 2011: received issue Discussion: End of Annotations:===== ubject: Property::isID To: uml2-rtf@omg.org X-Mailer: Lotus Notes Release 7.0 HF277 June 21, 2006 From: Maged Elaasar Date: Mon, 2 May 2011 14:37:40 -0400 X-MIMETrack: Serialize by Router on D25ML03/25/M/IBM(Release 8.5.1FP5|September 29, 2010) at 05/02/2011 14:37:41 Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Maged From: Steve Cook To: Maged Elaasar , "uml2-rtf@omg.org" Subject: RE: Property::isID Thread-Topic: Property::isID Thread-Index: AQHMCPhqYSTTWpa7Kk2Uiy04r/Sxa5R62jkw Date: Tue, 3 May 2011 09:45:44 +0000 Accept-Language: en-GB, en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [10.166.18.101] That.s an interesting question. I think that putting isID on an association end does imply that the other end.s upper bound must be one, otherwise there is a logical contradiction between the value uniquely identifying an instance (isID) and the possibility of more than one instance (upper bound). But I don.t think that an upper bound of one necessarily implies that the other end has isID true: there might be other reasons why such a property is not appropriate for use as an ID. -- Steve From: Maged Elaasar [mailto:melaasar@ca.ibm.com] Sent: 02 May 2011 19:38 To: uml2-rtf@omg.org Subject: Property::isID Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Maged To: "uml2-rtf@omg.org" Subject: RE: Property::isID X-KeepSent: 2B139003:7CD0AFFE-85257885:00463CE7; type=4; name=$KeepSent X-Mailer: Lotus Notes Release 8.5.2 August 10, 2010 From: Jim Amsden Date: Tue, 3 May 2011 08:53:26 -0400 X-MIMETrack: Serialize by Router on D03NM118/03/M/IBM(Release 8.5.1FP4|July 25, 2010) at 05/03/2011 06:53:28, Serialize complete at 05/03/2011 06:53:28 isID can be used with associations, and the end would likely have multiplicity 1. The associated object would generally be a DataType, not a Class and would represent a composite identifier. It could be a Class, I would just not expect that to be a typical case. I suppose the multiplicity could be many, and the ID derived through some hash of the instances. But this would probably be an edge case. So its not clear what needs to be added for rules, if any. Jim Amsden, Senior Technical Staff Member Unleash the Labs Solution Architect for Rational EA and ADC Tools Make a new ULL Request 919-461-3689 From: Steve Cook To: Maged Elaasar , "uml2-rtf@omg.org" Date: 05/03/2011 05:49 AM Subject: RE: Property::isID -------------------------------------------------------------------------------- Thatā..s an interesting question. I think that putting isID on an association end does imply that the other endā..s upper bound must be one, otherwise there is a logical contradiction between the value uniquely identifying an instance (isID) and the possibility of more than one instance (upper bound). But I donā..t think that an upper bound of one necessarily implies that the other end has isID true: there might be other reasons why such a property is not appropriate for use as an ID. -- Steve From: Maged Elaasar [mailto:melaasar@ca.ibm.com] Sent: 02 May 2011 19:38 To: uml2-rtf@omg.org Subject: Property::isID Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Maged Subject: RE: Property::isID Date: Tue, 3 May 2011 07:09:48 -0700 X-MS-Has-Attach: yes X-MS-TNEF-Correlator: Thread-Topic: Property::isID Thread-Index: AcwJkTfnke8cCJdNQySymWzHTmO1WAACHRsw From: "Pete Rivett" To: "Jim Amsden" , To me it does not make sense to have an Association for a Datatyped Property . what would be the purpose? The point of an Association IMHO is to provide a definition for Links that associate 2 (or more) Objects. Maybe it.s something we should clarify in UML 2.5. Pete PS I agree with Steve.s response to Maged.s original question From: Jim Amsden [mailto:jamsden@us.ibm.com] Sent: Tuesday, May 03, 2011 5:53 AM To: uml2-rtf@omg.org Subject: RE: Property::isID isID can be used with associations, and the end would likely have multiplicity 1. The associated object would generally be a DataType, not a Class and would represent a composite identifier. It could be a Class, I would just not expect that to be a typical case. I suppose the multiplicity could be many, and the ID derived through some hash of the instances. But this would probably be an edge case. So its not clear what needs to be added for rules, if any. Jim Amsden, Senior Technical Staff Member Unleash the Labs Solution Architect for Rational EA and ADC Tools Make a new ULL Request 919-461-3689 From: Steve Cook To: Maged Elaasar , "uml2-rtf@omg.org" Date: 05/03/2011 05:49 AM Subject: RE: Property::isID -------------------------------------------------------------------------------- That.s an interesting question. I think that putting isID on an association end does imply that the other end.s upper bound must be one, otherwise there is a logical contradiction between the value uniquely identifying an instance (isID) and the possibility of more than one instance (upper bound). But I don.t think that an upper bound of one necessarily implies that the other end has isID true: there might be other reasons why such a property is not appropriate for use as an ID. -- Steve From: Maged Elaasar [mailto:melaasar@ca.ibm.com] Sent: 02 May 2011 19:38 To: uml2-rtf@omg.org Subject: Property::isID Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Maged Subject: Re: Property::isID To: "Rouquette, Nicolas F (313K)" Cc: Jim Amsden , Juergen Boldt , Pete Rivett , "uml2-rtf@omg.org" X-Mailer: Lotus Notes Release 7.0 HF277 June 21, 2006 From: Maged Elaasar Date: Fri, 6 May 2011 09:56:48 -0400 X-MIMETrack: Serialize by Router on D25ML03/25/M/IBM(Release 8.5.1FP5|September 29, 2010) at 05/06/2011 09:56:48 An "id" property implies that a value of this property uniquely identifies a value of the identified class. e.g., if a property ssn:Integer is an id for class Person, it follows that for every unique value of snn there is a unique instance of Person When an associated end ( in a binary association) vs. an attribute is an id, then it follows that the other association end must have an upper bound of 1 e.g., if an association end ceo:Person is a id for class Company, then it follows that for every instance of Person that is a CEO, there is a unique instance of Company (s/he is a CEO of) "Rouquette, Nicolas F (313K)" "Rouquette, Nicolas F (313K)" 05/06/2011 01:55 AM To Maged Elaasar/Ottawa/IBM@IBMCA cc Juergen Boldt , Jim Amsden , Pete Rivett , "uml2-rtf@omg.org" Subject Re: Property::isID Please explain the reasoning how you obtained this constraint. If the intent is to uniquely identify instances of a Class, then we have at least three ways to do this: 1) via one or more Properties defined in that Class with {isID=true} (I don't see anything in the description of isID against this) 2) via association end qualifiers (the semantics of qualifiers is unclear in 2.4) 3) via a combination of qualified association end properties with {isID=true} - Nicolas. On May 3, 2011, at 8:50 AM, Maged Elaasar wrote: I guess so add a constraint saying that if an association end is an id, then the opposite end must have an upper bound of 1. Juergen Boldt Juergen Boldt 05/03/2011 10:43 AM To "Pete Rivett" , "Jim Amsden" , cc Subject RE: Property::isID so should I assign an issue number to this email thread? -Juergen At 10:09 AM 5/3/2011, Pete Rivett wrote: To me it does not make sense to have an Association for a Datatyped Property . what would be the purpose? The point of an Association IMHO is to provide a definition for Links that associate 2 (or more) Objects. Maybe itā..s something we should clarify in UML 2.5. Pete PS I agree with Steveā..s response to Magedā..s original question From: Jim Amsden [ mailto:jamsden@us.ibm.com] Sent: Tuesday, May 03, 2011 5:53 AM To: uml2-rtf@omg.org Subject: RE: Property::isID isID can be used with associations, and the end would likely have multiplicity 1. The associated object would generally be a DataType, not a Class and would represent a composite identifier. It could be a Class, I would just not expect that to be a typical case. I suppose the multiplicity could be many, and the ID derived through some hash of the instances. But this would probably be an edge case. So its not clear what needs to be added for rules, if any. Jim Amsden, Senior Technical Staff Member Unleash the Labs Solution Architect for Rational EA and ADC Tools Make a new ULL Request 919-461-3689 From: Steve Cook To: Maged Elaasar , "uml2-rtf@omg.org" Date: 05/03/2011 05:49 AM Subject: RE: Property::isID Thatā..s an interesting question. I think that putting isID on an association end does imply that the other endā..s upper bound must be one, otherwise there is a logical contradiction between the value uniquely identifying an instance (isID) and the possibility of more than one instance (upper bound). But I donā..t think that an upper bound of one necessarily implies that the other end has isID true: there might be other reasons why such a property is not appropriate for use as an ID. -- Steve From: Maged Elaasar [mailto:melaasar@ca.ibm.com] Sent: 02 May 2011 19:38 To: uml2-rtf@omg.org Subject: Property::isID Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Maged Juergen Boldt Director, Member Services 140 Kendrick Street, Building A Suite 300 Needham, MA 02494 USA Tel: 781 444 0404 x 132 fax: 781 444 0320 www.omg.org <13168975.gif> pic13015.gif From: "Rouquette, Nicolas F (313K)" To: Maged Elaasar CC: Jim Amsden , Juergen Boldt , Pete Rivett , "uml2-rtf@omg.org" Date: Tue, 10 May 2011 15:10:33 -0700 Subject: Re: Property::isID Thread-Topic: Property::isID Thread-Index: AcwPXxVIl+E7hJJQQA2+qYDhhM+G6Q== Accept-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: acceptlanguage: en-US X-Source-IP: altvirehtstap02.jpl.nasa.gov [128.149.137.73] X-Source-Sender: nicolas.f.rouquette@jpl.nasa.gov X-AUTH: Authorized On May 6, 2011, at 6:56 AM, Maged Elaasar wrote: An "id" property implies that a value of this property uniquely identifies a value of the identified class. e.g., if a property ssn:Integer is an id for class Person, it follows that for every unique value of snn there is a unique instance of Person Please read the wording carefully in the spec: isID : Boolean True indicates this property can be used to uniquely identify an instance of the containing Class. This sentence does not imply that a single property with isID=true suffices to uniquely identify an instance of the containing Class. When an associated end ( in a binary association) vs. an attribute is an id, then it follows that the other association end must have an upper bound of 1 e.g., if an association end ceo:Person is a id for class Company, then it follows that for every instance of Person that is a CEO, there is a unique instance of Company (s/he is a CEO of) Again, you are proposing a rule that has no legitimate basis in the text of the UML 2.4 spec. From a practical standpoint, there are domains where identification is predicated on multiple keys. We should be able to model such cases with a class that has multiple properties (attributes or association ends) with isID=true. This is well-formed in current UML2.4 but your proposed rule would make such models ill-formed. - Nicolas. "Rouquette, Nicolas F (313K)" "Rouquette, Nicolas F (313K)" 05/06/2011 01:55 AM To Maged Elaasar/Ottawa/IBM@IBMCA cc Juergen Boldt , Jim Amsden , Pete Rivett , "uml2-rtf@omg.org" Subject Re: Property::isID Please explain the reasoning how you obtained this constraint. If the intent is to uniquely identify instances of a Class, then we have at least three ways to do this: 1) via one or more Properties defined in that Class with {isID=true} (I don't see anything in the description of isID against this) 2) via association end qualifiers (the semantics of qualifiers is unclear in 2.4) 3) via a combination of qualified association end properties with {isID=true} - Nicolas. On May 3, 2011, at 8:50 AM, Maged Elaasar wrote: I guess so add a constraint saying that if an association end is an id, then the opposite end must have an upper bound of 1. Juergen Boldt Juergen Boldt 05/03/2011 10:43 AM To "Pete Rivett" , "Jim Amsden" , cc Subject RE: Property::isID so should I assign an issue number to this email thread? -Juergen At 10:09 AM 5/3/2011, Pete Rivett wrote: To me it does not make sense to have an Association for a Datatyped Property . what would be the purpose? The point of an Association IMHO is to provide a definition for Links that associate 2 (or more) Objects. Maybe itā..s something we should clarify in UML 2.5. Pete PS I agree with Steveā..s response to Magedā..s original question From: Jim Amsden [ mailto:jamsden@us.ibm.com] Sent: Tuesday, May 03, 2011 5:53 AM To: uml2-rtf@omg.org Subject: RE: Property::isID isID can be used with associations, and the end would likely have multiplicity 1. The associated object would generally be a DataType, not a Class and would represent a composite identifier. It could be a Class, I would just not expect that to be a typical case. I suppose the multiplicity could be many, and the ID derived through some hash of the instances. But this would probably be an edge case. So its not clear what needs to be added for rules, if any. Jim Amsden, Senior Technical Staff Member Unleash the Labs Solution Architect for Rational EA and ADC Tools Make a new ULL Request 919-461-3689 From: Steve Cook To: Maged Elaasar , "uml2-rtf@omg.org" Date: 05/03/2011 05:49 AM Subject: RE: Property::isID Thatā..s an interesting question. I think that putting isID on an association end does imply that the other endā..s upper bound must be one, otherwise there is a logical contradiction between the value uniquely identifying an instance (isID) and the possibility of more than one instance (upper bound). But I donā..t think that an upper bound of one necessarily implies that the other end has isID true: there might be other reasons why such a property is not appropriate for use as an ID. -- Steve From: Maged Elaasar [mailto:melaasar@ca.ibm.com] Sent: 02 May 2011 19:38 To: uml2-rtf@omg.org Subject: Property::isID Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Maged Juergen Boldt Director, Member Services 140 Kendrick Street, Building A Suite 300 Needham, MA 02494 USA Tel: 781 444 0404 x 132 fax: 781 444 0320 www.omg.org <13168975.gif> <14928926.gif> pic130151.gif Subject: RE: Property::isID Date: Tue, 10 May 2011 18:59:56 -0400 X-MS-Has-Attach: X-MS-TNEF-Correlator: Thread-Topic: Property::isID Thread-Index: AcwPXxVIl+E7hJJQQA2+qYDhhM+G6QABjVfQ From: "Ed Seidewitz" To: "Rouquette, Nicolas F (313K)" Cc: Nicolas . Good point! In fact, the paragraph in the UML 2.4 spec on IDs says that a .property may be marked as being (part of) the identifier.. (emphasis added) and, later, has the senttence .If multiple properties are marked (possibly in superclasses) then it is the combination of the (property,value) tuples that will logically provide the uniqueness for any instance.. This makes it pretty clear that any one property with isID=true does not necessarily uniquely identify an instance, as you say. -- Ed -------------------------------------------------------------------------------- From: Rouquette, Nicolas F (313K) [mailto:nicolas.f.rouquette@jpl.nasa.gov] Sent: Tuesday, May 10, 2011 6:11 PM To: Maged Elaasar Cc: Jim Amsden; Juergen Boldt; Pete Rivett - Adaptive; uml2-rtf@omg.org Subject: Re: Property::isID On May 6, 2011, at 6:56 AM, Maged Elaasar wrote: An "id" property implies that a value of this property uniquely identifies a value of the identified class. e.g., if a property ssn:Integer is an id for class Person, it follows that for every unique value of snn there is a unique instance of Person Please read the wording carefully in the spec: isID : Boolean True indicates this property can be used to uniquely identify an instance of the containing Class. This sentence does not imply that a single property with isID=true suffices to uniquely identify an instance of the containing Class. When an associated end ( in a binary association) vs. an attribute is an id, then it follows that the other association end must have an upper bound of 1 e.g., if an association end ceo:Person is a id for class Company, then it follows that for every instance of Person that is a CEO, there is a unique instance of Company (s/he is a CEO of) Again, you are proposing a rule that has no legitimate basis in the text of the UML 2.4 spec. From a practical standpoint, there are domains where identification is predicated on multiple keys. We should be able to model such cases with a class that has multiple properties (attributes or association ends) with isID=true. This is well-formed in current UML2.4 but your proposed rule would make such models ill-formed. - Nicolas. "Rouquette, Nicolas F (313K)" "Rouquette, Nicolas F (313K)" 05/06/2011 01:55 AM To Maged Elaasar/Ottawa/IBM@IBMCA cc Juergen Boldt , Jim Amsden , Pete Rivett , "uml2-rtf@omg.org" Subject Re: Property::isID Please explain the reasoning how you obtained this constraint. If the intent is to uniquely identify instances of a Class, then we have at least three ways to do this: 1) via one or more Properties defined in that Class with {isID=true} (I don't see anything in the description of isID against this) 2) via association end qualifiers (the semantics of qualifiers is unclear in 2.4) 3) via a combination of qualified association end properties with {isID=true} - Nicolas. On May 3, 2011, at 8:50 AM, Maged Elaasar wrote: I guess so add a constraint saying that if an association end is an id, then the opposite end must have an upper bound of 1. Juergen Boldt Juergen Boldt 05/03/2011 10:43 AM To "Pete Rivett" , "Jim Amsden" , cc Subject RE: Property::isID so should I assign an issue number to this email thread? -Juergen At 10:09 AM 5/3/2011, Pete Rivett wrote: To me it does not make sense to have an Association for a Datatyped Property . what wwould be the purpose? The point of an Association IMHO is to provide a definition for Links that associate 2 (or more) Objects. Maybe itā..s somethinhing we should clarify in UML 2.5. Pete PS I agree with Steveā..s response to Magedā.....s original question From: Jim Amsden [ mailto:jamsden@us.ibm.com] Sent: Tuesday, May 03, 2011 5:53 AM To: uml2-rtf@omg.org Subject: RE: Property::isID isID can be used with associations, and the end would likely have multiplicity 1. The associated object would generally be a DataType, not a Class and would represent a composite identifier. It could be a Class, I would just not expect that to be a typical case. I suppose the multiplicity could be many, and the ID derived through some hash of the instances. But this would probably be an edge case. So its not clear what needs to be added for rules, if any. Jim Amsden, Senior Technical Staff Member Unleash the Labs Solution Architect for Rational EA and ADC Tools Make a new ULL Request 919-461-3689 From: Steve Cook To: Maged Elaasar , "uml2-rtf@omg.org" Date: 05/03/2011 05:49 AM Subject: RE: Property::isID Thatā..s an interesting question. I th think that putting isID on an association end does imply that the other endā..s upper bound must be one, otherherwise there is a logical contradiction between the value uniquely identifying an instance (isID) and the possibility of more than one instance (upper bound). But I donā..t think that an upper bound of one necescessarily implies that the other end has isID true: there might be other reasons why such a property is not appropriate for use as an ID. -- Steve From: Maged Elaasar [mailto:melaasar@ca.ibm.com] Sent: 02 May 2011 19:38 To: uml2-rtf@omg.org Subject: Property::isID Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Maged Juergen Boldt Director, Member Services 140 Kendrick Street, Building A Suite 300 Needham, MA 02494 USA Tel: 781 444 0404 x 132 fax: 781 444 0320 www.omg.org <13168975.gif> <14928926.gif> Subject: RE: Property::isID To: "Ed Seidewitz" Cc: "Rouquette, Nicolas F (313K)" , uml2-rtf@omg.org X-Mailer: Lotus Notes Release 7.0 HF277 June 21, 2006 From: Maged Elaasar Date: Tue, 10 May 2011 20:41:11 -0400 X-MIMETrack: Serialize by Router on D25ML03/25/M/IBM(Release 8.5.1FP5|September 29, 2010) at 05/10/2011 20:41:12 Nic, a good point indeed. I guess the constraint would only apply if such a property is the only id property. However, I am not sure if it is worth capturing in this case. "Ed Seidewitz" "Ed Seidewitz" 05/10/2011 06:59 PM To "Rouquette, Nicolas F (313K)" cc Subject RE: Property::isID Nicolas . Good point! In fact, the paragraph in the UML 2.4 spec on IDs says that a .property may be marked as being (part of) the identifier.. (emphasis added) and, later, has the sentence .If multiple properties are marked (possibly in superclasses) then it is the combination of the (property,value) tuples that will logically provide the uniqueness for any instance.. This makes it pretty clear that any one property with isID=true does not necessarily uniquely identify an instance, as you say. -- Ed -------------------------------------------------------------------------------- From: Rouquette, Nicolas F (313K) [mailto:nicolas.f.rouquette@jpl.nasa.gov] Sent: Tuesday, May 10, 2011 6:11 PM To: Maged Elaasar Cc: Jim Amsden; Juergen Boldt; Pete Rivett - Adaptive; uml2-rtf@omg.org Subject: Re: Property::isID On May 6, 2011, at 6:56 AM, Maged Elaasar wrote: An "id" property implies that a value of this property uniquely identifies a value of the identified class. e.g., if a property ssn:Integer is an id for class Person, it follows that for every unique value of snn there is a unique instance of Person Please read the wording carefully in the spec: isID : Boolean True indicates this property can be used to uniquely identify an instance of the containing Class. This sentence does not imply that a single property with isID=true suffices to uniquely identify an instance of the containing Class. When an associated end ( in a binary association) vs. an attribute is an id, then it follows that the other association end must have an upper bound of 1 e.g., if an association end ceo:Person is a id for class Company, then it follows that for every instance of Person that is a CEO, there is a unique instance of Company (s/he is a CEO of) Again, you are proposing a rule that has no legitimate basis in the text of the UML 2.4 spec. From a practical standpoint, there are domains where identification is predicated on multiple keys. We should be able to model such cases with a class that has multiple properties (attributes or association ends) with isID=true. This is well-formed in current UML2.4 but your proposed rule would make such models ill-formed. - Nicolas. "Rouquette, Nicolas F (313K)" "Rouquette, Nicolas F (313K)" 05/06/2011 01:55 AM To Maged Elaasar/Ottawa/IBM@IBMCA cc Juergen Boldt , Jim Amsden , Pete Rivett , "uml2-rtf@omg.org" Subject Re: Property::isID Please explain the reasoning how you obtained this constraint. If the intent is to uniquely identify instances of a Class, then we have at least three ways to do this: 1) via one or more Properties defined in that Class with {isID=true} (I don't see anything in the description of isID against this) 2) via association end qualifiers (the semantics of qualifiers is unclear in 2.4) 3) via a combination of qualified association end properties with {isID=true} - Nicolas. On May 3, 2011, at 8:50 AM, Maged Elaasar wrote: I guess so add a constraint saying that if an association end is an id, then the opposite end must have an upper bound of 1. Juergen Boldt Juergen Boldt 05/03/2011 10:43 AM To "Pete Rivett" , "Jim Amsden" , cc Subject RE: Property::isID so should I assign an issue number to this email thread? -Juergen At 10:09 AM 5/3/2011, Pete Rivett wrote: To me it does not make sense to have an Association for a Datatyped Property . what would be the purpose? The point of an Association IMHO is to provide a definition for Links that associate 2 (or more) Objects. Maybe itā..s something we should clarify in UML 2.5. Pete PS I agree with Steveā..s response to Magedā..s original question From: Jim Amsden [ mailto:jamsden@us.ibm.com] Sent: Tuesday, May 03, 2011 5:53 AM To: uml2-rtf@omg.org Subject: RE: Property::isID isID can be used with associations, and the end would likely have multiplicity 1. The associated object would generally be a DataType, not a Class and would represent a composite identifier. It could be a Class, I would just not expect that to be a typical case. I suppose the multiplicity could be many, and the ID derived through some hash of the instances. But this would probably be an edge case. So its not clear what needs to be added for rules, if any. Jim Amsden, Senior Technical Staff Member Unleash the Labs Solution Architect for Rational EA and ADC Tools Make a new ULL Request 919-461-3689 From: Steve Cook To: Maged Elaasar , "uml2-rtf@omg.org" Date: 05/03/2011 05:49 AM Subject: RE: Property::isID Thatā..s an interesting question. I think that putting isID on an association end does imply that the other endā..s upper bound must be one, otherwise there is a logical contradiction between the value uniquely identifying an instance (isID) and the possibility of more than one instance (upper bound). But I donā..t think that an upper bound of one necessarily implies that the other end has isID true: there might be other reasons why such a property is not appropriate for use as an ID. -- Steve From: Maged Elaasar [mailto:melaasar@ca.ibm.com] Sent: 02 May 2011 19:38 To: uml2-rtf@omg.org Subject: Property::isID Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Maged Juergen Boldt Director, Member Services 140 Kendrick Street, Building A Suite 300 Needham, MA 02494 USA Tel: 781 444 0404 x 132 fax: 781 444 0320 www.omg.org <13168975.gif> <14928926.gif> pic07471.gif Date: Wed, 11 May 2011 10:21:22 +0100 From: Dave Hawkins User-Agent: Thunderbird 2.0.0.21 (X11/20090302) To: Maged Elaasar CC: Ed Seidewitz , "Rouquette, Nicolas F (313K)" , uml2-rtf@omg.org Subject: Re: Property::isID X-Source-IP: rtcsinet21.oracle.com [66.248.204.29] X-CT-RefId: str=0001.0A090203.4DCA5538.001A:SCFSTAT5015188,ss=1,fgs=0 The id property would also need to have an upper bound of 1 for your constraint to apply wouldn't it? If the upper bound is >1 then the id is a combination of values and the individual values could be part of multiple ids, ie the opposite end could legitimately have an upper bound >1. If the id property is an association end with upper bound 1, isn't its value effectively the identifier for the referenced instance? That would mean it can't be the sole id property, because instances would be indistinguishable from the referenced instances. Cheers, Dave Maged Elaasar wrote: Nic, a good point indeed. I guess the constraint would only apply if such a property is the /only /id property. However, I am not sure if it is worth capturing in this case. Inactive hide details for "Ed Seidewitz" "Ed Seidewitz" *"Ed Seidewitz" * 05/10/2011 06:59 PM To "Rouquette, Nicolas F (313K)" cc Subject RE: Property::isID Nicolas ­ Good point! In fact, the paragraph in the UML 2.4 spec on IDs says that a .property may be marked as being /(part of)/ the identifier.. (emphasis added) and, later, has the sentence .If multiple properties are marked (possibly in superclasses) then it is the combination of the (property,value) tuples that will logically provide the uniqueness for any instance.. This makes it pretty clear that any one property with isID=true does not /necessarily/ uniquely identify an instance, as you say. -- Ed ------------------------------------------------------------------------ *From:* Rouquette, Nicolas F (313K) [mailto:nicolas.f.rouquette@jpl.nasa.gov] * Sent:* Tuesday, May 10, 2011 6:11 PM* To:* Maged Elaasar* Cc:* Jim Amsden; Juergen Boldt; Pete Rivett - Adaptive; uml2-rtf@omg.org* Subject:* Re: Property::isID On May 6, 2011, at 6:56 AM, Maged Elaasar wrote: An "id" property implies that a value of this property uniquely identifies a value of the identified class. e.g., if a property ssn:Integer is an id for class Person, it follows that for every unique value of snn there is a unique instance of Person Please read the wording carefully in the spec: isID : Boolean True indicates this property can be used to uniquely identify an instance of the containing Class. This sentence does not imply that a single property with isID=true suffices to uniquely identify an instance of the containing Class. When an associated end ( in a binary association) vs. an attribute is an id, then it follows that the other association end must have an upper bound of 1 e.g., if an association end ceo:Person is a id for class Company, then it follows that for every instance of Person that is a CEO, there is a unique instance of Company (s/he is a CEO of) Again, you are proposing a rule that has no legitimate basis in the text of the UML 2.4 spec. From a practical standpoint, there are domains where identification is predicated on multiple keys. We should be able to model such cases with a class that has multiple properties (attributes or association ends) with isID=true. This is well-formed in current UML2.4 but your proposed rule would make such models ill-formed. - Nicolas. "Rouquette, Nicolas F (313K)" <_nicolas.f.rouquette@jpl.nasa.gov_ > *"Rouquette, Nicolas F (313K)" <**_nicolas.f.rouquette@jpl.nasa.gov_* *>* 05/06/2011 01:55 AM To Maged Elaasar/Ottawa/IBM@IBMCA cc Juergen Boldt <_juergen@omg.org_ >, Jim Amsden <_jamsden@us.ibm.com_ >, Pete Rivett <_pete.rivett@adaptive.com_ >, "_uml2-rtf@omg.org_ " <_uml2-rtf@omg.org_ > Subject Re: Property::isID Please explain the reasoning how you obtained this constraint. If the intent is to uniquely identify instances of a Class, then we have at least three ways to do this: 1) via one or more Properties defined in that Class with {isID=true} (I don't see anything in the description of isID against this) 2) via association end qualifiers (the semantics of qualifiers is unclear in 2.4) 3) via a combination of qualified association end properties with {isID=true} - Nicolas. On May 3, 2011, at 8:50 AM, Maged Elaasar wrote: I guess so add a constraint saying that if an association end is an id, then the opposite end must have an upper bound of 1. Juergen Boldt <_juergen@omg.org_ > *Juergen Boldt <**_juergen@omg.org_* *>* 05/03/2011 10:43 AM To "Pete Rivett" <_pete.rivett@adaptive.com_ >, "Jim Amsden" <_jamsden@us.ibm.com_ >, <_uml2-rtf@omg.org_ > cc Subject RE: Property::isID so should I assign an issue number to this email thread? -Juergen At 10:09 AM 5/3/2011, Pete Rivett wrote: To me it does not make sense to have an Association for a Datatyped Property ­ what would be the purpose? The point of an Association IMHO is to provide a definition for Links that associate 2 (or more) Objects. Maybe itā..s something we should clarify in UML 2.5. Pete PS I agree with Steveā..s response to Magedā..s original question* From:* Jim Amsden [_ mailto:jamsden@us.ibm.com_] * Sent:* Tuesday, May 03, 2011 5:53 AM* To:* _uml2-rtf@omg.org_ * Subject:* RE: Property::isID isID can be used with associations, and the end would likely have multiplicity 1. The associated object would generally be a DataType, not a Class and would represent a composite identifier. It could be a Class, I would just not expect that to be a typical case. I suppose the multiplicity could be many, and the ID derived through some hash of the instances. But this would probably be an edge case. So its not clear what needs to be added for rules, if any. Jim Amsden, Senior Technical Staff Member Unleash the Labs Solution Architect for Rational EA and ADC Tools _ __Make a new ULL Request_ 919-461-3689 From: Steve Cook <_Steve.Cook@microsoft.com_ > To: Maged Elaasar <_melaasar@ca.ibm.com_ >, "_uml2-rtf@omg.org_ " <_uml2-rtf@omg.org_ > Date: 05/03/2011 05:49 AM Subject: RE: Property::isID Thatā..s an interesting question. I think that putting isID on an association end does imply that the other endā..s upper bound must be one, otherwise there is a logical contradiction between the value uniquely identifying an instance (isID) and the possibility of more than one instance (upper bound). But I donā..t think that an upper bound of one necessarily implies that the other end has isID true: there might be other reasons why such a property is not appropriate for use as an ID. -- Steve * From:* Maged Elaasar [_mailto:melaasar@ca.ibm.com_] * Sent:* 02 May 2011 19:38* To:* _uml2-rtf@omg.org_ * Subject:* Property::isID Is there a semantic difference between markign an associationEnd with isID=true and putting an upper bound of "1" on its opposite end (i.e., a value of this end is related to a maximum of 1 value on the other end)? If there is no semantic difference, is Property::isID only useful for attributes that are not association ends (like primitive attributes that are typically not ends)? Maged Juergen Boldt Director, Member Services 140 Kendrick Street, Building A Suite 300 Needham, MA 02494 USA Tel: 781 444 0404 x 132 fax: 781 444 0320_ __ __www.omg.org_ _ __ __<13168975.gif>_ <14928926.gif> -- Dave Hawkins | Principal Software Engineer | +44 118 924 0022 Oracle JDeveloper Development Oracle Corporation UK Ltd is a company incorporated in England & Wales. Company Reg. No. 1782505. Reg. office: Oracle Parkway, Thames Valley Park, Reading RG6 1RA.