sam.heard signatureSam Heard wrote:

> We have specialised archetypes which take all the constraint 
> statements made by a parent archetype and add more - 
> importantly they can make further constraint statements 
> about the reference model - this is what I mean when I say 
> that a specialised archetype might add an element. 
> Importantly it will have a larger ontology than the parent - 
> it may make a statement that is not in the parent. 
> Yes - these are still constraint statements on the reference 
> model but they are additional to the parent. They do not 
> have to be wholely within the parent archetype - only 
> whole consistent with it but have additional statements 
> that are unknown to the parent.


That sounds very much the same to me as the "extension-specialization paradox", 
as described by Meyer, "Object-Oriented Software Construction", 2nd edition, 
page 499:

  Inheritance is sometimes viewed as extension and sometimes as specialization. 
Although these two interpretations appear contradictory, there is truth in both 
- but not from the same perspective.

  It all depends, again, on whether you look at a class as a type or a module. 
In the first case, inheritance, or is, is clearly specialization; "dog" is a 
more specialized notion than "animal", and "rectangle" than "polygon". This 
corresponds, as noted, to subset inclusion: if B is heir to A, the set of 
run-time objects represented by B is a subset of the corresponding set for A.

  But from the module perspective, where a class is viewed as a provider of 
services, B implements the services (features) of A plus its own. Fewer objects 
often allows more features, since it implies a higher information value; going 
from arbitrary animals to dogs we can add the specific property of barking, and 
from arbitrary polygons to rectangles we can add the feature diagonal. So with 
respect to features implemented the subsetting goes the other way: the features 
applicable to instances of A are a subset of those for instances of B. ...

  Inheritance, then, is specialization from the type viewpoint and extension 
from the module viewpoint. This is the extension-specialization paradox: more 
features to apply, hence fewer objects to apply them to.



- Peter Gummer
-------------- next part --------------
An HTML attachment was scrubbed...
URL: 
<http://lists.openehr.org/mailman/private/openehr-technical_lists.openehr.org/attachments/20071020/252181e8/attachment.html>

Reply via email to