@@ -11,12 +11,14 @@ standard library package KerML {
1111 metaclass AnnotatingElement specializes Element {
1212 feature annotation : Annotation[0..*];
1313 derived feature annotatedElement : Element[1..*] redefines annotatedElement;
14+ composite derived feature ownedAnnotatingRelationship : Annotation[0..*] subsets annotation, ownedRelationship;
1415 }
1516
1617 metaclass Annotation specializes Relationship {
1718 feature annotatingElement : AnnotatingElement[1..1] redefines source;
1819 feature annotatedElement : Element[1..1] redefines target, annotatedElement;
1920 derived feature owningAnnotatedElement : Element[0..1] subsets annotatedElement, owningRelatedElement;
21+ derived feature owningAnnotatingElement : AnnotatingElement[0..1] subsets annotatingElement, owningRelatedElement;
2022 }
2123
2224 metaclass Comment specializes AnnotatingElement {
@@ -222,6 +224,11 @@ standard library package KerML {
222224 feature redefinedFeature : Feature[1..1] redefines subsettedFeature;
223225 }
224226
227+ metaclass ReferenceSubsetting specializes Subsetting {
228+ feature referencedFeature : Feature[1..1] redefines subsettedFeature;
229+ derived feature referencingFeature : Feature[1..1] redefines subsettingFeature, owningFeature;
230+ }
231+
225232 metaclass Specialization specializes Relationship {
226233 feature general : Type[1..1] redefines target;
227234 feature specific : Type[1..1] redefines source;
@@ -237,7 +244,7 @@ standard library package KerML {
237244 metaclass Subsetting specializes Specialization {
238245 feature subsettedFeature : Feature[1..1] redefines general;
239246 feature subsettingFeature : Feature[1..1] redefines specific;
240- derived feature owningFeature : Feature[1 ..1] subsets subsettingFeature redefines owningType;
247+ derived feature owningFeature : Feature[0 ..1] subsets subsettingFeature redefines owningType;
241248 }
242249
243250 metaclass Type specializes Namespace {
@@ -311,8 +318,6 @@ standard library package KerML {
311318 }
312319
313320 metaclass Connector specializes Feature, Relationship {
314- feature isDirected : Boolean[1..1];
315-
316321 derived feature relatedFeature : Feature[0..*] redefines relatedElement;
317322 derived feature association : Association[0..*] redefines 'type';
318323 derived feature connectorEnd : Feature[0..*] redefines endFeature;
@@ -412,7 +417,7 @@ standard library package KerML {
412417 }
413418
414419 metaclass MetadataFeature specializes AnnotatingElement, Feature {
415- derived feature 'metaclass' : Metaclass[0..1] redefines 'type';
420+ derived feature 'metaclass' : Metaclass[0..1] subsets 'type';
416421 }
417422
418423 metaclass MultiplicityRange specializes Multiplicity {
@@ -437,11 +442,6 @@ standard library package KerML {
437442
438443 metaclass Predicate specializes Function;
439444
440- metaclass ReferenceSubsetting specializes Subsetting {
441- feature referencedFeature : Feature[1..1] redefines subsettedFeature;
442- derived feature referencingFeature : Feature[1..1] redefines subsettingFeature, owningFeature;
443- }
444-
445445 metaclass ResultExpressionMembership specializes FeatureMembership {
446446 composite derived feature ownedResultExpression : Expression[1..1] redefines ownedMemberFeature;
447447 }
@@ -460,7 +460,7 @@ standard library package KerML {
460460 metaclass Structure specializes Class;
461461
462462 metaclass Succession specializes Connector {
463- derived feature transitionStep : Step[0..1] subsets ownedFeature ;
463+ derived feature transitionStep : Step[0..1];
464464 derived feature triggerStep : Step[0..*];
465465 derived feature effectStep : Step[0..*];
466466 derived feature guardExpression : Expression[0..*];
0 commit comments