Skip to content

ST6RI-935 KerML/SysML concrete-syntax conformance findings - #781

Open
seidewitz wants to merge 4 commits into
masterfrom
ST6RI-935
Open

ST6RI-935 KerML/SysML concrete-syntax conformance findings#781
seidewitz wants to merge 4 commits into
masterfrom
ST6RI-935

Conversation

@seidewitz

@seidewitz seidewitz commented Jul 27, 2026

Copy link
Copy Markdown
Member

This PR corrects non-conformities between the implementation and the KerML and SysML specification for the following textual notation grammar productions.

KerML

  1. FeatureConjugation – A usage couldn't have a feature chain as he target of an owned conjugation.

    Specification

    OwnedConjugation : Conjugation =
          originalType = [QualifiedName]
        | originalType = FeatureChain
        { ownedRelatedElement += originalType }
    

    Old Implementation

    FeatureConjugation returns SysML::Conjugation :
        originalType = [SysML::Feature | QualifiedName ]
    ;
    

    Change. Added alternative ownedRelatedElement += OwnedFeatureChain.

  2. MetadataFeatureDeclaration – Disallowed metadata features of the form @ : M. (@M with no colon parsed OK.)

    Specification

    MetadataFeatureDeclaration : MetadataFeature =
        ( Identification ( ':' | 'typed' 'by' ) )?
        ownedRelationship += OwnedFeatureTyping
    

    Old Implementation

    fragment MetadataFeatureDeclaration returns SysML::MetadataFeature :
        ( Identification ( ':' | 'typed' 'by' ) )? ownedRelationship += MetadataTyping
    ;
    

    Change. Changed Identification to Identification?. (Identification can be empty in the specification grammar but not in the implementation.)

SysML

  1. GuardedSuccessionMember – Could not have a visibility keyword.

    Specification

    GuardedSuccessionMember : FeatureMembership =
        MemberPrefix ownedRelatedElement += GuardedSuccession
    

    Old Implementation

    GuardedSuccessionMember returns SysML::FeatureMembership :
        ownedRelatedElement += GuardedSuccession 
    ;
    

    Change. Added MemberPrefix.

  2. InterfaceUsageDeclaration – Could not have a feature value.

    Specification

    InterfaceUsageDeclaration : InterfaceUsage =
          UsageDeclaration ValuePart?
          ( 'connect' InterfacePart )?
        | InterfacePart
    

    Old Implementation

    fragment InterfaceUsageDeclaration returns SysML::InterfaceUsage :
          UsageDeclaration? ( ConnectorKeyword InterfacePart )? 
        | InterfacePart
    ;
    

    Change. Added ValuePart? in first alternative.

  3. RequirementConstraintUsage / FramedConcernUsage / ViewRenderingUsage – Disallowed declarations of the form assume c; to have a multiplicity (and similar for require, frame and render).

    Specification

    RequirementConstraintUsage : ConstraintUsage =
          ownedRelationship += OwnedReferenceSubsetting
          FeatureSpecializationPart? RequirementBody
        | ...
    
    FramedConcernUsage : ConcernUsage =
          ownedRelationship += OwnedReferenceSubsetting
          FeatureSpecializationPart? CalculationBody
        | ...
    
    ViewRenderingUsage : RenderingUsage =
          ownedRelationship += OwnedReferenceSubsetting
          FeatureSpecializationPart?
          UsageBody
        | ...
    

    Old Implementation

    RequirementConstraintUsage returns SysML::ConstraintUsage :
          ownedRelationship += OwnedReferenceSubsetting FeatureSpecialization* 
          CalculationBody
        | ...
    
    FramedConcernUsage returns SysML::ConcernUsage :
          ownedRelationship += OwnedReferenceSubsetting FeatureSpecialization* 
          RequirementBody
        | ...
    
    ViewRenderingUsage returns SysML::RenderingUsage :
          ownedRelationship += OwnedReferenceSubsetting FeatureSpecialization* UsageBody
        | ...
    

    Change. Changed FeatureSpecialization* to FeatureSpecializationPart?.

@seidewitz seidewitz added this to the 2026-07 milestone Jul 27, 2026
@seidewitz seidewitz self-assigned this Jul 27, 2026
@seidewitz seidewitz added the bug Something isn't working label Jul 27, 2026
@seidewitz
seidewitz requested review from himi and vincemolnar July 27, 2026 22:37
@himi

himi commented Jul 28, 2026

Copy link
Copy Markdown
Member

Thank you for allowing me to review this important fix. I checked the grammar and found no issue. I'm still in Japan and cannot compile and check the code now this week. So please go ahead if you need.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants