SysML 2.1b1 RTF Avatar
  1. OMG Issue

SYSML21 — USCustomaryUnits.sysml line 255: 229835/900 [K] applies the unit to 900 only, so zeroDegreeFahrenheitInKelvin has dimension Θ⁻¹

  • Key: SYSML21-724
  • Status: open  
  • Source: private ( Mattis Espedal Hohmann)
  • Summary:

    Library and versions

    SysML v2, Quantities and Units Domain Library, file sysml.library/Domain Libraries/Quantities and Units/USCustomaryUnits.sysml, line 255. Present in SysML-v2-Release tags 2026-07 through 2026-09 (commit b7a6b770) and unchanged at master (9546486f), checked 2026-11-03.

    private attribute zeroDegreeFahrenheitInKelvin: ThermodynamicTemperatureValue = 229835/900 [K];
    

    Problem

    In the KerML expression grammar, a bracketed unit is a postfix of a primary expression. PrimaryExpression has the alternative operator = '[' operand += SequenceExpression ']' (KerMLExpressions.xtext in the pilot implementation, tag 2026-09.1, lines 299 to 307), which sits below MultiplicativeExpression (line 261). So the text parses as 229835 / (900 [K]), whose dimension is Θ⁻¹, while ThermodynamicTemperatureValue has dimension Θ. The evident intent is 0 °F = 255.372… K.

    Reproducer

    package Check {
        private import ISQ::*;
        private import SI::*;
        attribute t1 : ThermodynamicTemperatureValue = 229835/900 [K];    // reported
        attribute t2 : ThermodynamicTemperatureValue = (229835/900) [K];  // clean
    }
    

    In our measurement, OpenSysML sysml-grpc v0.10.1 and v0.11.0 report at t1:

    cannot bind a value of dimension Θ^-1 to a feature typed by ThermodynamicTemperatureValue (dimension Θ)
    

    and report nothing at t2.

    Proposed resolution

    private attribute zeroDegreeFahrenheitInKelvin: ThermodynamicTemperatureValue = (229835/900) [K];
    

    Related

    • INBOX-2547: nine unit declarations in SI.sysml of the same library, whose value's dimension is not the declared unit type's.
    • Also reported on GitHub as Systems-Modeling/SysML-v2-Release issue 126.
  • Reported: SysML 2.0 — Tue, 3 Nov 2026 08:47 GMT
  • Updated: Wed, 4 Nov 2026 20:37 GMT