EMLの単位(5)

(承前)

さてこの L-1 の単位を定義しなければならないのだが、実に悩ましい。 STMML 形式では普通 xxxPerYyy という書き方をするが、perYyy という書き方は しないようだ。

参考までに、 T-1 (周波数)には Hz という固有単位が与えられているので、 これを使って定義している。

<unit id="hertz" name="hertz"
      unitType="frequency" multiplierToSI="1"
      abbreviation="Hz">
  <description>hertz</description>
</unit>

波数には SI の固有単位はないようだ。CGS単位系ではカイザー(K)という単位名が 与えられているらしい。 では波数の定義がどうなっているかと言うと、

<!--waveNumber-->
<unit id="waveNumber" name="waveNumber"
      unitType="lengthReciprocal" multiplierToSI="1">
  <description>1/meters</description>
</unit>

つまり、単位名に物理量の名称を当ててしまっている。これは本当はおかしなことで、 それは SI接頭辞を付けた kiloWaveNumber とか megaWaveNumber という語が 何を言っているのか判らないことから明らかだ。 苦し紛れであることは論を俟たないが、他に記法が無いような気も、確かにする。 kiloParMeter 等とするのもやはりおかしい。

そう言う訳で、結論としては以下のような custom unit を定義した。

<!-- attenuation coefficient (m^-1) -->
<unit id="attenuationCoefficient"
          name="attenuationCoefficient" unitType="lengthReciprocal"
      multiplierToSI="1" abbreviation="1/m">
  <description>Coefficient of exponential attenuation</description>
</unit>

釈然としないところがあるが、どうにもならん。