-
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
SYSML21 — USCustomaryUnits.sysml line 255: 229835/900 [K] applies the unit to 900 only, so zeroDegreeFahrenheitInKelvin has dimension Θ⁻¹
- Key: SYSML21-724
- OMG Task Force: Systems Modeling Language (SysML) 2.1 RTF