川村渇真の「知性の泉」

表現フレームにも対話機能を持たせ、読み手の自由度を実現


前回に続き、情報中心システムの重要な機能である『表現フレーム』について解説していこう。読み手の自由度を高めるためには、表現フレームにも対話機能を加える。こうしておくと、なにかを表示したあとであっても、抽出条件や加工処理を容易に変更することができる。また、『簡易タイプの表現フレーム』もサポートするので、より簡単に“個人にとって読みやすい環境”を提供してくれる。


構造体データとその集まりも、表現フレームに張りつけられる

 前回は、表現フレームに張りつけられる4つの部品(図1)のうち、3つを解説した。残り1つは、構造体データやその集まりだ。

図1、表現フレームに張り付けられる部品は、4つに分類できる。今回解説するのは、構造体データを扱う部品

図1

 構造体データは、1件だけ、あるいは複数件を一緒に表示することもある。表現フレーム上の設定では、まず構造体名を指定する。構造体データには数多くの項目が含まれるので、どの項目を表示するのかも選ばなければならない。「知識ベースの構造体定義に用意されているグループ定義(注1)」を指定するのが、もっとも簡単な設定方法だ。ここには目的別の関連する項目が含まれるので、たいていの用途でそのまま使える。次に「実際のデータを抽出するための条件」を指定する。特定の項目で値の範囲を定めたり、もっとも大きな値を選ぶ……など、目的に合った条件を考える。最新のデータを選びたいなら、条件は「日付がもっとも大きい(=新しい)」になる。条件の設定方法は、項目の場合と同じだ。1件だけを選びたいなら、抽出条件もそれに適したものを用意する。
 構造体データには複数の項目が含まれているので、そのまま表示できない。そこで、表現フレームを用いない通常の表示と同じように、Auto Expression機能に表示内容を生成させる(図2)。そして、表現フレーム上の部品エリアに、生成した表示内容を埋め込む。どのような表示内容になるかは、構造体データのタイプによって決まる。

図2、表現フレーム機能の内部では、Object First機能とAuto Expression機能を呼び出しながら処理を進める

図2

注1:構造体定義の一部で、利用目的別に必要な項目を選び出したもの。項目の並び順も含まれる

表1、業務用ソフトを作成する仕組みを、OSの世代ごとに比較した結果。情報中心システムでは、表現フレーム機能が重要な役割を果たす

               OSの進歩 =================>

表1

構造体データにより選ばれる表現方法が異なる

 構造体データは、人物データのように物体を意味するものだけではない。組織などの階層構造を表す構造体データや、処理や作業の流れを表す構造体データもある(注2)。構造体データのタイプによって、Auto Expression機能が働き、最適と思われる表現を選んで表示内容を生成する。ここでは単純に構造体データと称しているが、単体の項目データでないデータをすべて含む。
 どんな表現方法が採用されるかは、構造体データのタイプにより異なり、大きく3つに分けることができる。まず、階層や流れといった特殊な構造を持つデータ。それ以外を1件の構造体データと複数件の構造体データに分ける。
 特殊な構造を持つデータは、それぞれに適した表現方法が決まっているので、その中から選ぶ(注3)。階層構造であれば、アウトライン形式で項目を並べたものや、項目を四角で囲んだブロックを線で結んだものなど、何種類かが用意されている。流れデータも、いろいろな方式の流れ図か、流れを示す2次元の表から選ぶ。新しいタイプの構造体データを追加する場合には、適した表現ルールも一緒に加えることが多いだろう。
 1件の構造体データでは、構造体の種類と含まれる項目によって表現方法が決まる。項目数が少なく、決まった組み合わせなら、それに適した表現方法で表示する。たとえば、ものの大きさを示す3つの数字(高さ、幅、奥行き)なら、立方体の絵の周りに3つの数字をつける表現方法を採用する(図3)。該当する表現方法が見つからないと、項目と値を並べた2次元の表で表示する。ほとんどの構造体データは、表形式で表示するだろう。項目の並び順は、知識ベース内の構造体定義に入っている。

