Open-MBEE / Open-MBEE/OpenSysML

RDF conversion drops top-level redefinition values (attribute :>> x = v), while nested anonymous redefinitions keep them

Open
#88 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Go
Stars
24
Forks
5
Avg merge
6h 14m
Merged PRs (30d)
339

Description

Found while raising the formal rigor of a reference-architecture model (mission-twin RA, v0.4.2 pinned binary).

Top-level redefinition in a specializing def — value dropped:

part def Block { attribute tempo : Tempo; }
part def Writer :> Block { attribute :>> tempo = Tempo::operative; }

-convert ttl emits Writer with no owned member for the redefined tempo at all: the value is unrecoverable from RDF (evaluation via -e sees it fine).

Nested anonymous redefinition — value kept:

interface def Seam {
    attribute sla : ServiceLevelAgreement {
        attribute :>> committedBy = PartyRole::custodian;  // kept: sysml:redefines "committedBy" + sysml:value
    }
}

The nested form converts as an anonymous AttributeUsage with sysml:redefines + sysml:value — exactly what one would want for the top-level form too.

Workaround we adopted: declare fresh same-named attributes per specializing def (which draws "Duplicate of inherited member name" warnings) or avoid inheritance for valued attributes.

Contributor guide

Open the contributing guide

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.

Research direction

Start with the RDF conversion path used by -convert ttl, then compare its handling of the top-level and nested anonymous redefinition examples in the issue. Use -e and the generated Turtle output to verify the behavior. Done means the top-level redefinition preserves both sysml:redefines and sysml:value, matching the nested form.

Written by the indexing model from the issue text.

Assessment

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.