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>

