-
-
Notifications
You must be signed in to change notification settings - Fork 97
Commensurability Composition Semantics and Context
This page explains how QUDT decides whether two quantity kinds, two units, or two
qudt:Quantity instances are commensurable — i.e. whether their values can be
meaningfully compared, added, or converted between each other. QUDT separates this
question into three layers:
-
Composition — dimensional analysis (
qkdv:dimension vectors) - Semantics — commensurability families of quantity kinds and units
-
Context — commensurability as actually realized by a specific
qudt:Quantity
A note on terminology: a quantity kind (quantitykind:Mass, quantitykind:Energy, ...)
is a kind of measurable phenomenon and carries no value. A quantity (qudt:Quantity) is
a specific, valued observation or specification — "the mass of this box is 5 kg." The three
layers below build toward that distinction: dimension and family are properties of kinds;
commensurability of an actual measurement is decided at the quantity level.
Every quantity kind has a dimension vector (qudt:hasDimensionVector), an instance of
qkdv:Dimension_AxEyLzIwMvHuTtDs encoding the exponents of the seven SI base dimensions
(Amount of substance, Electric current, Length, Luminous intensity, Mass, Thermodynamic
temperature, Time) plus a Dimensionless (angle) exponent. Dimension vectors compose the way
the underlying physical quantities compose: multiplying two quantity kinds adds their
exponents; inverting one negates them.
Sharing a dimension vector is a necessary but not sufficient condition for commensurability. Two quantity kinds with the same dimension are dimensionally compatible — they could in principle be related by a numeric factor — but that alone does not mean their values mean the same thing or are interchangeable. Classic same-dimension, different-meaning pairs:
| Dimension | Quantity kind A | Quantity kind B |
|---|---|---|
M L² T⁻² |
Torque / moment of force | Energy / work |
T⁻¹ |
Frequency | Activity of a radionuclide; angular frequency |
L² T⁻² |
Absorbed dose | Dose equivalent |
M L² T⁻² H⁻¹ |
Heat capacity | Entropy |
D (dimensionless) |
Plane angle | Refractive index, strain, mass fraction |
Metrology resolves some of these ambiguities by minting distinct unit symbols for the same
dimension (watt vs. var vs. volt-ampere for power, per IEC 80000-6; hertz vs. becquerel for
T⁻¹; gray vs. sievert for dose). Where no distinct unit exists (torque and energy both stay
N·m / J), only the quantity kind distinguishes them — composition alone cannot.
This is why QUDT does not use dimension-vector equality as the commensurability test. The dimension vector is a cross-check: two quantity kinds that are commensurable (§2) should always share a dimension; if a QA query finds a same-dimension pair that is not linked, that is either a genuinely separate family or a missing curated link.
Within a given dimension, QUDT groups quantity kinds and units into commensurability families — formally, equivalence classes of mutually convertible quantity kinds — using two precise, disjoint relations:
| Relation | Asserts commensurability? | Meaning |
|---|---|---|
qudt:specializationOf |
Yes | The subject is a true specialization of the broader quantity kind: same dimension, values are comparable, convertible, and additive. |
qudt:organizedUnder |
No | Organizational / unit-applicability grouping only — e.g. all the dimensionless quantity kinds organized under quantitykind:Dimensionless. Members share a dimension but are not interchangeable. |
Both are sub-properties of skos:broader (so generic SKOS tooling still sees a single
hierarchy), but only qudt:specializationOf — together with qudt:exactMatch for declared
synonyms — defines the commensurability test:
(qudt:specializationOf | ^qudt:specializationOf | qudt:exactMatch | ^qudt:exactMatch)*
Two quantity kinds are commensurable if and only if this path connects them. It is
deliberately not skos:broader in general, because skos:broader is now the union of
the commensurate relation (specializationOf) and the non-commensurate one
(organizedUnder) — traversing it would incorrectly weld, say, Strain and MassFraction
into one family just because both are organized under Dimensionless.
A family is a connected component, not a tree: a quantity kind may have multiple
specializationOf parents (e.g. recognized synonyms with independent histories), so a
family can have more than one root. The invariant that replaces "one root per family" is
dimension homogeneity per component — no specializationOf (or exactMatch) edge may
cross a dimension vector.
Electric power makes the distinction concrete. quantitykind:ActivePower, quantitykind:ReactivePower, and quantitykind:ApparentPower all share the power dimension A0E0L2I0M1H0T-3D0 (M L² T⁻³) and are all gathered under quantitykind:ElectricPower — but by two different relations, because only one of them is commensurate with it:
-
quantitykind:ActivePowerisqudt:specializationOf quantitykind:ElectricPower— genuinely commensurate, measured inunit:W(watt) and its SI prefixes, fully interconvertible with electric power. -
quantitykind:ReactivePowerandquantitykind:ApparentPowerarequdt:organizedUnder quantitykind:ElectricPower— grouped for navigation, but not asserted commensurate. They are vector components, not interchangeable magnitudes: apparent power S combines active power P and reactive power Q as |S|² = P² + Q², so a reactive-power reading cannot be converted to an active-power reading without phase information.
Metrology made the same split visible by minting distinct units for the one dimension — unit:W (watt, active), unit:VAR (var, reactive), and unit:VA (volt-ampere, apparent), per IEC 80000-6 — and QUDT's applicableUnit sets follow suit: watts for ActivePower, vars for ReactivePower, volt-amperes for ApparentPower, pairwise disjoint. The shared dimension does not make them one commensurability family; qudt:organizedUnder is precisely the relation that groups them without asserting it.
The same unit symbol can serve quantity kinds in different families (joule serves both Energy and, via N·m, would-be Torque measurements; radian-as-1 serves Plane Angle and several dimensionless ratios). So a unit alone does not name a commensurability class — the mirror-image relations on the unit side make this explicit:
| Relation | Asserts commensurability? | Meaning |
|---|---|---|
qudt:unitForQuantityKind |
Yes | The unit is a unit for this quantity kind — a member of the commensurate family the unit is convertible within. |
qudt:categorizedByQuantityKind |
No | The unit is grouped under a non-commensurate category, e.g. the placeholder quantitykind:Unknown or a dimensionless bucket. |
Both are sub-properties of the legacy qudt:hasQuantityKind (kept for backward
compatibility); new data should use the precise relation.
qudt:applicableUnit lists the commonly-used, customary units of a quantity kind. It is curated guidance — not a derivation from commensurability or dimension, and not a closure over every unit that could express the quantity.
The clearest illustration is a genuine commensurability family whose members nonetheless carry different unit lists. quantitykind:ThermalEnergy is qudt:specializationOf quantitykind:Energy: they share the dimension A0E0L2I0M1H0T-2D0, sit in one commensurability family, and are fully interconvertible (1 BTU = 1055.06 J, exactly). Yet their applicableUnit sets are deliberately different:
-
quantitykind:Energylists the full cross-domain spread —Jand its SI prefixes, theBTUandCALfamilies,ERG,EV,W-HR/KiloW-HR,THERM,TOE,FT-LB_F,PlanckEnergy. -
quantitykind:ThermalEnergylists only the heat-domain customary units — the temperature-referenced BTU and calorie variants (BTU_39DEG_F,BTU_59DEG_F,CAL_15DEG_C,CAL_MEAN, …),THERM, and refrigeration units such asTON_FG-HR. It omits the electrical (W-HR), atomic (EV,E_h), and mechanical (ERG,FT-LB_F) units the generic parent carries.
Both kinds are equally commensurate across the whole energy family; what differs is which units practitioners actually reach for. A thermal engineer reports heat in BTU or calories, never in electronvolts or kilowatt-hours — even though every one of those would convert correctly. The unit list is shaped by domain convention, not by what is dimensionally or commensurably possible.
So applicableUnit is curated, per-domain guidance, decoupled from commensurability. A child quantity kind whose unit list differs from its parent's — fewer units, or a different domain-appropriate set — is not a bug. applicableUnit is expected to be incomplete (gaps are normal and never a build requirement) but should be correct (no nonsensical entries); completeness is never a goal.
A quantity kind carries no value, and a unit is polysemous across families. Neither, on its
own, pins down a single commensurability class. It is the qudt:Quantity — the valued,
contextual instance — that cements the pairing: a declared qudt:Quantity binds one specific
unit to one specific quantity kind (via qudt:hasQuantityKind and qudt:hasUnit or
equivalent), and that binding is what fixes which family the value belongs to.
Concretely: a bare value of 10 J is ambiguous between Energy and (numerically) Torque,
because the unit alone doesn't disambiguate. A qudt:Quantity that additionally asserts
hasQuantityKind quantitykind:Torque removes the ambiguity — the quantity, not the unit or
the kind in isolation, is what two values must agree on before they can be compared, added,
or converted.
Practical consequence: commensurability between two real-world measurements is ultimately a
question about their qudt:Quantity declarations, not just a lookup against the
quantity-kind family graph in §2. The family graph tells you which quantity kinds are
mutually convertible in principle; the qudt:Quantity instance tells you whether a
particular pair of measured values actually exercises that relationship.
"Equivalents" are a family of quantity kinds that express an amount not as a count of
particles or a plain mass but as a measure of reactive capacity. QUDT already carries a
cluster of them, each modelled as a specializationOf its ordinary base kind:
| Quantity kind | Dimension | specializationOf |
Factor to the base depends on |
|---|---|---|---|
quantitykind:MolarEquivalent |
A |
AmountOfSubstance |
charge number (valency) z |
quantitykind:ReactiveCharge |
A |
AmountOfSubstance |
charge number (valency) z |
quantitykind:EquivalentConcentration |
A L⁻³ |
Concentration |
charge number (valency) z |
quantitykind:MassEquivalent |
M |
Mass |
reaction / species |
quantitykind:CO2Equivalent |
M |
MassEquivalent |
global-warming potential (GWP) |
quantitykind:EquivalentDensity |
M L⁻³ |
Density |
reaction / species |
These are a stress test for the three layers above, because the factor that converts an equivalent to its base is not a constant — it is a property of the species being measured, and lives at neither the unit nor the quantity-kind level.
Composition (§1). EquivalentConcentration shares the dimension A L⁻³ with ordinary
Concentration. The clinical units added in
PR #1484 — Eq/L, mEq/L, µEq/L, … —
all anchor to mol/m³ with qudt:conversionMultiplier 1.0, exactly like mmol/L.
Dimensionally they are indistinguishable.
Semantics (§2). The data places EquivalentConcentration in the same family as
Concentration (via specializationOf). But the equivalent↔molar conversion is mediated by
the species' charge number, or valency, z: the amount in equivalents equals the amount
in moles times z. One millimole of Na⁺ (z = 1) is 1 mEq, but one millimole of Ca²⁺
(z = 2) is 2 mEq. So "convert mEq/L to mmol/L" has no single answer — it is ×1 for
monovalent ions and ÷2 for divalent ions — even though both units share a dimension and both
report a multiplier of 1.0. CO2Equivalent is the same shape with a different factor: it is
reported in plain mass units (kg and t are unitForQuantityKind both Mass and
CO2Equivalent), and the factor that turns a mass of some greenhouse gas into its
CO₂-equivalent mass is that gas's global-warming potential, which depends on the gas and
on the chosen time horizon.
Context (§3). The missing number — z, or the GWP — is a property of the analyte or the
gas, i.e. of the specific thing being measured. It is therefore pinned down only at the level
of a concrete qudt:Quantity, or by a more specific quantity kind that fixes that factor.
This is the same lesson as Torque vs. Energy, but sharper: there the two kinds are genuinely
incommensurable, whereas here mEq/L really is convertible to mmol/L — just not by a factor
that any unit or dimension can supply on its own.
An open modelling question. Because the factor becomes constant once the valency is
fixed — not the individual species — a natural candidate is to specialise by valency rather
than by analyte: quantity kinds such as a "monovalent", "divalent", or "trivalent" equivalent
concentration, each specializationOf quantitykind:EquivalentConcentration and each carrying a
definite z (1, 2, 3, …). This keys the distinction on exactly the property that sets the
conversion factor, so one "divalent equivalent concentration" serves every divalent ion
(Ca²⁺, Mg²⁺, …) rather than needing a separate kind per species; and with z fixed, the
relationship to Concentration becomes a genuine constant factor (÷ z) — which is what
specializationOf is meant to assert. On this model the bare EquivalentConcentration, with
no valency fixed, would be precisely the kind that cannot claim a constant factor to
Concentration. (The CO2Equivalent branch does not fit this pattern: its factor is a per-gas
global-warming potential, not a valency, so it would need a different treatment.) None of this
is established; it is one of several directions under discussion in
issue #1485, alongside marking such
kinds as requiring an external parameter (valence, molar mass) or restricting conversion to an
explicit "linearly convertible" relation. What the three-layer model already settles is where
the answer must live: not in the unit, and not in the dimension, but in the context that fixes
the factor.
| Layer | Question answered | Mechanism | Necessary/sufficient |
|---|---|---|---|
| Composition | Could these be related by a numeric factor at all? |
qkdv: dimension vector equality |
Necessary, not sufficient |
| Semantics | Are these quantity kinds (or units) mutually convertible? |
specializationOf / exactMatch connectivity (quantity-kind side); unitForQuantityKind (unit side) |
Sufficient within a dimension |
| Context | Are these two specific measured values comparable? | The unit + quantity-kind pairing declared on each qudt:Quantity
|
Decides the actual case |
See also: Contextual Units for a related but distinct notion of "context" (units qualified by measurement conditions, not commensurability).
Installing QUDT for Contributors
Publishing QUDT to a TopBraid EDG Server
Unit Vocabulary Submission Guide
Quantity Kind Vocabulary Submission Guide
Dimension Vector Vocabulary Submission Guide
Defining a new unit (local Maven validation)
Defining a new unit (no local Maven)