Since the abstract hierarchy involves inheritance via stereotypes and not metaclasses, I'm not sure how the _MeaningBackwards & _MeaningForwards will be correctly propagated.
I'd recommend defining an extension only for your concrete metaclasses. (And extension is not inheritance)
I understand that extension is not inheritance. Looking at the hierarchy I have created for arcs, it doesn't involve specialization of stereotypes, but metaclasses.
I supply the appropriate attributes at each level of specialization and the MDG/QL seems to figure it out. For example,
An Aggregation («stereotype» - defines _image, _metatype, icon)
extends Aggregation
1 («metaclass» defines _MeaningBackwards & _MeaningForwards)
specializes Aggregation
2 («metaclass» defines compositionKind)
specializes Association
3 («metaclass» defines direction)
While an Aggregation Link
[1] («stereotype» - defines _image, _metatype, icon)
extends Aggregation
4 («metaclass» defines _MeaningBackwards & _MeaningForwards)
specializes Aggregation
2 («metaclass» defines compositionKind)
specializes Association
3 («metaclass» defines direction)
For both, the _mage, _metatype, icon, _MeaningBackwards & _MeaningForwards are different, but everything else is the same.
Is this the right way to do it for arcs?
(in case it's not obvious, having the same subscript means it's the same object.)As I said, it seems to work.
Paolo
[1] An Aggregation Link aggregates specific instances (its multiplicity is always [1:1])