[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
|
[news.eclipse.modeling.mdt.uml2.ocl] Re: Built-in validation for read-only on association ends
|
Christian,
your reflections about association and tuples
not only make very good sense:
I have heard various teams working with semantic web,
ontologies, RDF & OWL, in similar terms.
- I?d say their concept of property matches your statements pretty well.
They seem to obtain numerous benefits from using a RDF-OWL core,
rathern than MOFish/EMF (what remains a dashboard instrumentation
mechanism).
"Christian W. Damus" <cdamus@xxxxxxxxxx> wrote in message
news:d23b7132d16a0f22d6e68d8c94e60db1$1@xxxxxxxxxxxxxxxxxx
>
> Hi, Andy,
>
> I was thinking again about this, and I think that perhaps we need to
> consider instances of Associations as more like tuples (values) than like
> objects. If we think of an instance of an association as a tuple whose
> parts are the associated objects, then writing one of the association
> member ends amounts to creating a different tuple. IOW, association
> instances are immutable values. It also doesn't make sense to create the
> same association twice with the same objects at the same ends.
>
> A navigable association end is a property of the classifier at that end,
> so reading and writing it makes sense from the perspective of an instance
> of that classifier. When this property is changed, then the instance is
> put into a different association, but it remains the same instance.
>
> Perhaps the analogy is clearer in the case of n-ary associations (n > 2),
> in which by definition none of the member ends is navigable. This really
> does have the look and feel of a tuple.
>
> Does that make any sense?
>
> Cheers,
>
> Christian
>
> Andreas Maier wrote:
>
> <snip>
>
>> My second question is why non-navigable properties cannot be written.
>> They are properties that are owned by an association, but otherwise they
>> are just normal properties. I don't see a reason why they need to be
>> read-only any more than navigable properties or any old non-endpoint
>> property.
>
>> Andy
>
>
>> Christian W. Damus wrote:
>>> Interestingly, the spec also has this to say (p. 129) on the subject of
>>> read-only properties:
>>>
>>> If a navigable property is marked as readOnly, then it
>>> cannot be updated once it has been assigned an initial
>>> value.
>>>
>>> This allows the possibility of non-derived read-only properties. These
>>> would usually be initialized, I except, by an "init:" expression
>>> specified
>>> in OCL.
>>>
>>> Cheers,
>>>
>>> Christian
>>>
>>>
>>> Christian W. Damus wrote:
>>>
>>>> Hi, Andy,
>>>>
>>>> This is Property constraint [6] on p. 127 of the UML2 2.1
>>>> specification.
>>>>
>>>> The specification doesn't discuss the reason for this at all, but I
>>>> would
>>>> guess that the reason is that it isn't possible to read a non-navigable
>>>> property (that is why it isn't navigable), so it would not make sense
>>>> to
>>>> indicate that it can only be read. A non-navigable property wouldn't
>>>> be
>>>> writable, either.
>>>>
>>>> isReadOnly in UML means that the property "may only be read, not
>>>> written"
>>>> (p. 125). It does not necessarily indicate that the value is derived
>>>> (which I think is what you mean by volatile).
>>>>
>>>> HTH,
>>>>
>>>> Christian
>>>>
>>>>
>>>> Andreas Maier wrote:
>>>>
>>>>> Hi,
>>>>> in our CIM mapping to UML, we are mapping the Write qualifier in CIM
>>>>> to
>>>>> the isReadOnly UML attribute. In CIM, associations have ends that do
>>>>> not
>>>>> have the Write qualifier set. This consequently results in UML
>>>>> association ends that have isReadOnly set to true.
>>>>>
>>>>> When I run model validation, the following built-in validation rule
>>>>> pops
>>>>> up due to this:
>>>>>
>>>>> Non-navigable property '<<property_Constraints, cIM_Reference>>
>>>>> <Property> UserOfService : CIM_LogicalFile [0..*]' is marked as
>>>>> read-only.
>>>>>
>>>>> It may be that the semantics of writeability is slightly different
>>>>> between CIM and UML. In CIM, it means that a client application should
>>>>> expect to be able to modify the property value.
>>>>>
>>>>> My questions are:
>>>>>
>>>>> - What is the purpose of this built-in validation rule ?
>>>>>
>>>>> - What is the exact semantics of isReadOnly in UML ? (i.e.
>>>>> unmodifiable
>>>>> vs. not volatile)
>>>>>
>>>>> Andy
>>>
>