[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:001863] Re: prefix of units



豊田です。

この辺の設計は単位辞書をメンテする人の気持ちしだいなので、
好きなようにしていただいて結構です。

で、どうしてこうなっているかというと、

(1) 単位の本来の名前 (metre, kilogramme 等) には接頭辞フルスペル (kilo,
milli 等) をつけ、
     単位記号 (m, kg 等) には接頭辞記号 (k, m 等) をつける

(2) 単位の本来の名前には複数形があり、単位記号には複数形がない

(3) 英語の名詞の複数形はたいていのばあいいわゆる規則変化をする

(4) 単位の本来の名前と単位記号は異なる

という規則からきています。(1) (2) は信頼できる規則です(文献あげられないゴメ
ンナサイ)。
でも (3) (4) が怪しいのでまあなんというか単位名辞書ファイルでアバウトな
運用をしなくてはなりません。

Bar は (4) が破綻したです。

-----Original Message-----
From: Takeshi Horinouchi [mailto:horinout@xxxxxxxxxxxxxxxxxx]
Sent: Wednesday, August 25, 2004 9:19 PM
To: dennou-ruby@xxxxxxxxxxx
Subject: [dennou-ruby:001862] prefix of units


豊田様

NumRu::Units において、「ミリ」や「キロ」といった接頭辞に関し、

   (1) 単数形のみの単位には M, k, m などの省略形
   (2) 複数形もある単位には mega, kilo, milli などのフルの接頭辞

をつけたもののみ解釈することになってますが (makeutab.rb)、このルー
ルは一般的なものでしょうか。実は NCEP 再解析データでは圧力に
millibar という単位が使われており、かつ NumRu::Units では bar は
単数のみ扱いなので、(mbar は解釈しても) millibar は解釈しない
ことになってます。よって、上のルールに一般性がないなら、

   (a) 複数形をとれるかどうかに関わらず、 M, k, m 型も  mega,
       kilo, milli 型も認める

というのがいいと思います。あるいは、個別の対応としては、

   (b) bar は複数形をとれるようにする

というのもありますが、そうすると今度は mbar は解釈されなくなりま
すね。あるいは、

   (c) millibar なんて使うな!

と叱られたりして、、、。

(1),(2) は慣例的に多くのケースで妥当と思いますが、グレイゾーンも
ありそうな気がしますので、(a) で対応するのが嬉しいです。そうして
しまっていいですか。単位が重なるケースが出てこないとも限りません
が、実際には、接頭辞のつかない単位にあてはまらない場合に限って、
接頭辞付で解釈できないか調べることになってますから、問題なかろう
と思います。ハッシュなので検索時間もさして増えないはずですから、
ライブラリーをロードしたときの初期化にかかる時間が増えるというぐ
らいしか、実用上の問題はなかろうと思います。

堀之内