図3、物体の大きさを表す3つの項目では、立方体の絵と組み合わせた専用の表現を用いる

図3

 複数件の構造体データは、基本的に一覧表形式で表示する。ここでの項目の並び順も、知識ベース内の構造体定義から求める(注4)。項目に画像データが含まれるときも、一覧表の中に入れる。
 以上のように、構造体データの表示内容はタイプごとに異なる。

注2:階層、流れ、多次元表などは、複数の項目や構造体データに関連性のデータを付加したものである。それぞれが特殊なリンクとして内部的に規定され、それに合わせてデータを持つ
注3:特殊な構造体データの規定には、適した表現方法のリストも含まれる
注4:構造体定義では、グループ定義とは別に、項目の並び順も規定してある。グループ定義を選ばない場合は、この並び順を用いる

「データの表現方法をAuto Expression機能から  
          流用できれば、手間が省ける」

ユーザーが表現方法を変更できる機能も必要

 Auto Expression機能が選ぶ表現方法は、一般的なデータでどんな表示方法が最適なのか、大体の常識的な確率を重視する。しかし、表現フレームに張りつける構造体データでは、最適な表現方法が決まっている場合が多い。それなら、表現方法を指定したほうが、最初から最適な表示結果を得られる。というわけで、構造体データの部品では、表現方法も指定できるようにする。
 ただし、多くの人にとって最適な表現方法であっても、すべての人が満足するわけではない。また、表示されたデータによっては、別な表現方法で見たいケースも考えられる(注5)。このような状況も考慮するなら、表示したあとでも表現方法を変更できる機能も必要だ。
 これを実現するには、Auto Expression機能の対話機能がそのまま使えればよいわけだ。表現フレームを用いない表示のさせ方と同じように、その構造体データで利用できる表現方法の候補から、好みの表現方法を選ぶ。表現フレーム上のどの部品で変更するかを選ぶ以外は、同じ操作が可能だ。そのまま利用できてしまうのだから、別に機能を用意しておく必要がない。また、同じ操作方法で使えるメリットもある。
 ここまでは、話をわかりやすくするために、構造体データにだけAuto Expression機能を用いるように述べた。しかし、実際には、項目データにもAuto Expression機能を使う。たとえば、時刻データなら、書式を整えるとか、アナログ時計の絵として表示する……などだ。ほとんどの項目データはそのまま表示するので、Auto Expression機能を使っているようには見えないだろう。このような仕組みなので、項目データでも表現を変更できる。とはいってもこれはメリットは少ないので、ほとんど利用しないかもしれない。

注5:表示する構造体データが複雑なほど、表現方法を変更する可能性が高い。より適した表現に切り替えるというより、複数の表現方法で見ながら、データの特徴をつかむ目的で用いる

対話機能があれば、自由な読み方ができる

 情報中心システムが持つ重要な特徴の1つに、読み手の自由度がある。これは、Object First機能やAuto Expression機能に含まれる対話機能によって実現している。だが、表現フレームにも対話機能があれば、読み手の自由度をさらに広げられる。そこで、表現方法を変更するのに、Auto Expressionが持つ対話機能を使うことにし、さらにObject Firstの対話機能も利用する(注6)。対象データの抽出条件を変更したり(図4)、加工処理を別なものに変える機能が、表現フレーム上の各部品に対して使えるようにしておく。

図4、Object First機能とAuto Expression機能の対話機能を利用すれば、抽出条件や表現方法を後から変更できる

