まえがき
どうも、お久しぶりです。
前回の投稿から約1か月経ちましたが、(決して)筆者の情熱が失せたわけではありません。
自分でも頭の中をうまく整理できなかったので、随分と時間がかかってしまいました。
いよいよ話が最後の辺りまで来て、どのようにまとめていけばいいのかが分からなくなっていたからです。
「エージェント指向」「サブジェクト指向」「オブジェクト指向」についての解説もそろそろ終わりに近づいています。
今回は、落穂拾い的な話になるかと思います。(間違いの訂正もさせていただきます・・・)。
では、しばしお付き合いください。
本題
以前、”エージェントが周囲の状況を分析する”と書きましたが、これは正しくは、”サブジェクトが周囲の状況を分析して、シーンを判別する”ということになります。ここで、シーンとは、「状況をあらわすパラメータの集合」もしくは「状況を定義づけるもの」だということです。筆者の考え違いから、以前コメント欄に投稿してくださった方には、”エージェントが(独自に)状況を分析する”かのように伝えてしまいました。ここでお詫びをさせてください。(・・・申し訳ございませんでした)。
さらに詳しく書くと、サブジェクトがシステムの外部と直接つながるインターフェイスの役割を担うので、外部からの刺激・入力をいったんサブジェクトが受け取ります。これはサブジェクトが(システムにとっての)周囲の状況を分析する上で必要な情報を得ることに当たります。そして、サブジェクトが周囲の状況を分析して、現在システムがどのシーンにあるのかを探り当てます。この結果得られたシーンと、シーンに対応するポリシー(アクセス権限を司るもの)をエージェントに通知・受け渡しします。ここで最後に、エージェントがサブジェクトから受け取ったシーンとポリシーから、行動を決定します。
ここで、なぜ、サブジェクトが”周囲の状況を分析する機能を担う”のかについて解説します。エージェントは当然のことながら、現在のシーンがわからなければなにもできません。ここで、シーンを判別する処理はエージェントに担わせればいいではないかとの考え・意見も当然出てくるかと思いますが、シーンを判別するような普遍的な処理を(各自が特色のある)エージェントに実装するのは設計上あまりよろしくありません。しかも、「現実の状況」というのは、まず主観による決定以前に、客観による決定がなされるべきものだと筆者は考えます。つまり、状況については常に主観よりも客観が先行・優越するものであり、「客観」とは、”主観を超えた枠組み”であり、(状況については)ある一定の妥当性を担保するものだからです。ここで注意していただきたいのは、「客観」=「(複数の)主観の合計」ではないということです。あくまでも、”客観は客観”という立場です。
あとがき
いかがでしたでしょうか?
シーンについては、筆者の構成力がもっと高ければ、以前の記事に織り交ぜることもできたとは思いますが、なにぶん、力不足のゆえ、それは難しかったのです。今回は雑記のような稚拙な形になってしまったことについて、読者の方にお詫びしなければならないかもしれません。(・・・ゴメンなさい)。
さて、今回の記事をもって、わたしの当初伝えたかったことは伝えられたかなあといった具合です。
つぎもあるかもしれません。またお付き合いくださると嬉しいです。それではまた。