Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

API JSON: `verify`, flow ends, message ends and a transition's `then` use other metaclasses than the grammar

Closed
#651 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
52/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
go

Research direction

Start with the sysml -convert api-json <file> entry point and reproduce the four examples with sysml -validate; compare each exported metaclass with the grammar references in the issue. Read rdf-mapping.md:1548 for the existing verify mapping, then verify that the API output matches the listed grammar constructs for verification, flow ends, message events and transition succession.

Written by the indexing model from the issue text.

Description

sysml -convert api-json <file> on develop (72081f8). Each file below validates cleanly in sysml -validate and in SysIDE 0.10.3.

Source Exported Grammar (SysML-textual-bnf)
verification def T { objective { verify r; } } FeatureMembership owning a SatisfyRequirementUsage (sysx:declaredKeyword "verify") RequirementVerificationMembership owning a RequirementUsage (:1551-1557)
flow of Fuel from a.p.fuel to b.p.fuel; each end a ReferenceUsage with isEnd EndFeatureMembership owning a FlowEnd (:864-869)
message m from a to b; each end a ReferenceUsage under an EndFeatureMembership ParameterMembership owning an EventOccurrenceUsage (:823-827)
transition t first a then b; TransitionUsage with source/target set; it owns no Succession OwningMembership owning a Succession (TransitionSuccessionMember, :1340-1344)

The examples, one file each:

package V {
    requirement r;
    verification def T { objective { verify r; } }
}
package F {
    item def Fuel;
    port def P { out item fuel : Fuel; }
    part a { port p : P; }
    part b { port p : ~P; }
    flow of Fuel from a.p.fuel to b.p.fuel;
}
package M {
    part a;
    part b;
    occurrence def Talk { message m from a to b; }
}
package T {
    state def S {
        state a;
        state b;
        transition t first a then b;
    }
}

Why it matters for a consumer of the API form: a verify is read as a satisfaction, which a verification report must keep apart, and code that finds flow ends, message events or a transition's succession by metaclass finds none.

rdf-mapping.md:1548 calls verify a synonym of satisfy. In a requirement body the grammar gives it its own membership (:1551), so it isn't one there.

Dominant language
Go
Stars
24
Forks
5
Avg merge
10h 11m
Merged PRs (30d)
572

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from Open-MBEE/OpenSysML

All issues in Open-MBEE/OpenSysML

Similar issues

More Go issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.