図4

 表現フレームで利用するには、ユーザーインタフェースを少し変えなければならない。表現フレームには複数の部品が含まれ、1つの部品に設定した抽出条件と、複数の部品に設定した抽出条件がある。前者は独立しているので、今までと同じ対話機能が使えるが、後者の抽出条件は、どの部品に関係するのかを把握できなければならない。その全体設定をまとめて見られる機能だけを追加して、あとは既存の設定機能を流用する。全体の設定画面から、既存の設定画面を呼び出す形なら、表現フレーム用に追加でつくる部分が少なくてすむ。独自の設定画面が少ないほど、ユーザーの混乱も小さい。
 さらに、抽出条件の変更ではなく、対象データを直接指定したい場合がある。特定のデータを、好みの表現フレームを用いて表示したいときだ(注7)。これもObject Firstが持っている機能なので、そのまま利用する。

注6:表現フレームを扱う機能の内部では、Object First機能を利用している。そのため、対話機能だけを抜き出して利用するわけではない
注7:たとえば、特定の人物の情報を表示するときに、自分専用の人物データ向け表現フレームを用いるとか

画像の入れ替えでは、同じの属性の画像を候補として表示

 表現フレームには、絵や文字を背景として張りつける。たとえば、天気予報の表現フレームであれば、タイトルのデザイン文字や、日本地図の画像などが該当する。これも対話機能で入れ替えられれば、読み手の自由度が向上する。
 画像データを入れ替える場合は、同じ種類のデータでなければならない。元が地図なら、入れ替えるデータも地図を選ぶ。このとき、画像の属性を利用する。元の画像と同じ属性を持つデータだけが、入れ替えの候補として表示される。この世代のコンピュータでは数多くの画像データを扱うので、画像データをすべて表示したら、大変な数になる。候補の表示では、できるだけ対象を絞ることも必要な機能である。
 属性が異なる画像データであっても、それを入れ替えたい場合もあるだろう。そのときは、候補として表示する属性の条件を、手動で変更する。別な属性の画像データが候補として表示され、その中から1つを選ぶ。条件を設定することで、多くの画像データの中から希望するものを効率的に選べる。
 地図のような画像データは、属性を標準化する必要がある。とくに必要なのが、対象となる範囲を示す値だ。緯度と経度の範囲を数値で表現し、地図に描かれている地区を示す。地図の場合は何種類もの図法があり、その種類も属性として持たなければならない(注8)。ただし、すべての図法を規定する必要はない。よく使われる図法は限られているので、それだけを規定すれば十分だ。
 地図の場合、日本全体とか関東だけとか、使用頻度の高いものは限られている。その地区ごとで描くべき範囲(緯度や経度)を標準化するほうが、現実的かもしれない。システムの仕組みとは直接関係ない部分なので、この辺にしておこう。大切なのは、同じ種類だと判断できる属性が持て、それをシステム側でサポートする機能だ。

注8:図法によっては、範囲の数値化が難しいものもある。規定するのは、数値化しやすい図法に限られる

