このブログは、旧・はてなダイアリー「檜山正幸のキマイラ飼育記 メモ編」(http://d.hatena.ne.jp/m-hiyama-memo/)のデータを移行・保存したものであり、今後(2019年1月以降)更新の予定はありません。

今後の更新は、新しいブログ http://m-hiyama-memo.hatenablog.com/ で行います。

ハイパーhogehoge、関連する概念・用語、ものすごく雑多

聞いたことあるな。

  • ハイパーオブジェクト

なんとなく分かるような分からないような。

  • ハイパークラス
  • ハイパーインターフェース

これは新語かな。でも、ハイパークラスはなんかメタクラスと同義な感じもする。

データオブジェクト(データ転送オブジェクト;DTO)に比較して、より機能性を持つオブジェクトをなんと呼ぶか? 機能オブジェクト、振る舞いオブジェクト、アクションオブジェクト、アクターオブジェクト、サービスオブジェクト、、、??

プロパティ、クエリー、狭義メソッド(コマンド)って分類もある。プロパティ(抽象化されたフィールド)とクエリーは統合できるかも。狭義メソッドはアクションと呼ぶこともあるな。用語「アクターオブジェクト」は悪くないが、アクター理論とかぶる。やっぱサービスオブジェクトかぁ。

サービスの発見と選択と、サービスへのナビゲーションは関連する。「ハイパー」はナビゲーションを含む、というような意味でいいだろう。

メッセージドキュメントは次を含む:

  1. なんらかの実行の結果(execution outcome)
  2. 実行後=現在の状態の表現
  3. 現在の状態の文脈情報
  4. この状態で実行が許されている操作(オペレーション)のセット
  5. ナビゲーションリンク

「現在の状態の表現」と「現在の状態の文脈情報」は、状態空間の状態点の部分情報(=射影した値)だ。何をもって「当該の状態」と「文脈」に分けるかは恣意的かも知れない。「ナビゲーションリンク」はオペレーションセットの一部と考えてもいいが、実行の結果がないことが特徴。んじゃ、(メイヤー)クエリーもナビゲーションリンクみたいなもんだが、あれは値を取り出す。ナビゲーションは、別なメッセージドキュメント(=ハイパーオブジェクト)を出現させる。

となると、値とオブジェクトの違いって何だ?ってことになる。イミュータブルでアイデンティティを持たずビジブルなのが値で、そうでないのがオブジェクトか? それとあと、さらにアトミックな値がスカラーってことだろう。

ようするに、システムってのは状態空間と状態遷移。状態点が複雑、状態空間が巨大、といった問題への対処として色々な方法論がある。状態の表現とは、状態点の部分情報の表現で、要するに座標値だ。点を特定できるだけの座標値のセットを揃えるのは難しい。だから、部分座標を使う。部分座標は点を特定しない、部分空間を指定するだけ。部分空間の広がりの分が、曖昧さや未知な情報として残る。

だから、経路とか履歴とか文脈とかが、曖昧さや未知情報を解決するヒントになる。

昔、状態遷移系のステージって概念を考えたことがある。ステージは状態空間の部分空間だが、その部分空間内の内部遷移と他のステージに飛ぶ遷移に分けて考えることができる。全状態空間における遷移の種類は膨大になるが、ステージ分割すれば、少数の内部遷移とステージ間遷移にモジュール化できるのではないか、と考えた。ステージごとに内部インターフェースと、ステージ間遷移インターフェースを持てる。これは、一枚岩インターフェースより扱いやすい。

このステージって概念は、メッセージドキュメントやWebページとけっこう近い概念だ。状態点、部分座標(表現)、ステージ(部分空間)、状態遷移とかをもう一度整理してみるべきだ。