ハイパーhogehoge、関連する概念・用語、ものすごく雑多
- ハイパーテキスト
- ハイパードキュメント
- ハイパーメディア
聞いたことあるな。
- ハイパーオブジェクト
なんとなく分かるような分からないような。
- ハイパークラス
- ハイパーインターフェース
これは新語かな。でも、ハイパークラスはなんかメタクラスと同義な感じもする。
データオブジェクト(データ転送オブジェクト;DTO)に比較して、より機能性を持つオブジェクトをなんと呼ぶか? 機能オブジェクト、振る舞いオブジェクト、アクションオブジェクト、アクターオブジェクト、サービスオブジェクト、、、??
プロパティ、クエリー、狭義メソッド(コマンド)って分類もある。プロパティ(抽象化されたフィールド)とクエリーは統合できるかも。狭義メソッドはアクションと呼ぶこともあるな。用語「アクターオブジェクト」は悪くないが、アクター理論とかぶる。やっぱサービスオブジェクトかぁ。
サービスの発見と選択と、サービスへのナビゲーションは関連する。「ハイパー」はナビゲーションを含む、というような意味でいいだろう。
メッセージドキュメントは次を含む:
- なんらかの実行の結果(execution outcome)
- 実行後=現在の状態の表現
- 現在の状態の文脈情報
- この状態で実行が許されている操作(オペレーション)のセット
- ナビゲーションリンク
「現在の状態の表現」と「現在の状態の文脈情報」は、状態空間の状態点の部分情報(=射影した値)だ。何をもって「当該の状態」と「文脈」に分けるかは恣意的かも知れない。「ナビゲーションリンク」はオペレーションセットの一部と考えてもいいが、実行の結果がないことが特徴。んじゃ、(メイヤー)クエリーもナビゲーションリンクみたいなもんだが、あれは値を取り出す。ナビゲーションは、別なメッセージドキュメント(=ハイパーオブジェクト)を出現させる。
となると、値とオブジェクトの違いって何だ?ってことになる。イミュータブルでアイデンティティを持たずビジブルなのが値で、そうでないのがオブジェクトか? それとあと、さらにアトミックな値がスカラーってことだろう。
ようするに、システムってのは状態空間と状態遷移。状態点が複雑、状態空間が巨大、といった問題への対処として色々な方法論がある。状態の表現とは、状態点の部分情報の表現で、要するに座標値だ。点を特定できるだけの座標値のセットを揃えるのは難しい。だから、部分座標を使う。部分座標は点を特定しない、部分空間を指定するだけ。部分空間の広がりの分が、曖昧さや未知な情報として残る。
だから、経路とか履歴とか文脈とかが、曖昧さや未知情報を解決するヒントになる。
昔、状態遷移系のステージって概念を考えたことがある。ステージは状態空間の部分空間だが、その部分空間内の内部遷移と他のステージに飛ぶ遷移に分けて考えることができる。全状態空間における遷移の種類は膨大になるが、ステージ分割すれば、少数の内部遷移とステージ間遷移にモジュール化できるのではないか、と考えた。ステージごとに内部インターフェースと、ステージ間遷移インターフェースを持てる。これは、一枚岩インターフェースより扱いやすい。
このステージって概念は、メッセージドキュメントやWebページとけっこう近い概念だ。状態点、部分座標(表現)、ステージ(部分空間)、状態遷移とかをもう一度整理してみるべきだ。