もっと簡単につくれる簡易表現フレームも用意

 ここまで説明した表現フレームは、ドローソフトに近い形式を持つ。画面上で部品を配置し、抽出条件、処理、表現方法などを部品ごとに設定する。このような方式なので、扱う内容に適した表現が可能だ。
 また、ドロー形式で編集するので、プログラミングが不要で、かなり簡単につくれてしまう。しかし、もっと簡単につくれる方法も追加したい。ドロー形式での編集は、絵や動画を含むから必要なのであって、文字中心の表示なら、もっと簡単な仕組みでもかまわない。1つの例は貸借対照表だ。表示領域を左右2つに分割し、それぞれで項目が上から順番に並ぶ。すべての項目は数値かテキストなので、凝った配置を指定する必要はない。実際には、このようなデータがかなり多い。項目を並べるだけの表示ですむならば、別なものもすべてあてはめることができるようにする。
 可能な限り簡単につくることが目的なので、最小限の設定ですむ仕組みでなくてはならない。表現フレームの簡易版なので“簡易表現フレーム”と名づけよう。簡易表現フレームは、表示領域を何ブロックに分けて、どのように区分けするのか、それぞれの領域にどんな項目が含まれるのか、それらがどの順に並ぶのか、などが設定値となる。もちろん、対象データの抽出条件も必要だ。これだけの指定で、目的とする内容を表示できる。一番重要なのは、どの項目を含むかであり、それが指定できるもっとも簡単なやり方が用意されている、ということだ。ここでは項目を並べるだけなので、画像データの項目を含めてもかまわない。テキスト項目の3〜5行分程度を割りあてれば、一緒に表示できるからだ。
 簡易表現フレームの編集機能では、まず最初に、表示領域をいくつかのブロックに分割する(図5)。縦分割や横分割など、単純な分割方法しかサポートしない。もちろん、分割しなくてもよい。分割設定に長さや面積の比率は含まず、システム側に任せる。あくまで単純に分けるだけだ。分割が終わると、ブロックごとに含める項目を指定する。1つの構造体データから選ぶことがほとんどなので、構造体定義に含まれるグループ定義から、一番近い組み合わせを選択する(注9)。グループ定義には項目の順序も設定されているので、項目の並び順も一緒に指定できる。処理によって値を生成する項目で、生成する処理が複数ある場合は、どの処理を使うのか指定する必要がある。この部分の手間を軽減するために、どれか1つの処理を自動で選択し、それが適切でない項目に対してだけ、設定を変える仕組みにする。最後は抽出条件で、含める構造体ごとに設定しなければならない。

図5、簡易表現フレームの設定では、表示領域を単純に分割してから、それぞれに入れる項目を指定する

図5

 簡易表現フレームも、通常の表現フレームと同じように、表示した際には対話機能が使える。抽出条件を変更したり、生成処理を切り替えたりできる。簡易表現フレームの最大の目的は、ユーザーが自分で表現フレームをつくることにある。そのためには、可能なかぎり簡単な設定ですむことが大切だ。プログラミングが不要なのはもちろん、項目や条件を選ぶだけなので、かなりの初心者でも使えるだろう。
 何度も繰り返して見るような項目の組み合わせや抽出条件は、簡易表現フレームとして登録する。それを呼び出せばよいだけなので、項目の選択や条件の設定などの操作が不要となる。結果として、普段の作業量を減らせる。

注9:余分な項目が少しぐらい含まれていても構わないなら、このままで済ます。もし駄目なら、項目の追加や削除を行う

「簡易表現フレームは、                 
  『なにをどう表示するか』を迅速かつ容易に決定できる」

表現フレームは、情報中心システムの基本機能を拡張

 表現フレームの表示が対話機能を持つと、利用する範囲も広がる。決められたデータを単純に表示するだけから、表示結果を見て条件を変えるとか、その場で試行錯誤できる機能に変身する。
 別な見方をするなら、表現フレームは、Object First機能やAuto Expression機能を使いやすく拡張するものである。2つの機能は、ある程度の選択操作が必要で、もっとも確率の高い表現方法や条件が選ばれる。しかし、扱う内容がそれから外れると、条件を変更するなどの操作が必要だ(注10)。その欠点を補うのが表現フレームである。目的が明確なほど、フレーム内の設定がそのまま生かせ、表示したいデータを得るために余分な選択操作をしなくてすむ。抽出条件や処理を後からでも変えられるので、必要なら変更すればよい。
 既存OSにおいては、いろいろな機能をアプリケーションという形で実現している。ところが情報中心システムには、アプリケーションという概念がない。そのかわり、表現フレームを活用して、同じ目的を実現する(注11)。その意味から、表現フレームは、アプリケーションを代替するための基本機能ともいえる。その位置付けや効果については、次回に解説しよう。

注10:既存OSでのアプリケーションの操作量に比べれば、格段に少ない。しかし、もっと減らしたといった要望は、限りなく出てくるだろう
注11:目的が同じという意味。実現できる内容は同じでなく、かなり高い

「表現フレームはけっきょく             
  Object First/Auto Expression機能を補ってくれる」


下の飾り