(57)【特許請求の範囲】
【請求項１】
作業空間におけるストロークを含む、ポインティングデバイスに用いた自由な形式での入力が可能なフリーフォーム形式であって、アプリケーションの特定タスクを行う情報を示すドメインオブジェクトをハンドルするフリーフォームグラフィックスシステムであって、
ドメインオブジェクトの視覚的表現である、ドメインオブジェクトアイコンを表示する表示装置と、
ユーザが、前記ドメインオブジェクトアイコンを操作するのを可能にするポインティングデバイスと、
前記表示装置およびポインティングデバイスに組み合わせられるドメインオブジェクト発生回路であって、
１以上のドメインオブジェクトアイコンを、ユーザ入力データを含むデータベース内のデータと、格納装置に格納されたドメインオブジェクトクラスと、から構成するとともに、
１以上のドメインオブジェクトアイコンのそれぞれは、前記ドメインオブジェクトクラスによって規定され、
前記ドメインオブジェクトクラスは、アプリケーションの特定タスクを実行するために用いられる情報を示すテキストの属性と、ポインティングデバイスによるアクションの入力によるイベントに応じた動作についてのアクションルールのセットであって、ドメインオブジェクトアイコンに対するポインティングデバイスによる複数種類のストロークの入力についてのルールが含まれるアクションルールのセットと、複数のレイアウトと、を特定し、
各レイアウトは、前記テキストの属性を表示するための予め定められた領域を含むドメインオブジェクトアイコンとして表示するフォーマットを示し、
ドメインオブジェクト発生回路と、
ポインティングデバイスによるアクションの入力によるイベントを検出し、イベントに対応する動作を起こすイベント検出回路と、
を含み、
前記イベント検出回路で検出されたポインティングデバイスのストロークの入力に基づいたアクションに対応するドメインオブジェクトの変更を行うとともに、
ポインティングデバイスによる線の入力により、複数のアイコンを含む領域が設定された場合には、領域内のアイコンに対応するドメインオブジェクトが集まりとされ、この集まりのドメインオブジェクトについての処理が行われることを特徴とするフリーフォームグラフィックスシステム。
【請求項２】
作業空間におけるストロークを含む、ポインティングデバイスに用いた自由な形式での入力が可能なフリーフォームグラフィックスシステムを操作し、アプリケーションの特定タスクを実行する方法であって、
ａ）１以上のドメインオブジェクトを形成するステップであって、
ドメインオブジェクトは、ユーザ入力データを含むデータベースのデータおよび格納装置に格納されたドメインオブジェクトクラスから発生され、アプリケーションの特定タスクを実行するために用いられ、
各ドメインオブジェクトはドメインオブジェクトクラスによって規定されるドメインオブジェクトクラスの例であり、
前記ドメインオブジェクトクラスは、テキストの属性であって、アプリケーションの特定のタスクを実行するために使用される情報、ポインティングデバイスによるアクションの入力によるイベントに応答する動作を実行するアクションルールのセットであって、ドメインオブジェクトアイコンに対するポインティングデバイスによる複数種類のストロークの入力についてのルールが含まれるアクションルールのセットと、１以上のレイアウトを特定するテキストの属性データであり、
各レイアウトは、前記テキストの属性をドメインオブジェクトアイコンとして表示するためのフォーマットを示し、ドメインオブジェクトアイコンは、前記テキストの属性を表示する所定のエリアを含み、
ｂ）表示情報を発生し、１以上のドメインオブジェクトをドメインアイコンとしてフリーフォームグラフィックスシステムに接続された表示装置に表示し、上記表示情報は、ドメインオブジェクトクラスによって特定されたレイアウトに基づいて発生され、
ｃ）発生したポインティングデバイスによるアクションの入力によるイベントを検出し、
ｄ）イベントに関連するアクションルールを１つの表示されているドメインオブジェクトの中の１つのドメインオブジェクトクラスによって特定されているアクションルールのセットに基づいて特定し、
ｅ）ストロークの入力に基づき特定されたアクションルールに従ったドメインオブジェクトの変更を行うとともに、
ｆ）ポインティングデバイスによる線の入力により、複数のアイコンを含む領域が設定された場合には、領域内のアイコンに対応するドメインオブジェクトが集まりとされ、この集まりのドメインオブジェクトについての処理が行われる、
方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、フリーフォーム（自由形式）コンピュータ制御のディスプレイシステムのためのインタフェースの分野に関し、特に、フリーフォームコンピュータベースのシステムにおいてデータを表現するアプリケーションに適合されたオブジェクトの提供に関する。
【０００２】
【従来の技術】
「電子ホワイトボード」やペンベースシステム等のコンピュータベースシステムは、ペン、スタイラス、またはカーソル制御装置等の入力装置の使用に基づくグラフィカルユーザーインタフェースを提供する。このようなシステムはハードウェアとソフトウェアの組み合わせであることが多く、一般的にはフリーフォーム入力を可能にし、フリーフォームグラフィックスシステムと呼ばれている。このようなシステムでは、「ディスプレイ」が、データを表示するための手段としても入力媒体としても作用する作業空間（ワークスペース）を示す。このディスプレイ上に、入力装置を用いて作成されるペンストロークによってグラフィックオブジェクトを「描画」することができる。グラフィックオブジェクトは、語、図形、または表示できるあらゆる物を表現することができる。そのグラフィックオブジェクトに対して、ジェスチャとして知られる入力技法を用いてさまざまな動作を行うことができる。ジェスチャ自体は、単に、命令として解釈されるペンストロークである。このようなシステムは、ペンストロークが永続的なグラフィックオブジェクトを作成するのか、それともジェスチャとして扱うべきなのかを区別するために、描画動作モードとジェスチャ動作モードとを有することがある。
【０００３】
ユーザーインタラクションを簡単にするために、LiveBoardシステムは構造という概念を提供している。概念的には、構造はある特定の関係を持つグラフィックオブジェクトの集合体、たとえばLiveBoard上に書かれたアイテムのリスト等である。構造動作が起こると、そのアイテム間の関係が保持される。たとえば、アイテムがリストの中間に挿入されると、挿入された点より下のアイテムは下に移動されて、挿入されるアイテムのための場所を形成する。
【０００４】
LiveBoardのようなフリーフォームグラフィックスシステムを使用しているときに作業している情報はその多くが構造化されたデータであることが分かっている。構造化されたデータとは、個々のデータ要素が定義された関係を形成する情報の表現である。たとえば、表計算アプリケーションの個々のセルに見られるデータは、表計算の情報を含む。１つのセルに含まれる「値」が他のセル内の値に依存し得るので、構造の関係が成り立つ。
【０００５】
【発明が解決しようとする課題】
既知のフリーフォーム編集プログラムはグラフィックオブジェクトの根底にある内容を参照しないため、グラフィックオブジェクトの内容がこのような関係を有する動作を簡単にするわけではなく、一方、構造化されたアプリケーションは融通がきかないことが多く、あらかじめ定義された構造の範囲内に使用が制限されてしまう。
【０００６】
構造化されたデータの支援を促進する一方で、必要に応じて注釈をつけたり、いかなる種類のしるしをもつける自由が与えられるような、両方の種類のアプリケーションの長所を柔軟に組み合わせることが望ましい。
【０００７】
【課題を解決するための手段】
フリーフォームグラフィックスシステムで使用するためのドメインオブジェクトが開示される。ドメインオブジェクトとは、フリーフォームグラフィックスシステムで使用される構造化されたデータを特定のコンテキストにあわせて表現したものである。ドメインオブジェクトは、フリーフォームグラフィックスシステムにおいてアイコンによって表現される。ドメインオブジェクトを表現するアイコンは、フリーフォームグラフィックスシステムにおける他のグラフィックオブジェクトと同様に操作および解釈できる。さらに、アイコン（および対応するドメインオブジェクト属性）内に含まれる情報、ならびにアイコンの形状およびサイズは、あらかじめ定義された空間パラメータに基づいて、またはアイコンに対して（たとえばジェスチャによって）行われたあらかじめ定義された動作の結果として、変更することができる。
【０００８】
本発明のフリーフォームグラフィックスシステムは、一般に、作業面上にグラフィックオブジェクトを表示するためのディスプレイと、前記作業面上のグラフィックオブジェクトに対するアクションを指示する入力装置と、属性、アクションルールの組およびレイアウトを定義するドメインオブジェクトクラス定義と属性データとを記憶するための記憶装置と、前記属性データおよび前記ドメインオブジェクトクラス定義から複数のドメインオブジェクトを生成するためのドメインオブジェクト生成回路と、前記ドメインオブジェクト生成回路および前記ディスプレイに結合されるアイコン生成回路とを含む。前記アイコン生成回路は、前記ドメインオブジェクトクラス定義の前記レイアウトのうちの一つを用いて前記ディスプレイ作業面上に表示するためのアイコンとして、対応するドメインオブジェクトを視覚的に表現するグラフィックオブジェクトを生成する。前記アイコンは、前記フリーフォームグラフィックスシステム内の他のグラフィックオブジェクトと同様に解釈されることが可能である。
【０００９】
【発明の実施の形態】
フリーフォームグラフィックスシステムで使用するためのドメインオブジェクトが開示される。フリーフォームグラフィックスシステムは、一般に、入力オブジェクトがシステムと関連する作業空間において空間的にどこに置かれても良いという特徴を有する。ドメインオブジェクトは、アプリケーションにおける関連情報の集合を表現するのに用いられる。ある意味で、ドメインオブジェクトは、構造化された情報を表現するという点で構造化されるが、別の意味では、ドメインオブジェクトは、フリーフォームグラフィックスシステムにおける他のグラフィックオブジェクトと同じように空間的な配置、操作、または解釈が可能であるという点において、フリーフォームである。
【００１０】
本明細書において、以下の意味を有する用語を用いる。
【００１１】
グラフィックオブジェクト：フリーフォームグラフィックスシステムの作業空間で表示されるあらゆるオブジェクト。
【００１２】
ドメインオブジェクトクラス：オブジェクトの組として特定の作業ドメイン内のデータの組を構造化するための仕様の組。ドメインオブジェクトクラスは、レイアウト、アクション、および属性の組を定義する。
【００１３】
ドメインオブジェクト：オブジェクトとしてまとめられる特定の作業ドメイン内のデータの組。各ドメインオブジェクトは、その独自の特定のデータの組を有するドメインオブジェクトクラスのインスタンスである。この言葉は、本発明によって提供される機能全体を包括的に指すのにも用いられる。
【００１４】
アイコン：そのドメインオブジェクトクラスのレイアウト定義によって特定されるドメインオブジェクトの視覚的表現。
【００１５】
アプリケーション：特定のドメインオブジェクトクラスの組がそのために定義される特定の作業のドメインまたはタイプ。
【００１６】
ユーザーアクション：グラフィックオブジェクトと関連するユーザー入力。たとえば、グラフィックオブジェクトに対してジェスチャを行ったり、グラフィックオブジェクトを空間的に移動させたりすることで、システムがこれを事象（イベント：event）と解釈するとともに、対応する動作が引き起こされる。
【００１７】
システム事象：ある時間の経過のように、対応する動作を行うことを引き起こすが、ユーザーアクションから起こるのではなくシステムによって検出される外部事象。
【００１８】
空間構造：グラフィックオブジェクトの組の間での所定の空間的関係。構造内のグラフィックオブジェクトに対して行われる動作は、この所定の空間的関係を保存するものである。
【００１９】
ドメイン構造：ドメインオブジェクトクラスまたはクラスの組において定義された属性データ値間の関係。
【００２０】
計算値：明示的に特定されたのではなく計算によって得られたドメインオブジェクトクラス内の属性データ値。
【００２１】
ドメインオブジェクトは、さまざまなタイプのアプリケーションに用いることができる。予算管理のアプリケーションでは、ドメインオブジェクトクラスを、個々の予算アイテムを表すように定義しても良い。会議を促進するために用いられるアプリケーションでは、ドメインオブジェクトクラスを議事アイテムを表すように定義しても良い。その他の例としては、空間計画における部屋と人、プロジェクト管理におけるタスクと資源、設計における要件と技術的選択肢などが挙げられる。ドメインオブジェクトは所望の情報を表すものであり、アイコンとしてフリーフォームグラフィックスシステムの作業空間上でアイコンとして視覚的に表示される。アイコンは、ディスプレイスクリーン上においてフリーフォームグラフィックスシステム上の他のグラフィックオブジェクトのように操作できる。
【００２２】
本発明の現在好適であると考えられる実施形態は、電子ホワイトボード等の共同アクティビティを支援するシステム上で実施される。本発明はまた、ペンベースシステム、ラップトップ、パームトップ、電子デスクトップ等の他のタイプのシステムにも適している。さらに、いかなるフリーフォーム編集プログラムも本発明を組み込むことができる。フリーフォーム編集プログラムとは、ユーザーが空間的制限を受けることなくディスプレイ上で素材を自由に形成、編集するのを可能にする、通常はペンベースのグラフィックスシステムを指す。その例としては、ホワイトボード、スケッチパッド、またはノートブック等のメタファに基づく走り書き、スケッチ、ペイントのアプリケーションが含まれる。
【００２３】
本発明で使用できるフリーフォームグラフィックスベースコンピュータベースシステムは図１に示される。図１を参照して、このコンピュータベースのシステムは、バス１０１を介して結合される複数の構成要素を含む。バス１０１はここでは本発明を明瞭にするために簡略化して図示している。バス１０１は、複数の並列バス（アドレス、データ、およびステータス（状態）バス等）およびバスの階層（たとえばプロセッサバス、ローカルバス、およびＩ／Ｏバス）から成るものであってもよい。いずれにせよ、コンピュータシステムはさらに、内部メモリ１０３からバス１０１を介して与えられる命令を実行するためのプロセッサ１０２を含む（内部メモリ１０３は典型的にはランダムアクセスメモリまたはリードオンリー（読み出し専用）メモリの組み合わせであることに留意されたい）。動作中、本発明の種々の機能的要素を実行するためのプログラム命令は、内部メモリ１０３に記憶される。プロセッサ１０２および内部メモリ１０３は、個別の構成要素であってもよいし、単一の統合された装置であってもよい。プロセッサ１０２および内部メモリ１０３は、ここで説明する種々の処理機能を実行するための回路を含む。バス１０１にはさらに外部記憶装置１０７が結合される。外部記憶装置１０７は、一般に、磁気または光ディスク記憶装置等の大容量記憶媒体である。
【００２４】
バス１０１にはさらに、ディスプレイ１０４とポインティングデバイス１０５が結合される。現在好適な実施形態においては、ポインティングデバイス１０５は、ペン駆動型赤外感知パネルであり、ディスプレイ１０４と統合される。このようなスクリーンディスプレイは当該分野では周知であり、ペンベースシステム等のシステムにおいて、また電子ホワイトボードシステムのために使用される。
しかし、ポインティングデバイス１０５とディスプレイ１０４とは必ずしも統合されていなくてもよく、ポインティングデバイス１０５をスタイラス、マウス、トラックボール、または他のカーソル制御デバイスとしてもよい。
【００２５】
本発明の現在好適と考えられる実施形態は、Tivoliとして知られるとともに、本明細書中でもそのように称するホワイトボードエミュレーション制御プログラムの制御下で動作するLiveBoardシステム上で実施される。このLiveBoardシステムは、ゼロックス社が開発した大型スクリーンコンピュータベースシステムである。
【００２６】
本発明の現在好適と考えられる実施形態に応用する際のTivoliのさまざまな特徴を以下に説明する。
【００２７】
本発明の現在好適と考えられる実施形態は、以下の要素、すなわち
（１）ドメインオブジェクトの概念（コンセプト）
（２）ドメインオブジェクトを表すデータを記憶することができるデータベース
（３）ドメインオブジェクトを編集できるフリーフォーム編集プログラム
（４）編集プログラムとデータベースとの間でドメインオブジェクトを転送するためのプログラム
（５）アプリケーションにおけるドメインオブジェクトの構造、外観、振る舞い、およびユーザーインタフェースを定義するスクリプト言語
を有するコンピュータベースシステムにおいて実現される。
【００２８】
図２は、要素間の関係を示すブロック図である。図２を参照すると、データ２０１は、データベース２０２に記憶されたドメインオブジェクトデータを表す。
データベース２０２は、ファイル、スプレッドシート（表計算）、またはリレーショナルデータベース等のドメインオブジェクトを永続的に記憶するいかなるリポジトリ（格納場所）であってもよい。ここで、データ２０１は前から存在するデータであってもよいし、ドメインオブジェクトが使用されるアプリケーションのために作成されたデータであってもよい。システム内での動作のためには、データベースはデータをオブジェクトとしてデータベースへ／からエクスポート／インポートできなくてはならない。オブジェクト転送プログラム２０４が、データベース２０２内のデータをオブジェクトとして解釈するためにデータベースに対するプロトコルを使用できるのであれば、データベースはそれ自体がオブジェクト指向型である必要はない。現在好適と考えられる実施形態においては、使用されるデータベースの一つとして、市販されているロータスノーツ（Lotus Notes）（登録商標）データベースプログラムが挙げられる。
【００２９】
フリーフォーム編集プログラム２０３は、ドメインオブジェクトのアイコン表現に対する動作を操作、実行するために使用される。上述のように、現在好適と考えられる実施形態では、実現されるフリーフォーム編集プログラムはLiveBoard上で動作するTivoliである。Tivoliは、ストローク、文字、クロック、境界等のグラフィックオブジェクトを含む２次元作業空間（ページ）を呈示する。これらのグラフィックオブジェクトは、作業面上で自由に作成、編集、配置することができる。このシステムはペンベースであり、そのためユーザーにとって特に簡単で自然なものとなっている。フリーフォーム編集に加えて、Tivoliは、空間構造のサポートのための「暗黙の構造化」（オンデマンドリスト操作等）を可能にする。Tivoliはまた、オブジェクト間のリンクおよび領域を定義する境界を形成することによって作業面上の素材を編成するのを可能にする。Tivoliは、ドメインオブジェクトを表すアイコンの解釈およびこれに対する動作をTivoliの他のグラフィックオブジェクトと同様に行う。以下に説明するように、手書きストローク等のTivoliにおける他のグラフィックオブジェクトを、ドメインオブジェクト内の属性値として使用することができる。
【００３０】
オブジェクト転送プログラム２０４は、フリーフォーム編集プログラム２０３とデータベース２０２との間のデータ２０１の転送を容易にする。オブジェクト転送プログラム２０４は、ドメインオブジェクトクラス情報を含むドメインオブジェクトスクリプト２０５にアクセスする。現在好適と考えられる実施形態では、Tivoliマークアップ言語（ＴＭＬ）フォーマットで入力ファイル２０６を作成し、データを抽出するのにロータスノーツのアプリケーションプログラミングインタフェース（ＡＰＩ）を用いるオブジェクト転送プログラム２０４が書かれており、Tivoliはこのファイルをロードすることができる。以下にＴＭＬでの入力ファイル２０６の例を挙げる。ＴＭＬは、ドメインオブジェクトがTivoliページ上で記述され、空間的に配置されることを可能にする。入力ファイル２０６がTivoliにロードされると、ユーザーアクションまたはシステム事象によってドメインオブジェクトを変更することができる。Tivoliは、これらの変更されたドメインオブジェクトの記述をドメインオブジェクトファイル２０７に書きこむことができ、このファイルから別のオブジェクト転送プログラム２０４がこれらの変更をロータスノーツデータベースに戻すことができる。オブジェクト転送プログラム２０４は、当業者にはＣまたはPythonとして知られるであろう適切なプログラミング言語で書かれる。Python言語についてのさらに詳しい情報は、World Wide Web上のＵＲＬ、www.python.org.において得られる。スクリプト言語を用いて、アプリケーションで使用されるドメインオブジェクトの構造、外観、振舞い、およびユーザーインタフェースを特定するドメインオブジェクトクラスを定義するドメインオブジェクトスクリプト２０５を定義する。現在好適と考えられる実施形態では、Tivoliは、そのドメインオブジェクトの構造、外観、振舞い、およびユーザーインタフェースを定義するためのものであってＴＭＬに埋め込まれたドメインオブジェクトスクリプト言語を有する。この言語はドメインオブジェクトクラスの定義を可能化することによってこれを行う。
【００３１】
現在好適と考えられる実施形態の上述の説明は、既存のフリーフォームグラフィックス編集システムとともに、市販されている既存のデータベース製品を使用することを容易にするものであることに留意されたい。当業者には、種々の構成要素の機能を単一のスタンドアローンシステムに統合することが明らかになるであろう。このように統合して実施することも本発明の精神および範囲から逸脱するものではない。
【００３２】
図３は、ドメインオブジェクトクラスの要素を示すブロック図である。図３を参照して、ドメインオブジェクトクラスは以下の要素、すなわち、属性３０１と、レイアウト定義３０２と、アクションルールの組３０３とを特定することによって定義される。属性３０１はクラス内のオブジェクトによって使用されるデータアイテムを定義するとともに、そのデータアイテムの値がいかに導出されたかを定義する。属性については図４を参照してより詳細に説明する。レイアウト定義３０２は、グラフィックオブジェクト（「アイコン」）としてのドメインオブジェクトの種々の外観を記述するのに用いる。現在好適と考えられる実施形態で使用されるレイアウトのタイプは、ドメインオブジェクトアイコンの説明の際により詳細に説明する。アクションルールの組３０３は、あるユーザーアクションまたはシステム事象が起こった際にどの動作を実行するかを定義するのに使用される。このアクションルールは、好ましくは、ユーザー編集アクション等のユーザー事象およびシステム事象を実行すべき動作にマッピングするのに用いるアクションテーブルにおいて定義される。実行できる動作の種類については以下により詳細に説明する。
【００３３】
図４を参照して、ドメインオブジェクトクラスの属性要素は、タイプ４０１を含むとともに、オプションとして、クラスの任意のオブジェクトの属性の値を決定するための手段を含む。オブジェクトの属性のなかには、データベース内のオブジェクトについての情報から、またはユーザーの直接の入力からそれらの値を明示的に与えられるものもあるが、その値は、クラス内の計算から得られた暗黙のものであってもよい。暗黙の値には、デフォルトと計算されたものとの２つのタイプがある。デフォルト値４０２は、このクラスのどのオブジェクトにも作成時に（すでに明示的な値を持っていなければ）与えられるものであるが、ユーザーのアクションによって変更が可能である。計算値４０３は、典型的には同じオブジェクトの他の属性の値、または何らかの論理的もしくは空間的関係のある他のオブジェクトの値に基づいて、式またはプログラムによって決定されるものである。
【００３４】
現在好適と考えられる実施形態では、ドメインオブジェクトアプリケーションの設計者は、スクリプト言語を用いて、ある種の会議またはアクティビティのために実質的にTivoliをカスタマイズするクラスの組を作成する。クラスが特定されると、ＴＭＬは、特定のドメインオブジェクト（クラスのインスタンス）をTivoliのページ上において定義、配置することを可能にする。
【００３５】
現在好適な実施形態では、ドメインオブジェクトおよびそれらの振舞いは、フリーフォームおよび暗黙構造機構の双方の既存のTivoli機構と密接に統合されている。このことは二つの意味でそう言える。すなわち、（１）走り書き、すなわち、手書きの語または図形等の入力装置で形成されたマークはTivoliのどこに形成されてもよく、ドメインオブジェクト属性の値としてこれらをドメインオブジェクトに統合することができる。（２）ドメインオブジェクトアイコンは、Tivoliグラフィックオブジェクトであり、他のオブジェクトと同様に編集が可能である。さらに、Tivoliの暗黙構造機構により、リスト構造を維持するようにストロークが動かされるのと同様にアイコンが動かされる。
【００３６】
ドメインオブジェクトを用いたアプリケーションの作成は、その下のフリーフォームグラフィック編集プログラムによって与えられる機能に部分的に依存する。現在好適な実施形態では、Tivoliはフリーフォーム編集プログラムであり、LiveBoardとTivoliの組み合わせは、フリーフォームグラフィックスシステムを含む。いずれにせよ、上述のように、Tivoliシステムはグラフィックオブジェクト間の空間的および構造的関係を認識できるとともに、ジェスチャの形態のユーザー入力を認識することができる。このような機能により、ドメインオブジェクトの機能をフルに活用できるアプリケーションを作成するための枠組みが与えられる。
【００３７】
図５は、ドメインオブジェクトを利用したアプリケーションを作成するための基本ステップを示すフローチャートである。まず、アプリケーションの設計者は、ステップ５０１で必要なデータアイテム、すなわちドメインオブジェクトとその属性を特定する必要がある。これらのデータアイテムは、ドメインオブジェクトクラスによって特定されるドメインオブジェクトの属性およびドメインオブジェクトとなる。設計者はまた、ドメインオブジェクトクラスの属性間の所望の関係およびドメインオブジェクト間の関係をステップ５０２で特定しなくてはならない。設計者は次に、ステップ５０３で、特定のフリーフォームグラフィックプログラムの特徴をドメインオブジェクト間の特定された関係にマッピングする。たとえば、Tivoliはいくつかのあらかじめ定義されたペンストロークをそれに対してある動作が行われるジェスチャとして認識する。別の例は、リスト構造を認識するというTivoliの能力によるものであり、ドメインオブジェクト属性をリスト構造に関連付けることが望ましい可能性がある。いずれにせよ、このマッピングから、ステップ５０４で、設計者はシステム事象およびユーザーアクションとこれに対応するドメインオブジェクトクラスに対する動作を特定する。最後に、設計者は、ステップ５０５で、システムの作業空間上にアイコンとしてドメインオブジェクトを表示する際のデータの種々のレイアウトを特定する。この時点で、１つ以上のドメインオブジェクトクラスが定義されている。上述のように、ドメインオブジェクトクラスの実現を会議支援の例と関連して以下に説明する。
【００３８】
ドメインオブジェクトクラスが特定されると、ステップ５０６で、データベースからフリーフォームグラフィックスシステムへのデータの転送を容易にするオブジェクト転送プログラムが書かれる。上述のように、オブジェクト転送プログラムは、データベースおよびフリーフォームグラフィックスシステムとインタフェースをとる適切なプログラム言語で書かれる。最後に、ステップ５０７で、ドメインオブジェクトアプリケーションがフリーフォーム編集プログラムから呼び出され、操作が可能な所望のドメインオブジェクトアイコンの表示を伴ってページが表示される。アプリケーションが呼び出されると、オブジェクト転送プログラムは、フリーフォームグラフィックスシステムが使用するドメインオブジェクトを作成する。
【００３９】
ある特定のアプリケーションに対して多数のドメインオブジェクトクラスを定義できることに留意されたい。
【００４０】
Tivoliにもたらされたドメインオブジェクトは、Tivoliグラフィックオブジェクトとして扱うことができる。ドメインオブジェクトは見えないデータであるが、アイコンと称する１つ以上のグラフィックオブジェクトによって視覚的に表現される。先に簡単に述べたように、アイコンは、ドメインオブジェクトスクリプト言語を用いてドメインオブジェクトクラス定義のレイアウト表現によって特定される。レイアウト表現は、ドメインオブジェクトのどの属性値をどのようなフォーマットおよび順序で表示すべきかを示すものである。図６は、アイコンのレイアウトの一例を示す。図６を参照して、アイコン６０１は、「枠」６０２に分割された２次元の矩形のオブジェクトであり、この枠内には、レイアウトにしたがって、異なる属性値および／または記述テキストが表示される。枠の大きさは、その特定のクラス属性について表示すべき情報の量に依存し、枠の数は、視覚的に表示すべき属性値がいくつあるかに依存する。アイコンは、（１ページに多く表示できるように）小さくてもよいし、（表示するドメインオブジェクトについての情報の量を多くするように）大きくてもよい。ドメインオブジェクトは、そのオブジェクトについて様々な見方が与えられるように、幾つかの異なるアイコンレイアウトを持つようにしてもよい。さらに、各レイアウトは、その特定のドメインオブジェクトクラスの属性すべてを示してもよいし、そのサブセットを示してもよい。
【００４１】
レイアウトの各枠は個々に識別可能であることに留意されたい。そのため、たとえば、Tivoliは、アイコン全体ではなく個々の枠に対して行われたユーザーアクション（たとえばジェスチャ）を識別することができる。これが望ましいのは、以下のアクションルールの説明において明らかになるであろう。
【００４２】
本発明の現在好適な実施形態で用いられるアイコンの種類に、オーバーレイがある。オーバーレイは、一般に、ユーザーアクションに応じてドメインオブジェクトクラスのより詳細な情報を呈示するのに用いられる。オーバーレイは上述のものと同じ種類のレイアウト表現を用いるが、不透明であるため、大きくても、さらに、混雑した作業空間に表示されても見ることができる。オーバーレイはメニューとしても機能でき、ユーザーがある属性についての一連の値のうちの一つを選択したり、ある動作を行うようにしたりすることができる。
【００４３】
アイコンは他のTivoliグラフィックオブジェクトと同様に振舞い、そのように扱われる（すなわち、選択、消去、一掃（ワイプ：wiped）、移動、縮小が可能である）。しかし、ドメインオブジェクトアイコンに対するユーザーインタフェースは、アイコンに対するユーザーアクションに応じた特殊なアクションを定義することによって拡張できる。現在好適な実施形態では、このようなユーザーアクションは、一般的には、ユーザーがペン入力装置を操作してジェスチャを行うことによって引き起こされる。ジェスチャはオープンエンドの（拡張可能な）セットであり、タップ（ペンでアイコンの上をたたく）、ダブルタップ、ホールド（アイコンの上でペンを短時間保持する）、（アイコンから）上、下、右、左へのジェスチャ、上下、または左右のジェスチャ（前後のジェスチャ）、くるくる回す(pigtail)ジェスチャ（通常は消去に用いる）、（何かをアイコン上へともたらす）ドロップなどが含まれる。
【００４４】
システム動作は、ジェスチャ等のユーザーアクションと関連付けることが可能である。ドメインオブジェクトのクラス定義はアクションテーブルを特定し、このテーブルは以下の形態のルールのリストである。
【００４５】
レイアウト、枠、アクション−＞動作（オペレーション）
すなわち、各レイアウト、レイアウト内の各枠、および枠上の各ジェスチャについて異なる動作を呼び出すことができる。アプリケーションの設計者はまた、あらゆるレイアウトまたはレイアウトのあらゆる枠に対して同じ動作が呼び出されるように特定してもよい。
【００４６】
ジェスチャに応じてとられる動作は、ドメインオブジェクトスクリプト言語で書かれた任意のプログラムである。その例としては、アイコンの選択、アイコンの外観（そのレイアウトまたは色）の変更、アイコンの消去、属性値の変更、オーバーレイアイコンの呼出し、メニュー（ある種のオーバーレイ）のポップアップ、ページから属性値へのストロークの導入、属性値から作業空間へのストロークのドロップ等が挙げられる。
【００４７】
アクションは、ジェスチャされているドメインオブジェクトに対する動作のみに制限されているわけではなく、他のドメインオブジェクトにも影響を及ぼし得る。たとえば、他のドメインオブジェクトへの変更の計算、そのページ上のアイコンのソート（分類：並びかえ））、新しいドメインオブジェクトおよび／またはアイコンの作成、新しい表示ページの作成、等がある。
【００４８】
ドメインオブジェクトに対するある特定のジェスチャのスクリプトを作成する際には、動作を連想させるジェスチャを用いるのが好ましい。たとえば、上のジェスチャが値を増分したり、右のジェスチャがアイコンをより大きく変更させたり（すなわち、アイコンは右に拡大するように見える）、上下のジェスチャがリストに対するソート動作を起こしたり（すなわちオブジェクトが縦にシャッフルされる）ようにしてもよい。
【００４９】
ドメインオブジェクトのさらなる特徴は、特定の属性の値をダイナミック（動的）に計算できることである。これは、セルがその値を計算する式を含むことができる表計算のアプリケーションに似ている。表計算のように、Tivoliは、影響を及ぼし得るユーザーアクションが終了するたびに属性値をダイナミックに再計算する。Tivoliと表計算の違いは、Tivoliはフリーフォーム編集環境であり、表計算のように厳密なマトリックス（行列）ではない点である。さらに、Tivoliは、計算を行う際に他のドメインオブジェクトを参照するのに空間的関係（すなわち空間構造）を用いるが、表計算はその式におけるセルの単純な絶対または相対アドレス指定を用いる。
【００５０】
Tivoliは、表示面上の素材を編成するのに３種類の空間構造、すなわち、リスト、実行テキスト、およびテーブル構造等の種々の空間構造、リンク、および境界によって定義される領域を与える。これらの構造は属性値を計算するのに用いてもよい。図７はTivoliによって与えられる２種類の境界を示す。図７を参照すると、構造化された境界を有する作業空間が示されている。構造化された境界は、矩形の領域を定義するように作業空間を埋める縦または横の直線によって定義される。図７において、境界７０１および７０２は交差して、領域７０３を形成する。曲線７０４はフリーフォームの囲いの一例である。フリーフォーム曲線は任意の形状の領域を定義する。ここでは、曲線７０４が囲まれた領域７０５を定義している。
【００５１】
Tivoliは、２つの囲いまたはアイコンを接続するどのストロークもその間のリンクとして認識する。このようなリンクが図８に示されており、ここで、リンク８０１は、囲い８０２および８０３を接続している。リンクは、２つのリンク（連結）されたエンティティの間の関係を示すのに使用する。
【００５２】
Tivoliはさらに、グラフィックオブジェクトが配置されたものをリストおよび他の構造のアイテムとして解釈するための機能と、これらの構造を維持および操作するための機能とを与える。たとえば、Tivoliは、任意のオブジェクトの（数値での）リストにおける位置を計算できる。リスト操作は図９に示される。図９を参照すると、複数の要素を有するリスト９０１が図示されている。要素９０２が交差点９０３でリスト９０１に挿入されており、その交差点より下の要素を下方に「押し下げる」ようにする（アイテムをリストに挿入した際に期待される結果である）。
【００５３】
これらの構造をもって、Tivoliは、以下を含むアイコン間の様々な空間的関係を計算することができる。すなわち、
同じ領域またはページ内のアイコン
（矩形領域の）同じ行または列におけるアイコン
その領域内のある方向（上、下）におけるアイコン
ある方向（上、下）において隣り合うアイコン
リンクされるアイコン
リンクされた囲いの中に含まれるアイコン
リストにおけるアイコンの位置
物理的に接触しているアイコン
などである。
【００５４】
Tivoliは、種々の算術計算にこれらの空間的関係を使用することができる。たとえば、
ある領域またはページ内のアイコンを有するドメインオブジェクトについてのある特定の属性値の加算
領域内のアイコンの数のカウント
リンクされたアイコンの集合からの、最大値を有するドメインオブジェクトを表すアイコンの発見
などが挙げられる。
【００５５】
数値の計算に加え、Tivoliは、アイコンの空間位置の意味を解釈することができる。ここで、プロジェクトを表すドメインオブジェクトとラベルを表すドメインオブジェクトとがあるスタックランキング(stack ranking)のアプリケーションを例にとって考察する。この例は図１０および図１１に示される。各プロジェクトアイコンは、ラベルアイコン（「Ａ」、「Ｂ」、「オンホールド」）を伴う領域内のリストにおけるランキングページ上の位置を有する。各プロジェクトの「ランク」値は、そのプロジェクトのアイコンの空間位置の分析によって計算される。したがって、ラベルアイコン「Ａ」を伴う領域内のグループにおいて２番目の位置にあるアイコン１００１は、「Ａ２」のランクを有するものとしてエンコード（符号化）される。各アイコンのランクはアイコンの一番右の枠において示されていることに注目されたい。図１１を参照して、アイコン１００１自体、またはその領域内の他のアイコンを動かしたり、他のアイコンをその領域へと動かしたり、領域ラベルを動かしたりすると、ランクがダイナミックに再計算される。ここでは、アイコン１００１がユーザーのドラッグアクションで、ラベルアイコン「Ｂ」を伴う領域の第３の位置に動かされているため、ランク「Ｂ３」を有するようになっている。さらに、アイコン１００２が「Ａ」領域において上に移動しており、アイコン１００２が「Ａ２」を有するようになっている。
【００５６】
最後に、Tivoliは、クロック（時計）の時刻に基づく計算を扱うことができる。アクションは現在の時刻への参照を含むことができる。一定間隔で、システムは時間更新事象を発生して、現在の時刻を参照するどのドメインオブジェクト値も変更し、これらに依存する他の値に伝えられる。これは、システム事象の一例である。たとえば、議事アイテムを表すドメインオブジェクトは、割り当て時間の属性を含む可能性がある。議事アイテムが開始されると、その開始時刻属性に現在の時刻が記録される。時間更新事象のたびに、議事アイテムは、開始時刻＋割り当て時間を現在の時刻＋２分と比較するアクションを有し、もしもこれがそれを上回るものであれば、もうすぐ時間切れであることを知らせる出力（音声ベル等）が発生される。
【００５７】
この属性値の更新は、ドメインオブジェクトスクリプトの書き込みによって達成される。
【００５８】
図１２は、システム事象またはユーザーアクションが起こったときにその下のグラフィックス編集プログラムによって実行されるステップを示す。
【００５９】
グラフィックス編集プログラムにおいては、インクストロークを描いたり、境界を作成したり、テキストをタイプしたり、グラフィックオブジェクトのグループを選択したりといった様々な種類のユーザーアクションがある。ここで考慮するのにもっとも面白い種類のアクションは、ドメインオブジェクトアイコンに対するジェスチャ等のユーザーアクションである。というのは、これらのアクションはドメインオブジェクトクラス定義ごとにカスタマイズできるからである。図１２を参照すると、グラフィックス編集プログラムに、ステップ１２０１で、ユーザーアクションが行われたことが示される。すると、プログラムは、ステップ１２０２で、ユーザーアクションがドメインオブジェクトアイコンに対して行われたかどうかを判断する。ドメインオブジェクトアイコンに対してユーザーアクションが行われなかったと判断すると、ステップ１２０３で、そのユーザーアクションについてシステムデフォルト動作が行われる。ドメインオブジェクトアイコンに対してユーザーアクションが行われていれば、ステップ１２０４で、ユーザーアクションのタイプ、ユーザーアクションが発生したアイコンの枠、その下のオブジェクトのクラスが求められる。この情報をもって、プログラムは次に、ステップ１２０５で、クラスのアクションテーブルを参照して、特定されたユーザーアクションと一致するルール、すなわち、この枠（または「任意の枠」）を言及していてこのアクション（または「任意のアクション」）をそのアクションとして特定しているルールを探す。グラフィックス編集プログラムがオブジェクト自体のクラスにおいて一致するルールを見つけられなければ、ステップ１２０６で、一致するルールを求めてそのクラスの親を繰り返し調べる。そのクラスに親があれば、ステップ１２０５に従って処理が続けられ、対応するルールがあるかどうかを調べる。グラフィックス編集プログラムが、一致するルールを見つけることなくクラス階層の一番上に達した場合には、単に、ステップ１２０３に従って、グラフィックオブジェクトがドメインオブジェクトアイコンではなかったかのように、この種のアクションに対する通常の振舞いをする。たとえば、クラスは「タップ」のジェスチャについてのルールを定義していないが、すべてのクラスによって継承されるグローバルクラスが、任意の枠に対する「タップ」を「アイコンを選択する」という意味で定義している可能性がある（実際、これがTivoliにおけるデフォルトである）。
【００６０】
グラフィックス編集プログラムがルールを発見すると、ステップ１２０７で対応するコードを実行することによって対応する動作を行う。このコードは、スクリプト言語によって支援されるいかなる動作も実行することができる。動作を実行する際にはどんな場合にも、ステップ１２０８で、コードが計算値に影響を及ぼしうるようなこと、たとえば、ページの領域構造または属性値の変更や、アイコンの作成または削除といったことを行うかどうかを判断する。そうである場合には、グラフィックス編集プログラムは、ステップ１２０９で、変更に依存するあらゆる計算値を更新する（そのためのコードを実行する）。この更新パスの間に計算値が変更する場合には、ステップ１２１０で、プログラムはそれらに依存するどの計算値の値も繰り返し更新する。ステップ１２０９および１２１０は、依存性のあるすべての計算値が計算されるまでループする。もちろん、ロバストシステム（robast system）は、計算値におけるいかなる循環性をも検出して、無限ループとなるのを防ぐ。
【００６１】
アイコンに対するジェスチャ以外のユーザーアクションはクラスごとにカスタマイズ可能としてもよいことに留意されたい。たとえば、選択されたグラフィックオブジェクトの組をドラッグしてアイコンの上に「ドロップ」するのは、処理すべきルールがあり得るようなユーザーアクションの一種である。この場合、ユーザーがその選択したものを「ドロップする」点で、プログラムは下にあるアイコンのクラスおよび枠を定め、上述のように「ドロップ」というアクションを特定するルールを探す。
【００６２】
システム事象は、リアルタイムクロック事象のように内部発生するものもあるし、プログラムに関連のある何らかのデータが変更したというネットワークデータベースからの通知のように外部発生するものもある。ここで図１２を再び参照して、ステップ１２２０でシステム事象を受け取る。システム事象は、特定のドメインオブジェクトクラスに属するものとしてすぐには特定できない可能性があるため、一般に、プログラムはすべてのアクティブドメインクラスのアクションテーブルをサーチし、その事象と一致するルールを探すことで応答する。そのあと、ユーザー事象と同様に、ステップ１２２１で一致するルールを実行し、ステップ１２０８に従って行われた変更に依存するいかなる計算値も更新する。
【００６３】
プログラムはまた、アプリケーションのプログラミングを簡単にするために、ある種のシステム事象を扱うためのデフォルト手順を有してもよい。たとえば、クロック事象の場合、プログラムは、ステップ１２２３で、現在の時刻に依存するすべての計算値を突き止め、これを更新する。時刻依存性の値を突き止めるのは、スクリプト言語の能力によるものであり、時刻依存性の値が計算、伝播される際に自動的にプログラムがこれらにタグをつけることができる場合もあるし、アプリケーションのプログラマが、どの属性が時刻依存性の値を有するかをドメインオブジェクトクラスにおいて宣言することを必要とする場合もある。
【００６４】
上述のように、ドメインオブジェクトの属性値に対する変更は、ファイルに記憶して、後でデータベースに送信し返してもよい。
【００６５】
本発明の開発は、LiveBoard等の電子ホワイトボード上で様々な会議での実用に対して微調整できるツールを提供しようとすることがその動機となった。以下に、様々なタイプの会議を支援するように設計されたいくつかの具体的なドメインオブジェクトクラスについて説明する。これらの例は、本発明の様々な種類のドメインオブジェクトおよびインタラクションの特徴を示すものであるが、本発明は会議支援ツールまたは電子ホワイトボード上での実施に限定されるわけではないことに留意されたい。
【００６６】
本発明は、スクリプト言語によって特定の用途のために特殊化されたドメインオブジェクトの組をカスタマイズできるという考えに基づいている。しかし、種々のアプリケーションにおいて共通して必要な一般的動作に対してユーザーインタフェイスにおいてある一貫性を有することが有用である。いくつかの一般的動作およびそれらを呼び出すユーザーアクションは以下のとおりである。
【００６７】
ドメインオブジェクトの選択には、アイコン上でタップする。
【００６８】
ドメインオブジェクトについての情報を拡張するには、アイコンをダブルタップする。これにより、ドメインオブジェクトの別のレイアウトが、オーバレイとして表示される。場合によっては、（オーバレイではなく）元のアイコンにとって変わることでアイコンを幾分より大きなアイコンに拡張することが有用である。これは、「右」ジェスチャによって起こる（「左」ジェスチャは、大きなアイコンをより小さなアイコンに変えるのに用いる）。
【００６９】
ドメインオブジェクトアイコンの文書化（ドキュメンテーション）（たとえば、その属性値構造またはそれが応答するカスタマイズされたアクション）には、アイコンを「ホールド」する。これにより、文書化レイアウトがオーバレイ上に表示される。
【００７０】
新しいドメインオブジェクトアイコンの作成には、まずペンでストロークを書くこと等によって、ある内容を持つ素材をディスプレイ上に作成し、次にその素材の周りに「ボックス」ジェスチャを作成する。これにより、新しいドメインオブジェクトおよびアイコンが作成され、ボックスのついた素材が新しいドメインオブジェクトのクラス指定された属性の値となる。ボックスジェスチャの際にクラスＣのドメインオブジェクトが選択された場合には、新しいドメインオブジェクトはクラスＣとなる。その他の場合には、「もの」ドメインオブジェクトが作成され、このオブジェクトは、オブジェクト上でタップしてメニューからクラスを選択することによって別のクラスに変更できる。
【００７１】
ディスプレイからインクストローク等の任意の素材をドメインオブジェクトの属性に挿入するには、その素材を選択してその属性に対応するアイコンの枠へとそれをドラッグする。
【００７２】
ドメインオブジェクトは、上述のアクションに対して異なる動作を行ったり、または上述の動作を呼び出すのに異なるアクションを使用したりするようにそのスクリプトが書かれてもよいが、振舞いについての一貫した取り決めのスクリプトを書くのが有用である。
【００７３】
これらのアプリケーションの開発において、数多くの種々の会議支援アプリケーションにおいていくつかのドメインオブジェクトクラスが一般的に有用であることがわかった。それらのドメインオブジェクトクラスとは、以下を含む。
【００７４】
人--人についての情報、たとえば、その人に連絡を取るための電話番号や、その人が会議で出席かどうかを記録する属性等の情報を表す。
【００７５】
議事アイテム--会議の議題を表す。属性は、議題、討論参加者（人）、割り当てられた時間を含む。
【００７６】
メモ--会議に出席した者がとったメモを表し、携帯装置上でとったものであってもよい。属性は、メモの内容とそれを書いた人を含む。
【００７７】
アクションアイテム--割当てられた（任命された）アクションを表す。属性は、アクション、割当てられた者、およびその期限を含む。
【００７８】
もの--分類されていないアイテムを表し、後で異なるドメインオブジェクトクラスに変換が可能である。
【００７９】
ラベル--他のオブジェクトにタグをつけるようにその近くに配置できるラベルを表す。
【００８０】
票--票数を表す。
【００８１】
アイテム--発表用スライド上のフレーズ（句）を表す。ユーザーがこれを指すとそのアイテムについて話していることを示す。
【００８２】
コストアイテム--コスト（費用）のあるアイテムを表す。属性は、その名前とコストを含む。
【００８３】
予算センターサマリー（要約）--コストアイテムの組の予算分類を表す。属性は、その名前、予算目標、現在のコストアイテムの合計、および差異を含む。
【００８４】
クロック--クロック（時計）を表し、現在の時刻または何らかの関連の時間（会議開始からの時間等）を示す。
【００８５】
事象--ある特定の議題の討論等の事象が起こる時間間隔を表す。
【００８６】
リンク--これは関数のオブジェクトであり、そのアクションは、通常別のページ上にある、指定されたドメインオブジェクトアイコンにジャンプするものである。
【００８７】
会議で議論される内容は様々であり、一般的な「もの」を越えては、何が有用な分類かなのかははっきりしない。したがって、ある特定の会議の内容を表すドメインオブジェクトはカスタマイズする必要があることが多い。
【００８８】
これらのドメインオブジェクトクラスおよびユーザーアクションは、会議のアクティビティの種々の面を支援するために異質のものを組み合わせることができる。これらは、ある具体的な会議支援アプリケーションおよびアクティビティに関連することで最もよく理解されるであろう。
【００８９】
予算についての会議のためのツールは最も理解しやすいものである。というのは、作成されるドメインオブジェクトクラスにより、「フリーフォーム表計算」としてのシステムの動作を可能にするからである。この種の予算会議の目的は、コストアイテムが予算に見合うようにすることである。ドメインオブジェクトの主な種類は、コストアイテムと予算センターサマリーの２種類である。
【００９０】
コストアイテムのクラスは、スクリプト言語において以下のように定義される。まず、属性と値が定義される。
【００９１】
【数１】
0004505069.tif 000002
コストアイテムには、アイテムの名前、そのコスト、カテゴリー（種類）、予算センターの４つの属性がある。これらの属性のうちの３つにはデフォルト値がない。予算センター属性の値は、コストアイテムと同じ列（カラム）にある予算センターサマリードメインオブジェクトを見つけてその名前属性の値を得ることによって計算される。したがって、コストアイテムが別の列に移動すると、その予算センターは再計算されて別の予算センターの名前となる。これが、ドメインオブジェクトアイコンの空間配置に基づく計算値の一例であることに注目されたい。
【００９２】
コストアイテムドメインオブジェクトは３つの異なるアイコンレイアウトを有する。
【００９３】
【数２】
0004505069.tif 000003
デフォルトアイコンは単にコストアイテムのコストと名前を固定幅の枠内に示すだけであり、そのためすべてのデフォルトアイコンは同じサイズであり、うまくリストへと適合する。しかし、長い名前はデフォルトアイコンにおいては切り捨てられる。フルサイズのアイコンは名前全体とカテゴリーを示すような大きさにされる。コストアイテムの文書化アイコンは、コストアイテムアイコンに対して実行することができるアクションとコストアイテムの属性を記述したリテラル列である。
【００９４】
アクションはアクションルールにおいて指定される。
【００９５】
【数３】
0004505069.tif 000004
アクションテーブルの第１のルールでは、デフォルトアイコンにおいていかなる枠においてもユーザーがホールドのジェスチャを行うと、システムの動作としてｄｏｃ（文書化）アイコンを作成してオーバーレイとして表示する、ということを指定する。同様に、第２のルールでは、デフォルトアイコンのどの枠においてもダブルタップによってフルサイズのアイコンがオーバーレイされることを指定する。次の２つのルールは、コスト枠上での上または下のジェスチャのみに適用され、コスト値を増分（上）または減分（下）することを指定する。
【００９６】
予算センターサマリードメインオブジェクトは４つの属性を有する。
【００９７】
【数４】
0004505069.tif 000005
予算センターは、名前、目標予算、現在割り当てられているコストアイテムの合計、および差異を有する。最後の２つの属性は計算される。その合計は、予算センターサマリーアイコンのローカル領域内のすべてのコストアイテムアイコンを見出し、それらのコスト値を合計することによって計算される。差異は、合計と目標との差として計算される。
【００９８】
予算センターサマリーアイコンには２つのレイアウトがある。
【００９９】
【数５】
0004505069.tif 000006
デフォルトレイアウトは、４つの属性を示す。文書化レイアウトは、予算センターサマリーオブジェクトの属性およびアクションを説明する。
【０１００】
アクションルールは以下のとおりである。
【０１０１】
【数６】
0004505069.tif 000007
最初のルールは、文書化を示す通常の方法を指定する。その次の２つのルールは、ユーザーが予算目標を増分または減分するのを可能にする。最後のルールは、予算センターの名前を（すべての予算センターの名前を一覧（サイクリング）することにより）変更するのを可能にする。
【０１０２】
これらの２つのドメインオブジェクトクラスは、Tivoliにロードされる際に特定のドメインオブジェクトアイコンをレイアウトするようにＴＭＬファイルをセットアップすることにより、個々の予算会議に使用することができる。部分的なＴＭＬファイルは以下のとおりである。
【０１０３】
【数７】
0004505069.tif 000008
これは、４つの列を伴うページを指定し、その各々が、ドメインオブジェクトアイコンの縦のリストを有する。その結果として得られるページレイアウトが図１３に示される。カラーディスプレイで見ると、第１の列は、「ＣＳＡ」予算センターに関する青の予算センターサマリーアイコン１３０１を含み、その後に、いくつかの黒のコストアイテムアイコン１３０２を含み、そのうちの最初の２つは、「Liveboard３」および「２ LB SVGA ディスプレイ」に関するものである。第２の列は、「ＤＩＤ」に関する予算センターサマリーアイコン１３０３と、いくつかのコストアイテムアイコン１３０４とを含む。図１３はまた、ユーザーがＤＩＤアイコン１３０３に対してホールドのジェスチャをするとどうなるか、すなわち、文書化レイアウトのオーバーレイ１３０５が作成されることを示している。ユーザーはこの上でタップすることによってこのオーバーレイを除去することができる。
【０１０４】
これらのドメインオブジェクトおよびページレイアウトが予算アプリケーションでどのように使用されるかが図１４−図１５に示される。このアプリケーションでは、作業空間が、定義された領域１４０１−１４０４を有する。領域１４０１−１４０３は、予算センターが編成するのに用い、一方、領域１４０４は、その編成のサマリー情報を定義する。各領域内には、予算センターサマリーアイコン１４０５と、複数のコストアイテムアイコン１４０６とが含まれる。各コストアイテムの予算センターは、同じ列内に位置する予算センターサマリーアイコンの名前を見つけることによって計算される。すなわち、コストアイテムは、それが予算センターアイコンと同じ列に位置する場合、その予算センターに属する。したがって、アイコンを列間で移動すると、センター間でコストアイテムを移動することになり得る。コストアイテムは、それを下の領域１４１０のうちの一つに移動させることによって予算合計から外すことができ、これらの領域においては、アイテムは予算センターサマリーに含まれない（サマリーはそのローカル領域内のコストアイテムアイコンを合計するのみである）。図１４は、このようにしていくつかのアイテム１４１１が予算から外されていることを示す。
【０１０５】
さらに、この例では各コストアイテムは、会議の参加者に理解されるカテゴリー番号を有する（たとえば、資本支出、営業支出等）。これらのカテゴリー番号は、第１に考慮しなくてはならないものではないため、コストアイテムアイコンには表示されない。しかし、様々なカテゴリー内のアイテムをいかに分配するかを考慮するのが有用なときがある。このためのツールが、図１５のページの上部に示されるカテゴリーオブジェクトである。カテゴリーアイコン１５０１に対してユーザーがジェスチャを行うと、様々なカテゴリーのための枠１５０２とカラー枠１５０３を伴う「フルサイズ」のアイコンに拡大される。ユーザーがカラー枠上でタップすると、指定された色が（色の標準リストを一覧することによって）変更され、カテゴリーアイコン自体が新しく指定された色にされる。このためのアクションルールは以下のとおりである。
【０１０６】
【数８】
0004505069.tif 000009
ユーザーがＣ５等のカテゴリー枠１５０２上でタップすると、以下のアクションルールが呼び出される。
【０１０７】
【数９】
0004505069.tif 000010
このルールの動作は、カテゴリーの値が５であるページ上のすべてのコストアイテムアイコンは、その色が新しく指定された色に設定されるというものである。
【０１０８】
このように、ユーザーがコストアイテムを動かし、コストと目標を調整し、カテゴリーの分配を調べることを可能にすることで予算交渉会議を支援する。
【０１０９】
別の一般的な会議のタイプに、意思決定会議がある。意思決定会議は、基本的に、ある種の選択肢を評価してその中から選択することに関する。ここで説明する例では、その選択肢はプロジェクトであり、プロジェクトドメインオブジェクトによって表され、選択は、あらかじめ決められた予算内でどのプロジェクトに出資するかということである（ここでは人数の割合で表現される）。
【０１１０】
図１６は、リストに配置される９つの異なるプロジェクトアイコンを示す。この会議の目的は、与えられた予算内でどのプロジェクトに出資するかを決定することである。プロジェクトオブジェクトは、様々な種類の多くの情報からなり、デフォルトプロジェクトアイコンにおいて長い行に配置される。図１６はまた、ユーザーがプロジェクトアイコン１６０２上でダブルタップするとどうなるか、すなわちオーバーレイ１６０１が作成されてプロジェクト情報の拡張されたものが表示されることを示している。
【０１１１】
図１７は、出資するプロジェクトの選択を示す。プロジェクトオブジェクトのための２つのアクションルールは以下のとおりである。
【０１１２】
【数１０】
0004505069.tif 000011
任意のプロジェクトアイコンの番号枠上で上または下のジェスチャをすると、プロジェクトオブジェクトの状態属性が設定され、その状態を示すようにプロジェクトアイコンを色づけする（たとえば、選択されたプロジェクトは赤で表示される等）。
【０１１３】
図１７はまた、プロジェクトリストの上のサマリーオブジェクト１７０３を示す。このドメインオブジェクトは、すべてのプロジェクトの総コスト、予算、および現在選択されているプロジェクトのコスト１７０３を示す。コスト１７０３は、合計演算によりダイナミックに計算される。すなわち、何らかのプロジェクトの状態が変化すると、コスト１７０３は再計算される。
【０１１４】
図１７にはまた、プロジェクトアイコンに対して付けられた手書きの表示１７０２が示されている。以下に説明するように、これらの手書きの表示は、関連するプロジェクトアイコンとの構造的関係を維持する。
【０１１５】
会議においては、よりよく理解するために選択肢を違った方法でソートするのがしばしば有用である。異なるプロジェクト属性に従ってソートするためのアクションルールが存在する。たとえば、
【数１１】
0004505069.tif 000012
このルールは、任意のプロジェクトアイコンの内部枠１８０１に対する上下のジェスチャにより、ローカル領域内のすべてのプロジェクトアイコンを内部属性の値に従ってアルファベット順にソートすることを指定するものである。図１８はこのソート動作の結果を示す。
【０１１６】
ここで、２つの興味深い特徴に気付くだろう。一つは、ソートがTivoliの暗黙構造機構によって行われる点である。ドメインオブジェクトアイコンは、走り書きの注釈等の他のTivoliグラフィックオブジェクトと同様に扱われる。図１７と図１８とを比較すると、走り書きがプロジェクトアイコンとともに移動しているのがわかる。これは、その走り書きがリスト構造内のアイコンと空間的に関連するためである。もう一つは、ソートアクションが動画となる点である。すべてのプロジェクトアイコンは知覚できる速度で同時に移動する。したがって、会議のメンバーは、ソートが起こっていることが分かるとともに、それがどの程度複雑なソートであるかを認識することができる。
【０１１７】
会議中に投票の手順を取ることが有用なことが多い。もっとも単純な種類の投票とは、回覧して、参加者がいくつかの選択肢に対して１票以上投票することである。先の意思決定の会議に関連してこれを説明する。図１９は、これを票作成オブジェクトおよび票ドメインオブジェクトでどのように達成するかを示す。図１９を参照して、「票追加」アイコン１９０１がページの上部に配置される。この票追加アイコンをダブルタップすると、票ドメインオブジェクトが作成され、各プロジェクトオブジェクトの右に票アイコン１９０２が一つ配置される。このためのアクションルールは以下のとおりである。
【０１１８】
【数１２】
0004505069.tif 000013
票ドメインオブジェクトは、以下を含むいくつかのアクションルールを有する。
【０１１９】
【数１３】
0004505069.tif 000014
票オブジェクトはカウント属性を有する。最初の２つのルールは、ユーザーが票アイコンに対する上および下のジェスチャによってカウントを増分および減分することを可能にする。任意の票アイコンに対する上下のジェスチャによって、ローカル領域におけるすべての票アイコンが数の大きな順にソートされる。この結果が、図１９に示される。ここでもやはり、ソートは暗黙構造機構を使用するため、プロジェクトアイコン（および注釈）は、ソートされる際に票アイコンとともに移動される。
【０１２０】
会議における一般的な機能は、討論の議題を順に並べたリストである議事によって会議を管理することである。議事は、１つ以上の議事アイテムドメインオブジェクトによって表され、これらが議題と提案者／討論参加者を示す。議事は、議事アイテムアイコンを削除またはドラッグすることにより、編集および並べ替えが可能である。新しい議事アイテムは、新しい議題を書き、（一般的な動作に関して上述したように）ボックスジェスチャを行うことによって作成できる。
【０１２１】
図２０は、このようにして作成された議事を示す。議事アイテムアイコン２００１−２００６が図示されている。議事アイテム２００６は、ボード上での走り書きから形成されている。議事アイテムの通常のアイコンは、その連続番号、議題、および討論参加者と、左の特殊な「ボタン」の枠とを示す。番号属性は、リストにおける議事アイテムの実際の位置を反映する。
【０１２２】
【数１４】
0004505069.tif 000015
ボタンの枠は、議事アイテムの状態属性をエンコードする属性を保持する。
【０１２３】
【数１５】
0004505069.tif 000016
ある議事アイテムが会議で討論されているとき、それは「アクティブ」な議事アイテムである。議事アイテムアイコンのボタンの枠をタップすると、議事アイテムはアクティブなアイテムとなる。他にいくつかの動作が発生する。新しくアクティブになった議事アイテムアイコンは、視覚的にはっきりと区別され（たとえば、赤等の鮮明な色）、すでに討論された（状態＝終了）アイテムも、視覚的にはっきりと区別される（たとえば、グレー等の抑えられた色）。タップされた議事アイテムが議事のリストにおいて現在アクティブなアイテムの次のアイテムでない場合には、タップされたアイテムは上に移動する。このように、議事アイテムリストは、アイテムが実際に討論された順に維持される。
【０１２４】
これは図２１に示されている。最初の２つの議事アイテム（２１０１，２１０４）は終了しており、３番目のアイテム２１０２がアクティブであり、最後の３つ（２１０３，２１０５，２１０６）が未討議である。最初は４番目であった議事アイテム２００４（図２０）は２番目に議論されており、従ってリスト２１０４（図２１）においては２番目に移動されている。その番号も４から２に変わっていることにも注目されたい。
【０１２５】
議事アイテムを議論しているとき、その議論のメモを取る場所をもつことが有用である。このためのアクションルールが以下のように与えられる。
【０１２６】
【数１６】
0004505069.tif 000017
このように、ユーザーが通常のアクションアイテムアイコンのボタン枠に対して下のジェスチャをすると、そのアクションアイテムドメインオブジェクトのための新しい題のアイコンが作成され、新しいページの題として配置される。プログラムは、その題のアイコンが配置されたページにジャンプする。ユーザーはその新しいページ上で討論のメモを取ることができる。その議事アイテムについては終了すると、議事リストページに戻ることができる。そのアクションルールは以下のとおりである。
【０１２７】
【数１７】
0004505069.tif 000018
これは、題のアイコンに対して上のジェスチャを行うことで、議事アイテムに関する通常のアイコンがある場所、すなわち議事のページにプログラムがジャンプすることを指定する。
【０１２８】
時間管理も会議の一般的な問題の一つである。簡単で便利なのは、クロックを設けることである。クロックドメインオブジェクトは、システムクロックからダイナミックに計算される属性を有する。クロックドメインオブジェクトは、図２０−図２２の右上のアイコンに示されるように、ユーザーに表示することができるとともに、他のドメインオブジェクトがアクセスできる現在の時刻の属性を有する。
【０１２９】
時間管理は、議事にとって有用な特徴である。議事アイテムには、会議の時間を最も効率よく使用できるように、時間が割り当てられることが多い。議事アイテムアイコンは、時間調整（タイミング）の情報を表示するように拡張できる。
これは、議事アイテムに対して右のジェスチャをすることで行われる。
【０１３０】
【数１８】
0004505069.tif 000019
これにより、ローカル領域内のすべての議事アイテムアイコンが時間調整レイアウトに拡大され（図２２参照）、議事アイテムのさらに別のいくつかの属性、すなわち、開始時刻２２０１、実際の継続時間２２０２、割り当てられた継続時間２２０３を示す。割り当てられた継続時間を変えるのに、割り当てられた継続時間の枠に対する上または下のジェスチャを使用してもよい。開始時刻および実際の継続時間の属性は、ユーザーが議事アイテムアイコンのボタン枠をタップして新しい議事アイテムの開始を知らせるとセットされる。これらの属性値は、クロックオブジェクトの現在の時刻を参照することにより計算される。
【０１３１】
もう一つの有用な特徴は、現在アクティブな議事アイテムに対してどれだけの時間が残されているかをユーザーに示すことである。議事アイテムがアクティブであれば、右の部分２２０４で残り時間を示すレイアウトを使用する。残り時間の属性は、開始時刻、割り当てられた継続時間、およびクロックからの現在の時刻からダイナミックに計算される。さらに、残り時間が警告値（たとえば２分）に達すると、視覚インジケータ（残り時間の枠２２０４における「***」等）と音声インジケータ（たとえばベル）を鳴らすことによってユーザーにこれが通知される。
【０１３２】
最後に、会議時間全体の予想を維持するのが有用である。これは、時間サマリーオブジェクト２２０５によって行われる。このサマリーオブジェクトは、完了した議事アイテムに費やされた合計時間２２０６と、まだ完了していない議事アイテムに割り当てられた時間２２０７と、予想される会議終了時刻２２０８とを示す。
【０１３３】
別のタイプの時間管理支援は、たとえば決定すべき提案が数多くあるプログラム検討会議等の多くのアイテムを扱う必要のある会議におけるものである。プログラム会議では数百もの提案を処理する必要があることも少なくない。この場合、時間サマリーオブジェクトを利用して処理を追う。処理すべき各提案に対してページ上にアイコンがあり、各提案が提案ドメインオブジェクトによって表されると仮定する。各提案が決定するたびに、その状態が未決定からある決定（たとえば、許可または拒否等）に変えられる。会議開始から現在までに決定した提案の数を時間的に追うことにより、平均処理時間が計算でき、これを利用して、未決定の提案についても同じ平均時間で仮定することにより、予想される会議終了時間を計算する。これはすべて、提案ドメインオブジェクトと対話するユーザーの副産物として計算できる。
【０１３４】
会議での時間の使われ方を記録するのが、他のデータと相関するのに便利である可能性がある。その基本的な概念は、ドメインオブジェクトによって表すことのできる一連の事象に会議を分割することである。一般的な事象は、開始時間と、終了時間と、事象のタイプと、それを表す題とを有する。
【０１３５】
事象が計算される例は、スライドを用いてそれを進行する発表会議においてである。発表用のスライドは、「黒丸（●）」アイテムの組からなるページである。スライドは、黒丸アイテムドメインオブジェクトの組を伴うページによって表すことができる。発表者は、黒丸アイテムを発表する際にそれらのアイテムにタッチする（タップする）ことにより発表を進める。黒丸アイテムは、タップされるとそれ自体を強調し、開始時間を記す。別の黒丸アイテムがタッチされると、最初の黒丸アイテムはアクティブの状態からはずされ、事象オブジェクトが作成されてそのアクティブにされた間隔を表す。このように、発表は、各黒丸がいつ発表されたかを証明する事象の時系列として特徴付けられる。事象オブジェクトは通常ユーザーには表示されないが、会議の後にエクスポートされて他のツールによって使用される。
【０１３６】
事象はまた、時間調整された議事アイテムからも得られる。しかし、どのドメインオブジェクトも、アクションテーブルに事象作成動作のスクリプトを書くことによりこれらと対話した副作用として事象を作成できる。
【０１３７】
事象は会議の時間経過の指標として機能でき、会議の音声／映像記録等の他のデータとの相関に便利な可能性がある。ある特定の議事アイテムが議論された時の会議の記録を再生したい場合、この議事アイテムに関する事象がこの議論の開始時刻および停止時刻を与える。別の相関は、様々な会議参加者からタイムスタンプ（時間の記録）のあるメモをとり、時間の相関関係を用いて、メモを特定の議事アイテムに割り当てることである。
【０１３８】
会議の出席の記録を追うことが有用であることが多い。これを支援するために、人ドメインオブジェクトを使用する。人オブジェクトは、その人の名前、コンタクト（連絡）情報（出席していないときにその人に連絡をとれるように）、および出席状況（出席、欠席、理由つきの欠席、早退）の属性を有する。出席のページが図２３に示される。出席する可能性のある者が人アイコン２３０１に挙げられる。ある人の状況は、状況枠（種々の状況値を一覧する）２３０２に対してタップすることによって変更できる。名前を走り書きした後に新しい人オブジェクト２３０３が形成されていることに注目されたい。右のジェスチャにより人アイコン２３０４が拡大されて、必要に応じて連絡情報を表示する。
【０１３９】
討論の種々の局面をつかむために、会議中にメモを取ることができる。メモはLiveBoard上で作成してもよいし、ラップトップまたはＰＤＡ等の携帯装置上で手書きまたはタイプすることによって取ることもできる。メモは、一連のメモドメインオブジェクトとして表現できる。メモオブジェクトは、内容属性（テキストまたはペンストローク）、書き手の属性（人）、タイムスタンプ、および連続番号を有する。メモオブジェクトとしてメモをとることの一例が図２４に示される。メモアイコン２４０１がページの下半分に示される。これらのメモは、ラップトップ上でタイプすることによって取られている。各メモが取られるたびに、その内容、書き手、および時間がLiveboardにビームで送られ、ここでメモドメインオブジェクトおよびアイコンに変換されている。最後のメモ２４０２はLiveboard上にペンで書かれている。
【０１４０】
アクションアイテムは、会議で記録するのに特に有用な特殊な種類のメモである。下のアイコン２４０２は、アクションアイテムドメインオブジェクトである。これはメモオブジェクトのようであるが、さらに２つの属性、すなわち、割当てられた人と期日の属性を伴う。これらの属性は各々、アクションアイテムアイコンの各部分に対してタップすることにより変更できる。割当てられた人に対してタップすると、出席者ページ内のすべての人のメニューが現れ、メニューから新しく割当てる人を選択できる。
【０１４１】
会議の終わりに、アクションアイテムを見直すのが有用であることが多い。全員のリストを有する出席ページは、これを行うのに便利な場所である。たとえば、図２５には、「アクション表示」というアイコン２５０５が示されている。このアイコンをタップすると、すべてのアクションアイテムオブジェクトが検索され、小さなアイコン（連続番号のみを含んでいる）２５０１が作成され、ページ上のそれを割当てられた人の横に配置される。その結果が図２５に示される。アクションアイテムアイコン上でダブルタップすると、オーバーレイ２５０２が表示され、アクションアイテムの内容を示す。アクションアイテムは、小さなアイコンを人アイコンへとドラッグすることにより、アクションアイテムをその人に任命することで、割当てなおすことができ、小さなアイコンは新しく割当てられた人のアイコンの横に配置しなおされる。
【０１４２】
このように把握され、編集されたアクションアイテムオブジェクトはデータベースにエクスポートすることができ、ここで管理、追跡できる。また、これらのオブジェクトはｅメールでユーザーに送って、確認することができる。
【０１４３】
ブレーンストーミング会議は、作業空間上でいくつかのアイデアをつかみ、さらにより難しいことに、それらを何らかの方法、たとえば、それらを分類し、まとめて、関連づけること等で編成する。これらのアクティビティを支援するために、いくつかの一般的なドメインオブジェクトが定義、使用される。この種の会議は、真っ白な状態で始まり、会議が進行するにつれて素材が作成されるという点で、これまでに説明した会議とは異なる。
【０１４４】
ブレーンストーミングのための基本的な一般的ドメインオブジェクトクラスは、「もの」である。ものオブジェクトは、ブレーンストーミングの主題に関係なく、アイデア、問題、議論、プロジェクトの目標、採用の可能性のあるもの、採用する技術等であろう。ものは、フリーフォーム二次元作業空間上に配置される（メモカードを壁の掲示板にピンで留めることに似ている）。ユーザーは作業空間上に自由に走り書きすることができる。どの走り書きの組も、ボックスジェスチャを用いて、ものオブジェクトに変換できる。さらに、走り書きの組がリスト構造として解釈できる場合には、ボックスジェスチャにより、１リストアイテムにつき１つの「もの」オブジェクトの割合で、ものオブジェクトの縦のリストが作成される。
【０１４５】
ものアイコンはドラッグすることによって簡単に移動でき、そのため類似または関連するものを近くに配置できる。ものの集まりにラベルをつけるのがしばしば有用であるため、ラベルオブジェクトクラスが定義されている。ラベルおよびものオブジェクトのための有用な機能は、これらを互いに変換する（すなわち、ものをラベルに変え、その反対も行う）ことである。これは、ユーザーがオブジェクトを誤って分類したり、または分類のやり方を変えたりすることが多いからである。
【０１４６】
素材を編成するためのTivoliの機能を利用することができる。すなわち、リストへのオブジェクトの配置、構造化された境界の作成、オブジェクトの組の周りでのフリーフォーム囲いの描画、囲い間またはオブジェクト間でのリンクの描画、縮小された注釈オブジェクトの作成等である。もちろん、ユーザーはどこにでも任意の走り書きをすることができる。ものオブジェクトの特徴のひとつは、ものと同じ領域内のすべてのラベルの名前のリストを作成することにより「ラベル」値を自動的に計算することである。
【０１４７】
この種の会議でさらに２つのドメインオブジェクトクラス、すなわち人オブジェクトと、票オブジェクトが一般に有用である。人オブジェクトは、オブジェクトの近くまたは囲み内に配置して、書き手、責任等を示すようにしてもよい。票オブジェクトは、意見を集めるためのツールとして使用できる。票オブジェクトは、ものオブジェクトの組を選択して、ページの上部にある「＋Ｖ」オブジェクトをタップすることによって作成される。これにより、選択された各ものアイコンの横に票アイコンが作成される。票を伴うものアイコンの組が囲み内または構造化された領域内に含まれていれば、先の意思決定会議の例で説明したように、それらの「もの」を票によってソートすることができる。いずれにせよ、この基本的なブレーンストーミングオブジェクトの組は、単に「手始めの組」であり、種々の特殊な関係を計算するように様々な態様で拡張できる。
【０１４８】
図２６は、ブレーンストーミングのページの例を示す。図２６を参照すると、ボード上に多くのアイデアが書かれており、オブジェクトに変換されている。人オブジェクト２６０１の周りには変換されていない手書きの注釈２６０２が存在する。この例では手書きの注釈は、その実行責任が対応する「人」オブジェクトによって特定されるタスクを示してもよい。「もの」オブジェクトの集まりに名前をつけるとともに実線の境界を有するラベルオブジェクト２６０３が示される。幾つかの集まりは、フリーフォーム領域、たとえば、領域２３０４および２６０５等に囲まれる。集まりにされた「もの」オブジェクトの横には票オブジェクト２６０６が存在する。領域２６０４および２６０５内の集まりにされたオブジェクトは票によってソートされる。さらに、手書きの注釈２６０７は、決を採ると決定されたときに特にフリーフォーム領域２６０５の外に置かれたままにしていることに注目されたい。ものオブジェクト２３０８にも同じようなことが行われたのであろう。
【図面の簡単な説明】
【図１】  本発明において使用できるグラフィックスベースのコンピュータシステムのブロック図である。
【図２】  本発明の基本的な要素を示すブロック図である。
【図３】  ドメインオブジェクトクラスの要素を示すブロック図である。
【図４】  ドメインオブジェクトクラスの属性要素を更に詳細に示すブロック図である。
【図５】  ドメインオブジェクトを用いてアプリケーションを作成するための基本ステップを示すフローチャートである。
【図６】  ドメインオブジェクトを視覚的に表現するためのアイコンの基本レイアウトを示す図である。
【図７】  フリーフォームグラフィックスシステムにおいてアイテムを編成するための領域構造を示す図である。
【図８】  フリーフォームグラフィックスシステムのアイテムを編成するためのリンク構造を示す図である。
【図９】  フリーフォームグラフィックスシステムにおけるアイテムを編成するためのリスト構造を示す図である。
【図１０】  フリーフォームグラフィックスシステムの作業空間上の空間位置に基づくドメインオブジェクトの属性値の決定を示す図である。
【図１１】  フリーフォームグラフィックスシステムの作業空間上の空間位置に基づくドメインオブジェクトの属性値の決定を示す図である。
【図１２】  （ユーザーの動作またはシステム内の処理によって）ある事象が起こったときにフリーフォームグラフィックスシステムによって行われるステップを示すフローチャートである。
【図１３】  予算会議のアプリケーションに対して定義される予算センターサマリードメインオブジェクトに対して利用できるユーザーアクションおよび属性を説明するためのオーバーレイの使用を示す図である。
【図１４】  予算会議のアプリケーションにおけるコストアイテムドメインオブジェクトの使用を示す図である。
【図１５】  予算会議のアプリケーションにおけるコストアイテムドメインオブジェクトの使用を示す図である。
【図１６】  意思決定会議のアプリケーションにおけるプロジェクト、およびプロジェクトサマリードメインオブジェクトの使用を示す図である。
【図１７】  意思決定会議のアプリケーションにおけるプロジェクト、およびプロジェクトサマリードメインオブジェクトの使用を示す図である。
【図１８】  意思決定会議のアプリケーションにおけるプロジェクト、およびプロジェクトサマリードメインオブジェクトの使用を示す図である。
【図１９】  種々の会議のアプリケーションで使用できる、会議での投票に使用するための票作成および票ドメインオブジェクトの使用を示す図である。
【図２０】  会議議事管理アプリケーションにおける議事アイテムドメインオブジェクトの使用を示す図である。
【図２１】  会議議事管理アプリケーションにおける議事アイテムドメインオブジェクトの使用を示す図である。
【図２２】  種々の会議のアプリケーションで使用するためのクロックドメインオブジェクトの使用を示す図である。
【図２３】  種々の会議のアプリケーションで使用するための人、メモ、およびアクションアイテムドメインオブジェクトの使用を示す図である。
【図２４】  種々の会議のアプリケーションで使用するための人、メモ、およびアクションアイテムドメインオブジェクトの使用を示す図である。
【図２５】  種々の会議のアプリケーションで使用するための人、メモ、およびアクションアイテムドメインオブジェクトの使用を示す図である。
【図２６】  ブレーンストーミング会議のアプリケーションにおける「もの」ドメインオブジェクトの使用を示す図である。
【符号の説明】
２０１  ドメインオブジェクトデータ、２０２  データベース、２０３  フリーフォーム編集プログラム、２０４  オブジェクト転送プログラム、２０５  ドメインオブジェクトスクリプト、２０６  入力ファイル、２０７  ドメインオブジェクトファイル。
【図１】
0004505069.tif 000020
【図２】
0004505069.tif 000021
【図３】
0004505069.tif 000022
【図４】
0004505069.tif 000023
【図５】
0004505069.tif 000024
【図６】
0004505069.tif 000025
【図７】
0004505069.tif 000026
【図８】
0004505069.tif 000027
【図９】
0004505069.tif 000028
【図１０】
0004505069.tif 000029
【図１１】
0004505069.tif 000030
【図１２】
0004505069.tif 000031
【図１３】
0004505069.tif 000032
【図１４】
0004505069.tif 000033
【図１５】
0004505069.tif 000034
【図１６】
0004505069.tif 000035
【図１７】
0004505069.tif 000036
【図１８】
0004505069.tif 000037
【図１９】
0004505069.tif 000038
【図２０】
0004505069.tif 000039
【図２１】
0004505069.tif 000040
【図２２】
0004505069.tif 000041
【図２３】
0004505069.tif 000042
【図２４】
0004505069.tif 000043
【図２５】
0004505069.tif 000044
【図２６】
0004505069.tif 000045