[b-free 606] 仮身名

Takanori Hayashi (takanori@ohsaki.meidensha.co.jp)
Wed, 24 Sep 1997 19:44:14 +0900

林です。Subjectを変えました。
# [Subject: 仮身名]

In message <199709240821.RAA04055@b-free.orient.co.jp>
"[b-free 602] Re: "
"h1suzuki@bridgew.edu (Hideaki Suzuki)" wrote:
h1suzuki>  「Alias 型の Filesystem がなぜ長い名前を必要としているのか(ただの時代遅れ
h1suzuki> の短い名前への Patch みたいな物か)? そして、なぜ(流行という以上に)B-fr
h1suzuki> ee でそれを採用しようとしているのか?」もうちょっと、つっこんだ意見の交換が
h1suzuki> 欲しいのです。

8.3(FAT)や13(old UNIX)では識別子として短すぎるのが主な理由でしょう。
Javaのライブラリメソッドのフルネームとか考えるとBTRON1の20文字もいま
いちですね。

h1suzuki> ◆仮身名と実身名の本質もしくは応用上の違い
h1suzuki>
h1suzuki> 実身名:各ファイルの「内容」を識別する名前である。

識別子が20文字で足りるとは言えません。Javaの例では識別子はやはり
フルネームでしょう。メソッドごとに実身を分けてマニュアルを書くと
して他に良い名前の付け方はありますか?

h1suzuki> 仮身名:各ファイルへの参照を提供する「仮身」に、表示される名前である。
h1suzuki>
h1suzuki>  現在、<仮身の表示属性+文字列>で、何とか仮身名らしきことを達成しうるが
h1suzuki>  それは、必ず文字列が共に使えなければいけなく、smart ではない。
h1suzuki>  例えば、「キャビネット」上では不可能である。

キャビネットで足りなければ図形実身を使うとか、名前を付けられる
キャビネット様のアプリケーションを使うという手もありますよ。
仮身名を否定するものではないけど、要求の内容だととりあえずは
運用かアプリケーションで解決がついてしまいそうですね。

h1suzuki> で、僕は、「仮身名は別の種類の Record として実装すれば、仮身セグメント・リン
h1suzuki> クレコード・仮身名レコード、と3っつに名って管理は大変だけど、実装も互換性も
h1suzuki> 問題ない」と書きました。ファイルシステムの使い方がどう変わるかは、僕には分か
h1suzuki> りません。むしろ、実身名を長くすることの方が、変化を生むと思う。
h1suzuki>
h1suzuki> 利点1
h1suzuki>  互換性の問題。仮身名は、互換性の問題に対処しつつ、仮身に表示される文字を
h1suzuki>  増やすことが出来る。

少なくとも「仮身セグメント・リンクレコード・仮身名レコード」のセット
では互換性は確保できません。非対応システム上で仮身の追加と削除が行わ
れた場合に何が起きるか考えてみて下さい。
互換性は諦めてリンクレコードを拡張するのが一番スマートでしょう。
# この場合、互換ファイルシステム上への複製では仮身名はすべて削除します。
仮身セグメントの拡張とか仮身セグメントに続くセグメントとかの方法も
考えられるけど、どちらも互換性はないです。

h1suzuki> 利点2
h1suzuki>  長い名前は、それぞれの使われ方に依存する情報を含む可能性が高い。
h1suzuki>  そういった物は、仮身側の情報とすべきで、実身名は中立に保つ方がいい。
h1suzuki>  特に、今後 B-free がネットワークに繋がった場合、実身名はどう云った
h1suzuki>  引用のされ方も許容できる中立的な名前を取るべきであろう。
h1suzuki>  なぜなら、実身名は、常に整合性のとれた同じ名前で表示されるから。

先に書いたように前提に問題があります。中立的な識別子は短くなるどころ
か色々な要素を取り込んで非常に長くなる可能性があります。そのような場合
無理に短縮すればそれこそ一面的な見方になるでしょう。
仮身名を否定する気はありませんが、少なくとも長い実身名への要求を代替
できるものではないと思います。

h1suzuki>  例えば、「JDK 1.1.1」という実身名が「JDK 1.1.2」に変わったところで、
h1suzuki>  ネットワーク上では、名前の修正は不要にしたい。でも、実身名を長くし、
h1suzuki>  使われ方に依存した情報を名前に使えば、そうは行かないかも知れない。

そのような実身名変更は間違っています。「JDK 1.1.1」と「JDK 1.1.2」は
別の物でしょう?

h1suzuki>  Host で「中国建国、秦」という名前で使っている実身は、秦の資料の
h1suzuki>  ために link を貼りたい「王朝の滅亡の歴史」という Client の
h1suzuki>  実身仮身ネットワークの中には、表示するには不適当な名前かも知れない。

どういう状況か良くつかめませんが、「中国建国、秦」をどういう名前に
したら適当なのですか?

h1suzuki> 利点3
h1suzuki>  実身名が、短いため、もしくは外からの link を考慮して、より抽象化され、
h1suzuki>  実身の内容そのものを表すようになる事を促された結果、実身名による検索
h1suzuki>  が、より、Hit する可能性が高くなる。正規表現を入れることも重要だが、
h1suzuki>  普通に単純検索して、検索成功することも、重要。

短くすると逆にヒットしすぎて意味が無くなるかも。検索結果一万件に
なっても意味ありますか?

以上、要点は
1. 中立的な識別子が短いとは限らない → 長い実身名には要求がある
2. 仮身名は互換性が確保できない

---
    林(takanori@ohsaki.meidensha.co.jp)