(57)【特許請求の範囲】
【請求項１】
文書の第１のパーツが前記文書の第２のパーツに埋め込まれ、パーツ各々がそれに付随する内容とこれら内容に関する操作子を含む複合文書の創成及び／或いは操作を行うコンピュータシステムにおける、前記第１と第２のパーツとの間の関係を定義するインタフェースの方法であって、
前記第１のパーツと前記第２のパーツとの間のインタフェースとして前記第１及び第２のパーツの間で共有され、前記第１のパーツの内容を収容するために利用可能な前記第２のパーツ内の領域を定義する前記第２のパーツによって決定される第１のシェイプと、前記第１のパーツの内容が実際に位置する前記領域の一部を定義する前記第１のパーツによって決定される第２のシェイプとを含む情報を含む第１のデータ構造を格納する工程と、
前記第１のデータ構造に関連し、前記第１及び第２のパーツとの間の幾何学的関係に関し、前記第２のパーツによって決定され、前記第１のパーツの内容が表示される前記領域の一部を定義する第３のシェイプを含む情報を含む第２のデータ構造を格納する工程とを有し、
前記第１と第２のデータ構造を介して、前記第１、第２、及び第３のシェイプ各々に対する変更を前記第１と第２のパーツとの間で通知することにより、前記パーツの内部的な制約についての知識がなくとも前記複合文書における第１及び第２のパーツの創成及び／或いは操作を可能にすることを特徴とするインタフェースの方法。
【請求項２】
前記第２のデータ構造に含まれる前記情報は、前記第１のパーツによって決定され、前記システムへのユーザ入力が前記第１のパーツに伝えられる前記第３のシェイプの一部を定義する第４のシェイプを含むことを特徴とする請求項１に記載のインタフェースの方法。
【請求項３】
前記第２のデータ構造は、第２のパーツの内容を隠す第１のパーツの領域を識別する不透明シェイプと、第２のパーツの内容によって隠される第１のパーツの領域を識別するオーバラップされるシェイプとを定義する情報を含むことを特徴とする請求項１に記載のインタフェースの方法。
【請求項４】
前記第１のデータ構造は、前記第１のパーツの内容を表示するために用いられる全てのコマンドに適用される幾何学変換を特定する情報を格納することを特徴とする請求項１に記載のインタフェースの方法。
【請求項５】
前記第２のデータ構造も、前記第１のパーツの内容を表示するために用いられる全てのコマンドに適用される幾何学変換を特定する情報を格納することを特徴とする請求項４に記載のインタフェースの方法。
【請求項６】
文書のコンポーネントが内容を有したパーツとして格納され、前記パーツがその内容に関して付随する操作子を備え、第２のパーツ内に第１のパーツが埋め込まれる構成の、コンピュータシステムにおける複合文書を生成する複合文書生成方法であって、
前記第２のパーツの内容内に前記第１のパーツの内容に割り当てられる領域を決定する第１決定工程と、
前記領域に対応したフレームシェイプを設定し、前記フレームシェイプを前記第１のパーツに通知する設定通知工程と、
前記第１のパーツに関する前記操作子によって、前記フレームシェイプ内に前記第１のパーツの内容のレイアウトを決定し、前記第１のパーツの内容によって占有される前記領域のサブセットに対応して使用中シェイプを決定し、前記使用中シェイプを前記第２のパーツに通知する第２決定工程と、
前記第１のパーツに関する前記操作子によって、前記使用中シェイプのサブセットに対応し、前記フレームシェイプと前記使用中シェイプとは独立なアクティブシェイプを決定する第３決定工程と、
前記文書の内容の操作に関連したユーザ入力事象を検出する検出工程と、
検出されたユーザ入力事象が前記アクティブシェイプ内で発生したことが判別されたときには、前記検出されたユーザ入力事象を前記第１のパーツに関する操作子に呈示する呈示工程と、
前記第１のパーツに関する操作子によって、前記検出されたユーザ入力事象に応答する応答工程とを有することを特徴とする複合文書生成方法。
【請求項７】
少なくとも、前記使用中シェイプの前記領域の外側に前記第２のパーツの内容のいくらかを表示する表示工程をさらに有することを特徴とする請求項６に記載の複合文書生成方法。
【請求項８】
少なくとも２つのパーツ、即ち、１つの従属するパーツが主たるパーツである他のパーツに埋め込まれ含まれるような構成であり、各々のパーツは内容とその内容に関する付随の操作子で構成されるような複合文書を扱うコンピュータシステムにおける前記複合文書の表示を行う複合文書表示方法であって、
前記従属のパーツについて利用可能である主たるパーツ内で領域を定義するフレームシェイプと、実際に前記従属するパーツによって用いられる前記フレームシェイプ内における領域を定義する使用中シェイプとに関する情報を含むフレームデータ構造を格納する格納工程と、
前記主たるパーツによってフレームシェイプを決定し、前記フレームデータ構造に前記フレームシェイプの通知を行う第１通知工程と、
前記主たるパーツの座標空間から前記従属するパーツの座標空間に前記フレームシェイプを変換する変換工程と、
前記従属のパーツに前記変換されたフレームシェイプを通知する第２通知工程と、
前記従属のパーツによって、前記フレームシェイプに準拠した使用中シェイプを決定する決定工程と、
前記主たるパーツに前記決定された使用中シェイプの通知を行う第３通知工程と、
前記使用中シェイプの領域内に前記従属するパーツの内容を、少なくとも、いくらか表示する表示工程とを有することを特徴とする複合文書表示方法。
【請求項９】
前記主たるパーツによるフレームシェイプの決定は、前記従属するパーツからの要求に応じて実行されることを特徴とする請求項８に記載の複合文書表示方法。
【請求項１０】
クリッピングシェイプに関し、前記従属するパーツの内容が表示できる前記フレームシェイプ内の領域を定義する情報を含むファセットデータ構造を格納する工程と、
前記主たるパーツにおいて前記クリッピングシェイプを決定する工程と、
前記クリッピングシェイプに関し、前記従属するパーツに通知を行う工程と、
前記クリッピングシェイプの領域内でのみ前記従属するパーツの内容を表示する工程とをさらに有することを特徴とする請求項８に記載の複合文書表示方法。
【請求項１１】
前記ファセットデータ構造は、さらに、前記主たるパーツの内容を隠す前記クリッピングシェイプの領域を認識する不透明シェイプを定義する情報を含み、
前記主たるパーツに前記不透明シェイプの通知を行う工程と、
前記主たるパーツから前記従属のパーツに、前記不透明シェイプ内の前記主たるパーツの内容の情報を提供する工程と、
前記従属のパーツによってなされる隠しに従って、前記内容の表示を変更する工程とをさらに有することを特徴とする請求項１０に記載の複合文書表示方法。
【請求項１２】
前記ファセットデータ構造は、さらに、前記主たるパーツの内容によって隠される前記クリッピングシェイプの領域を認識するオーバラップしたシェイプを定義する情報を含み、
前記従属するパーツに前記オーバラップしたシェイプの通知を行う工程と、
前記従属したパーツから前記主たるパーツに、前記オーバラップしたシェイプ内の前記従属したパーツの内容の情報を提供する工程と、
前記主たるパーツによってなされる隠しに従って、前記内容の表示を変更する工程とをさらに有することを特徴とする請求項１０に記載の複合文書表示方法。
【請求項１３】
前記オーバラップされたシェイプ内で前記従属したパーツの内容が変更されるときはいつでも、前記従属のパーツから前記主たるパーツに通知を行う工程と、
前記主たるパーツによってなされる隠しに従って、前記変更された内容の表示を変更する工程とをさらに有することを特徴とする請求項１２に記載の複合文書表示方法。
【請求項１４】
前記ファセットデータ構造は、幾何学変換を定義する情報を含み、
前記クリッピングシェイプの内容全てに前記変換を適用する工程をさらに含むことを特徴とする請求項１０に記載の複合文書表示方法。
【請求項１５】
前記フレームデータ構造は、幾何学変換を定義する情報を含み、
前記クリッピングシェイプ内に表示される内容全てに前記変換を適用する工程をさらに含むことを特徴とする請求項１０に記載の複合文書表示方法。
【請求項１６】
前記フレームシェイプの内側で、かつ、前記使用中シェイプの領域の外側に、少なくとも、前記主たるパーツの内容のいくつかを表示する工程をさらに含むことを特徴とする請求項８に記載の複合文書表示方法。
【請求項１７】
前記従属するパーツに関する操作子によって、前記使用中シェイプを変更する工程と、
前記主たるパーツに前記変更された使用中シェイプを通知する工程と、
前記変更された使用中シェイプに従って、前記主たるパーツの内容の表示を変更する工程とをさらに有することを特徴とする請求項１６に記載の複合文書表示方法。
【請求項１８】
前記第１のシェイプは矩形であることを特徴とする請求項１に記載のインタフェースの方法。
【請求項１９】
前記第１のシェイプは矩形以外の形であることを特徴とする請求項１に記載のインタフェースの方法。
【請求項２０】
前記第１のパーツの内容が表示される前記フレームシェイプ内における領域を定義するクリッピングシェイプを決定する工程と、
前記クリッピングシェイプに関し、前記第１のパーツへの通知を行なう工程と、
前記クリッピングシェイプの前記領域内にのみ前記第１のパーツの内容を表示する工程とをさらに含むことを特徴とする請求項６に記載の複合文書生成方法。
【請求項２１】
前記第２のパーツの内容を隠す前記クリッピングシェイプの領域を識別する不透明シェイプを定義する工程と、
前記不透明シェイプの前記第２のパーツへの通知を行なう工程と、
前記第２のパーツから前記第１のパーツへ、前記不透明シェイプ内の前記第２のパーツの内容の情報を提供する工程と、
前記第１のパーツによってなされる前記隠しに従って、前記内容の表示を変更する工程とをさらに含むことを特徴とする請求項２０に記載の複合文書生成方法。
【請求項２２】
前記第２のパーツの内容によって隠される前記クリッピングシェイプの領域を識別するオーバラップしたシェイプを定義する工程と、
前記オーバラップしたシェイプの前記第１のパーツへの通知を行なう工程と、
前記第１のパーツから前記第２のパーツへ、前記オーバラップしたシェイプ内の前記第１のパーツの内容の情報を提供する工程と、
前記第２のパーツによってなされる前記隠しに従って、前記内容の表示を変更する工程とをさらに含むことを特徴とする請求項２０に記載の複合文書生成方法。
【請求項２３】
前記オーバラップしたシェイプ内の前記第１のパーツの内容が変更されるときにはいつでも、前記第１のパーツから前記第２のパーツへと通知を行なう工程と、
前記第２のパーツによってなされる隠しに従って、前記変更された内容の表示を変更する工程とをさらに含むことを特徴とする請求項２２に記載の複合文書生成方法。
【請求項２４】
前記第１のパーツについての操作子によって前記使用中シェイプを変更する工程と、
前記第２のパーツに前記変更された使用中シェイプを通知する工程と、
前記変更された使用中シェイプに従って前記第２のパーツの内容の表示を変更する工程とをさらに含むことを特徴とする請求項７に記載の複合文書生成方法。
【請求項２５】
前記フレームシェイプは矩形であることを特徴とする請求項８に記載の複合文書生成方法。
【請求項２６】
前記フレームシェイプは矩形以外の形であることを特徴とする請求項８に記載の複合文書生成方法。
【発明の詳細な説明】
発明の属する分野
本発明はコンピュータとそのコンピュータの人間の利用者との間のインタフェースに関し、特に、複合文書の創成と操作における柔軟性をより高めたコンピュータと人間とのインタフェースアーキテクチュアに関する。
発明の背景
現在、パーソナルコンピュータにおいて利用される多くのアプリケーションは、単一のモノシリックプログラムとして書かれており、これらの１つ１つで実行される特定の基本的な機能をもつように設計されている。例えば、ワードプロセシングプログラムは、テキスト文書を創成し編集するために設計されている。一方、テキスト処理のためには設計されていないが、他の多くのプログラムもまた、付随的に文字を使用することもある。例えば、帳票プログラムでは文字をその帳票内に情報の行と列とを表すための記述子として挿入することが可能である。同様に、ペインティングや描画プログラムのような図形プログラムは、そのペインティングをした図形や描画した図形内にラベルとしてテキストを用いることができるようになっている。これらの異なる種類のプログラム全ては、テキスト編集機能を提供しているが、テキストが編集される方法は互いに異なっている。アプリケーションのいくつかは、この機能に関して非常に大きな能力をもっているが、他のものではその能力かなり限定されている。結果として、ユーザは同じ仕事、例えば、テキスト編集を実行するために異なる種類のアプリケーション夫々に関して、異なる方法を学ぶことが要求されている。
それゆえ、必要とするときにはいつでもテキストのような文書のコンポーネントを用いることができるとともに、それが存在する特定の環境に係わりなく、同時に統一した方法でこれを創成したり編集できるアーキテクチュアを備えることが望まれている。そのような方法を用いるなら、テキストがワードプロセシング文書、帳票、図形文書、或いは、他の文書の中に存在しようと、文字を編集ために同じコマンドセットを用いることが可能である。ユーザはただ１つのテキストエディタについてのみ学べばよく、これによって編集過程はもっと快適なものになる。
さらにこれらの考え方に沿って、文書自身の中で複合文書のコンポーネントを編集できることが望まれている。本発明の中では、複合文書とは、２つ以上の異なる種類のプログラムが用いられて１つの統合された情報としての形をなすものである。例えば、それには、図形プログラムによって創成された図形を含むテキスト文書がある。これら２つの種類の情報は互いに包含しあうという関係をもっている。即ち、テキスト文書は、図形オブジェクトがテキスト文書とともに移動し、そのテキスト（コンテナ）文書によって影響されるというように、図形オブジェクトのコンテナとして機能する。
過去において、この種の複合文書は２つの別個のアプリケーションを実行することによって創成された。ワードプロセシングプログラムはその文書のテキスト部分を創成するために用いられた。別の図形アプリケーションは図形を生成するために用いられた。これら２つのプログラムでの生成物を単一の文書に組み込むために、図形はある特定のデータタイプ或いは形式で保存され、このデータ構造の内容がワードプロセシング文書内に、例えば、カット・ペースト操作を用いて、置かれる。これら別々の形の情報を１つの文書にまとめることは、しばしば、プレゼンテーションマネージャとして言及される第３のアプリケーションによって達成されていた。
さて、一度、図形がワードプロセシング文書に埋め込まれたなら、その内容は静的なものとなる。もし、その図形を変更する必要があるなら、ユーザは図形プログラムを呼び出して、もとの図面を取り出し、そのプログラム内でその図形を編集する必要がある。その編集が複合文書の外でなされると、ユーザはその変更がなされたように複合文書内でその変更を見ることはできない。その改訂された図面はその後ワードプロセシング文書内に元々の図面の代わりに埋め込まれねばならない。
種々のアプリケーションの間を切り替えるための必要を克服するために、複合文書の種々のコンポーネントがその複合文書内で編集できるようにすることが望ましい。このやり方は時間を節約し手順を簡略にするのみならず、ユーザがそれらが作られている複合文書内の文脈で変更をそのまま見ることができるようにもする。
従って、本発明の目的は、タスクが実行される環境に係わりなく、そのタスクに対して一貫したユーザインタフェースが備えられたシステムを提供することである。さらに、このような考え方に沿って、本発明はまた、複合文書の主たるパーツと埋め込まれたパーツとの間でのインタフェースとしての役割を果たす新しいデータ構造を提供し、これらのパーツ間での協働を容易にすることを別の目的としている。
発明の概略説明
これらの目的を追求かつ達成するため、本発明は、以前は不可能であった方法で異なる種類全ての情報伝達要素が文書内で結合され操作できるようにする統一されたインタフェースを備える。本発明の文脈にそえば、文書はインタフェースの要素であると考えられ、そのインタフェースの目的はユーザに情報を提示し、その情報、例えば、テキスト文書や図形文書が編集できるようにすることである。
インタフェースの統一性は、タスクを達成するために、以下、“パーツ”として言及される基本構築ブロックを採用した文書中心のアーキテクチュアを通して備えられる。１つのパーツは、内容とその操作子という２つの主要なコンポーネントで構成される自己完結型の要素である。これら２つのコンポーネントは、そのパーツがシステム内のどこに存在していようと、例えば、フォルダ内やデスクトップ上の文書の要素として、常にユーザから利用可能である。そのパーツの操作子は、パーツの内容に関するどんな種類のエディタでもよいし、ビューワでもよいし、必要であるなら、ユーザによってそれは選択可能である。例えば、パーツの内容がテキストであるなら、そのパーツのコンポーネントであるエディタは、ユーザが親しんでいるどんなワードプロセッサでもよい。そのワードプロセッサは、テキストが埋め込まれているところではどこでも、そのパーツのテキスト内容を編集するために用いられる。従って、たとえ、そのパーツが非テキスト文書、例えば、帳票内に埋め込まれていても、そのパーツのテキストの内容は、依然として、ユーザが選択したワードプロセッサで編集できる。
この特徴を示すインタフェースは、より単純でより強力であるという顕著な固有の特性を有している。その単純さは、ユーザはテキストを編集するといった特定のタスクを実行するために１つの方法を学べば良いという事実に起因する。同時に、そのテキストエディタは、多くのアプリケーションで現在見られるそれほど性能のよくないものを置き換えてしまう十分な機能をもったモジュールであり得るために非常に強力であるといえる。
パーツの２つの基本的なコンポーネントは、パーツをオブジェクト（その固有の内容のために）としても、（その固有の操作子或いはエディタに起因する）アプリケーションとしても機能させ得る。これらの特徴により、パーツは数多くの機能を提供する。例えば、どの文書もパーツであり、どのパーツも文書として作用する。これを例示すると、テキストパーツは、文字を含む文書であり、図形パーツは線や円を含む文書である。
このパーツの別の特徴は、それがコンテナとして機能することである。例えば、１つのパーツは別のパーツを含むことができる。さらに、パーツは、それが含むパーツの種類に限定されない。むしろ、１つのパーツがどんな種類のパーツを含むことができるなら、それは全種類のパーツを含むこともできる。このパーツの特徴は、本発明を複合文書の創成に理想的なアーキテクチュアにしている。文書はパーツを含んでいるので、それは文書や操作子を変えることなく異なる種類の情報を表現する全ての種類のパーツを自動的に含むことができる。
これらの特徴により、ユーザインタフェースでは所望の結果を生み出すように異なるパーツを調整することで複合文書を構成するようになる。この意味で本発明のインタフェースは、アプリケーション指向というよりはむしろ文書中心型である。即ち、従来のアプリケーションは本発明のインタフェースの役割を果たしていないが、本発明はパーツを形成するために結合されるデータからは分離している。
このインタフェースの別の特徴はパーツをユーザに表現する方法である。パーツは、そのパーツのハンドルを提供する小さな絵ともいえるアイコンとして表現され、そのアイコンによって全体が操作できるようになっている。例えば、アイコンはデスクトップ上とウィンドウ間でドラッグされるし、そのアイコン自体がドラッグ操作によって他のアイコンをドロップする目的地ともなり得る。また、パーツの内容は、従来のアプリケーションに類似したデスクトップ上のウィンドウによって定義されたワークスペースに拡大される。
パーツはまたフレームとしても表現される。フレームはパーツを表現する表示画面のある領域である。アイコンのように、フレームはパーツにハンドルを提供し、そのハンドルによって全体として操作が可能になる。フレームもデスクトップ上やウィンドウ間でドラッグされ、それ自体がドラッグ操作によるドロップ先を提供しており、オープンされてウィンドウとなったり、クローズさされてフレームに戻ったりする。しかしながら、アイコンとは異なり、フレームでパーツの内容を見ることや編集することができる。
フレームとは、例えば文書のような主たる（コンテナ）パーツと、埋め込まれた従たるパーツとの間のインタフェースとして機能するデータ構造である。フレームは、数多くの属性から成り立っており、その属性のいくつかは主たる（コンテナ）パーツによって、またあるものは埋め込まれた従たるパーツによって制御される。このようなフレームの媒介によって、主たる（コンテナ）パーツと埋め込まれた従たるパーツに関する操作子は、主たる（コンテナ）パーツ内で埋め込まれた従たるパーツに与えられる空間割り当てを調整する。
ユーザインタフェースに関し、基本的構築ブロックとしてパーツを利用することによって、パーソナルコンピュータのアプリケーションでは以前には利用不可能であった能力が備えられる。これらの能力は、これ以降、本発明の好適な実施例での具体例を参照して説明する。
【図面の簡単な説明】
図１はコンピュータシステムの主要な要素のブロック図である。
図２Ａ−図２Ｂは夫々表示画面の例であり、フォルダから文書にパーツをドラッグする様子を示している。
図３は夫々表示画面の例であり、フレームを起動する様子を示している。
図４はアクティブなフレーム内で選択されたフレームの様子を示す図である。
図５は複合文書のレイアウトを定義する基本プリミティブの様子を示す図である。
図６Ａ−図６Ｃはフレームとファセット構造の例を示す図である。
図７Ａ−図７Ｆはフレームとファセット属性に関し、埋め込まれた従属パーツと主たる（コンテナ）パーツとの間で発生する調整の例を示すフローを示す図である。
図８はエディタを立ち上げる過程を示すフローチャートである。
図９Ａ−図９Ｅはデスクトップと文書との間でのパーツのドラッグを示す表示画面の移り変わりを示す図である。
図１０−図１０Ｂはパーツをドラッグしてドロップする過程を示すフローチャートである。
図１１−図１１Ｃは、あるパーツから別のパーツにマテリアルを複写する様子を示す表示画面の移り変わりを示す図である。
図１２Ａ−図１２Ｃは、あるパーツから別のパーツにマテリアルを複写する様子を示す表示画面の移り変わりを示す図である。
図１３Ａ−図１３Ｃは、あるパーツから別のパーツにマテリアルを複写する様子を示す表示画面の移り変わりを示す図である。
図１４は、あるパーツから別のパーツにマテリアルを置く過程を示すフローチャートである。
図１５は、アクセス制限されたパーツを示す表示画面である。
図１６は、パーツビン示す表示画面である。
実施例の詳細な説明
本発明とこれによって得られる利点の理解とを容易にするために、本発明の特徴をアップルコンピュータ株式会社によって供給されるマッキントッシュ（Macintosh▲Ｒ▼）コンピュータに本発明を適用することによって説明する。しかしながら、関連技術に詳しいものにとっては、本発明の原理はこの特定の動作環境によって限定されるものではないことが理解されよう。むしろ、本発明を基礎とする概念は、文書、特に、複合文書のコンパイルや編集に統一されたインタフェースを提供することが望ましいどんな種類のコンピュータオペレーティングシステムにも適用できる。
本発明において用いられる典型的な種類のコンピュータシステムは、図１に示したブロック図のような構成である。ただし、そのコンピュータそれ自体の構造は、本発明の一部を構成している訳ではない。ここでは、本発明の特徴がどのようにコンピュータの構造と協働しているかを、後のでの理解のために簡単に説明する。図１において、システムは種々の外部周辺装置１２を接続したコンピュータ１０を含んでいる。コンピュータ１０は、中央処理装置（ＣＰＵ）１４、通常はＲＡＭ１６とＲＯＭ１８を有するスタティックメモリと磁気或いは光学ディスク２０のような不揮発性記憶装置とが組み込まれた主記憶とを含んでいる。ＣＰＵ１４は、内部バス２２を介してこれらメモリの１つ１つと交信する。周辺装置１２は、キーボード２４のようなデータ入力装置と、マウス、トラックボール等のようなポインティング・カーソル制御装置２６とを含んでいる。ＣＲＴモニタやＬＣＤスクリーンのような表示装置２８は、コンピュータ内で処理されている情報、例えば、文書の内容を可視化して表示する。この情報のハードコピーはプリンタ３０或いは同様の装置によって備えられる。これらの外部周辺装置各々は、コンピュータの１つ以上の入出力ポートによって、ＣＰＵ１４と交信する。
本発明は、特に、ＣＰＵ１４がキーボード２４やカーソル制御装置２６によって操作される情報を取り扱う方法を制御したり、また、操作された情報がユーザに対して表示装置３０を通して表示される方法を制御するシステムに関するものである。本発明の原理を用いるインタフェースの例が図２Ａと図２Ｂに示されている。これらの図は、ワークスペース３６を定義するデスクトップ３４を図示している。また、そのデスクトップにはメニューバー３８が含まれている。ワークスペース３６の中には、２つのウィンドウ４０、４２がある。左側のウィンドウ４０は、種々のパーツを表現するアイコンを含むフォルダのウィンドウである。図２Ａに示されているように、３つのアイコン４４はテキストパーツに属し、４番目のアイコン４５は図形パーツを表現し、さらに別のアイコン４６は帳票４６を表現している。６番目のアイコン４８は、プレゼンテーションスライドの創成のために用いられるパーツを表現するステーショナリアイコンである。図２Ａにおいて、右側のウィンドウ４２は、テキスト文書を含んでいる。即ち、その文書はテキストパーツ５０を含んでいる。このテキストパーツはウィンドウ４２の中にテキストをタイプすることにより、或いは、そのウィンドウ内にアイコンによって表現され以前に創成されたテキストパーツをオープンすることにより創成される。
図２Ｂは図形アイコン４５が左側のウィンドウ４０のフォルダから右側のウィンドウ４２のテキスト文書にドラッグされた操作の結果を図示している。図２Ａと図２Ｂに示されているようなデスクトップ・メタフォーを備えたユーザインタフェースでは知られているように、ドラッギングとは、オブジェクトがデスクトップ上やウィンドウ内でカーソル制御装置２６を起動することで、移動されたり複写されたりするときになされる操作である。一度、図形アイコンが文書内に置かれたなら、その内容は、フレーム５２に表示される。その文書は今や図形要素とテキスト要素とを含んでいるのであるから、それは複合文書として言及される。
複合文書において、例えば、エディタのような異なるプログラム実行モジュールは共働し、単一の統合された情報を生成する。そのような実行モジュール各々は、その文書の全情報の内容の１つのセグメント、即ち、パーツを制御する。包含されているものは、その文書のパーツを互いに関連づけるために用いられる。包含されているものは、ユーザが包含されたパーツ或いは従属する埋め込まれたパーツが主たる（コンテナ）パーツとともに移動したり、或いは、主たるパーツによって影響を受けることを期待する論理的な関係を表現する。
テキスト５０とフレーム５２内にある図形要素は別々のパーツに属し、これらのパーツがいっしょになって複合文書を作り上げる。前述したように、パーツは、内容とその内容に関する操作子とで構成される自己完結型のエンティティである。これら２つのコンポーネントは、いつもそのパーツがアクセスされるとき、それがデスクトップのどこに位置しているかに関わらず、利用可能である。従って、図２Ａに示されているように、図形アイコン４５がウィンドウ４０のフォルダに位置しているとき、そのアイコンは図形要素とその要素に関するエディタとを含むパーツを表現している。そのパーツがウィンドウ４２の文書に移動するとき、その内容はその移動とともに移動し、その内容に関するエディタの機能もユーザには利用可能である。
この特徴で重要なことは、パーツの内容がどこに位置していようと、その内容が常に編集可能であるか、さもなければ操作可能であるという事実である。従って、図２Ｂの複合文書において、テキストの内容５０はその文書内で、例えば、そのテキストを初めに創成するために用いられたのと同じワードプロセッサを用いることによって、編集可能である。図形エディタがフレーム５２内でパーツのコンポーネントとして存在しているのであるから、そのパーツの図形の内容が適宜、直接編集可能となる。従って、パーソナルコンピュータに関する以前のアプリケーションとは異なって、ユーザは例えば、デスクトップ３４の他のウィンドウにおいて図形アプリケーションをオープンし、望むように図形情報を編集し、それから編集された図形をウィンドウ４２の文書にイクスポートするといった必要はない。むしろ、ユーザは、中間的な工程を導入することなく、直接ウィンドウ４２の文書の内容の中でフレーム５２の内容を編集できる。そのユーザはアプリケーションよりむしろ文書の内容に注意を向け、周辺の文書によって備えられる文脈を利用できる。
それ故に、パーツとは、基幹システム技術で自律性のある自己完結的なオブジェクトである。それは、どんな種類のソフトウェアエンジンでも環境でも使用することができ、ユーザはパーツについて特別なエディタの操作を学ぶ必要はない。そのカテゴリーのパーツのエディタが基幹システムで表現されている限り、ユーザは、そのパーツの能力を十分に利用することができる。さらに、もし、テキスト部分が特別なテキストエディタ（ワードプロセッサ）で生成されたなら、ユーザはただそのテキストエディタをそのパーツに用いるように限定されている訳ではない。もし、そのユーザが異なるワードプロセッサのコマンドにより親しんでいるなら、そのプロセッサを、コンピュータシステムでの全てのテキストパーツに関する好適なエディタとして指定できる。
パーツは、文書やその内容にのみ限定されない。むしろ、システム内のどのオブジェクトもパーツを構成する。従って、ウィンドウ４０のフォルダは、パーツであり、その内容はアイコン４４−４８である。同様に、デスクトップ３４それ自身もパーツであり、ダイヤログボックスや他のユーザインタフェースオブジェクトも同様である。
フレームとアイコンは、パーツの２者択一的な表示である。ユーザは、パーツのフレーム表示とアイコン表示とを切り替えることができ、これは、適当なキーボードからのコマンドやメニューコマンドによってなされる。もし、文書が大きく、例えば、数ページにも及ぶなら、その一部分だけしかフレームに表示されない。それゆえ、アイコンのようなフレームは、ウィンドウ内にオープンすることができ、これによって、例えば、これをスクロールして大きなパーツの全ての内容を見る事ができ、ウィンドウ内で利用可能な機能、例えば、拡大機能、を用いて編集することができる。同様に、そのパーツはウィンドウ表示からクローズしてフレーム表示に戻すこともできる。フレームは、その内容を適宜編集することができるという点で、アイコンと異なる。フレームはまた、１つのフレーム、或は、複数のフレームがウィンドウ内に存在するので、ウィンドウとも異なる。ウィンドウは、オブジェクトの遷移的なビューであり、それは、ただパーツが編集されたり、検証されたりするときにのみ、オープンされたままになる。これに対して、フレームは、パーツの内容の永久的な表示方法である。
パーツ、それはアイコン或はフレームの表示形式をとっているが、それは、他のパーツのコンテナとしても働く。図２Ｂの例において、文字５０はフレーム内に存在するが、そのフレームの境界は、ウィンドウ４２のそれと同じである。この比較的大きなフレームは、図形パーツに関する比較的小さなフレーム５２を含んでいる。その文字部分は、ウィンドウの最外部にあるので、それば、“ルートパーツ”とラベルが付される。一般的にいって、そのルートパーツは、ウィンドウに関する基本的な編集方針を確立する。
ルートパーツは、図２Ａで示されるアイコン４８のような、ステイショナリアイコンによって生成される。一般に、ステイショナリアイコンは、予め定義されたパーツを表現し、物理世界におけるペーパ台についてのメタフォーとして機能する。新しい文書が生成されるとき、人はペーパ台より未使用の用紙を一枚むしりとり、文書の内容、例えば、単語や図面などをその上に置く。ステイショナリアイコンも同様の役割を果たすのである。ユーザが新しい文字文書を生成したい場合、テキスト文書ステイショナリアイコンが、例えば、それをダブルクリックすることによって、オープンされる。これに応答して、そのステイショナリアイコンは、それ自身のコピーを生成し（或は、“むしりとり”）、ウィンドウやフレーム内にそれをオープンする。このコピーは、最初は何の内容も入っていないブランクか、或は、レターヘッドや会社のロゴのような所定の情報をもった普通のパーツである。それから、ユーザは、その文書に付加的な内容、例えば、文字をいれる。
ステイショナリそれ自身は、ウィンドウとしてもフレームとしてもオープンはされず、ただアイコンとして存在する。はぎとられたコピーのみが、オープンするのである。従って、ステイショナリアイコンが文書内にドラッグされた場合、それ自身をフレーム内にオープンするというよりむしろ、コピーがむしりとられ、文書内に置かれ、そのコピーがフレーム内でオープンするのである。ステイショナリアイコンそれ自身は、移動前に占めていた位置に戻る。これによって、ステイショナリが間違って文書に挿入されたり、或は、失われてしまうことを防いでいる。
フレームは、コンテナとして機能するのであるから、それはウィンドウの良く知られた性質を示すことになる。例えば、ユーザが図形オブジェクトのような固有の内容を選択すると、選択された内容を含むフレームはアクティブになる。パーツがアクティブであると、それはコマンドやキーボードのイベントを受け付け、そのメニューと他のユーザインタフェースオプションが表示される。フレームのアクティベーションの例が図３Ａと図３Ｂに示されている。図３Ａは、テキストと図形部分とを有する複合文書を含むウィンドウ５４を有したデスクトップを示す。この複合文書において、テキストはその文書のルートパーツを形成する。図３Ａの例では、そのテキストの一部５６が選択され、反転表示されている。この場合、選択されたパーツを含むフレームは、ウィンドウ自身の境界に接している。デスクトップのメニューバー５８は、テキストを編集するために適切なコマンドを含んでいる。
図３Ｂは、図形要素、即ち、三角形６０が選択された例を示している。その図形要素を含むフレームが、今度はアクティブになり、その境界線は、点線６２によって示されている。そのアクティブフレームが今回は図形パーツであるので、メニューバー５８のコマンドは、図形の内容を編集するのに適切なものに変えられる。さらに、パレット６４がデスクトップに表示され、アクティブフレームの図形の内容を編集するのに必要なツールを備える。
フレームをアクティベートすることに加え、ユーザは、また、フレームを選択しても良い。そのフレーム選択は、例えば、フレームをアクティベートしてその境界が見えるようにし、その後、カーソルのポインタをフレームの境界上に位置させる一方、カーソル制御装置のボタンを押してすることで達成される。図４は、図形の内容とテキストの内容の両方を含むフレーム６６を図示している。そのフレームの境界６８は、点線によって示され、それがアクティブフレームであるという事実を示している。そのアクティブフレームの中に、テキストの内容を含むフレーム７０がある。このフレームは、カーソル７２のポインタをフレームの境界７３の上に位置させる一方、カーソル制御装置のボタンを押すことによって選択される。フレーム７２が選択されたという事実を示すために、選択フレーム７２の境界７３は、アクティブフレーム６６のそれとは異なる外観となる。例えば、その境界は、図４にしめすように、広くなる。さらに加えて、サイズ変更ハンドル７４が備えられ、これを用いてフレームの形やサイズをよく知られた方法で変化させることができる。
一般に、パーツの内容の一部或はいくつかが選択されたときはいつでも、選択された要素を含む最小のフレームがアクティブフレームとなる。従って、フレーム７０内の１つのワードが、例えば、カーソルをそのワードに位置付けしてカーソル制御ボタンをクリックすることによって、選択されると、フレーム７０はその状態が選択状態よりアクティブ状態へと変化する。同時に、フレーム６６の境界は目には見えなくなる。なぜなら、このフレームは、もはやアクティブでもなければ、選択されている訳でもないからである。逆に、もしフレーム６６が、その境界６８上をクリックすることで選択されたなら、境界７３が消滅し、境界６８が現れるようになり、フレーム６６を含むフレーム（或はウィンドウ）の境界（図４には示されていない）が高輝度表示になって、それがアクティブであることを示す。
図３Ａ、図３Ｂ、図４の例において、フレームは矩形であるように示されている。さて、この形はたいていの種類のパーツの内容を表示するためには好ましいものであるが、フレームの形は、矩形に限定される必要はない。むしろ、そのフレームは、その表示内容に適するようにどんな形をとっても良い。
フレームは、パーツそれ自身の要素ではない。むしろ、クレームは文書のレイアウトを定義するプリミティブを形成する３つの別々のデータ構造の１つである。これら３つのデータ構造は、カンバスとフレームと変換とを有している。図５において、カンバス７５は文書の全体的な文脈を表現するデータ構造である。これは、座標空間の説明と一連の図形コマンドを画像や表現形式の中に取り込むメカニズムとを含んでいる。カンバスの例は、コンピュータ画面、プリンタに関するページ記述言語、コンピュータディスプレイについての表示リスト上でのビットマップ或はピクセルマップである。
フレーム７６は、主たる（コンテナ）パーツと埋めこまれるパーツとの間で共有情報貯蔵所としての役目を果たすデータ構造である。変換は、図形コマンドに適用される１連の幾何学的説明を表現しているデータ構造である。図５の例において、その変換は、参照点、例えば、カンバス７５の左上端の点からのオフセット７７として表現される。他の種類の変換としては、スケーリング、回転、ねじれ、歪みなどがある。一般的に言って、変換とは、カンバス７５上でのフレーム７６の位置や方向性についての幾何学的な説明である。それは、実際のところ、２次元的或は３次元的なものである。
主たる（コンテナ）パーツと埋めこまれるパーツとの間でのインタフェースとして機能するために、フレーム各々が多くの特徴的な属性をもったデータ構造なのである。これらの属性のいくつかは、種々の“シェイプ”と呼ばれる。これらシェイプ各々は、主たる（コンテナ）パーツと埋めこまれるパーツとの間で共有されるある文書文脈を定義する領域の幾何学的な説明を表現する。シェイプのいくつかは主たる（コンテナ）パーツで制御され、一方、他のものは埋めこまれるパーツによって決定される。一般に、これらの種々のシェイプは、文書の文脈の座標空間の任意の領域、例えば、カンバスを表現できる。この点、フレームのシェイプは、隣接領域と同様に分離領域を表現できる。
フレームの特徴的なシェイプは、図６Ａに示されている。この図において、左側の図はテキスト（ルートパーツ）と三角形によって表現される図形パーツとを含む複合文書を示す。一方、右側の図は図形パーツに関するフレームのシェイプの属性を示している。
フレームの特徴的な属性の１つは、フレームシェイプである。そのシェイプは、主たる（コンテナ）パーツ（テキスト）によって決定され、その埋め込まれたパーツ（図形要素）にそのレイアウトを示すために用いる幾何学的な領域を記述する。図６Ａにおいて、フレームシェイプは、外の実線の境界７８によって示されている。そのシェイプによって示される領域は、スケーリングやライン切断や、埋め込まれたパーツに関するエディタによってなされねばならないその他類似のレイアウト決定に影響する。ただ、主たる（コンテナ）パーツだけが直接にフレームシェイプを変更できる。このシェイプが主たる（コンテナ）パーツによって変更されたとき、通知が埋め込まれたパーツに対してなされ、適切な変更が埋め込まれたパーツの表示及び／或は内容においてもなされるようにしている。
フレームのさらに別の特徴的な属性は、図６Ａに内側に斜線が施されている境界７９で示されている使用中シェイプである。このシェイプは、埋め込まれたパーツによって決定され、主たる（コンテナ）パーツに対して、その埋め込まれたパーツによって実際に使用されている幾何学領域の部分を説明する。このシェイプは、必要に応じてフレームシェイプのサブセットになる。主たる（コンテナ）パーツは、使用中シェイプに引張ってくる事が許されているのではなく、使用中シェイプの外側の領域、それがたとえ、フレームシェイプ７８の内側であっても、その領域に引張ってくることは自由である。その埋め込まれたパーツが使用中シェイプを変更でき、それがなされたときには、その埋め込まれたパートはその変更を主たる（コンテナ）パーツに通知する。
フレームの他の２つの属性は、そのグループタグとその変換である。主たる（コンテナ）パーツが埋め込まれるに適当な空間を備えることができないとき、その埋め込まれたパーツは主たる（コンテナ）パーツから新しいフレームを要求することができる。そのグループタグは、数字のような識別子であり、それは、与えられた主たる（コンテナ）パーツにおいて一連の関連したフレームをただ一つだけ識別する。ここで、主たるパーツ（コンテナ）の全ては、単一の埋め込まれたパーツと関連している。主たる（コンテナ）パーツはそのフレームグループタグを用いてグループにおける種々のフレームの幾何学的な関係を制御する。
フレーム変換は、フレーム内の埋め込まれたパーツを表示するために用いられる全ての図形コマンドに適用されることになる幾何学的な変換を特定するデータ構造である。例えば、そのパーツが９０°回転させられるとするなら、フレーム内に表示されている全ての項目もその角度だけ回転する。この変換は、注目フレーム内に囲まれている全てのフレームと埋め込まれているパーツそれ自身に適用される。フレーム変換はその埋め込まれたパーツによって制御される。
主たる（コンテナ）パーツと埋め込まれたパーツとの間の関係において係わり合う別のデータ構造は、フレームのファセットである。ファセットは、特定の配置と、主たる（コンテナ）パーツと埋め込まれたパーツとの間の幾何学的関係と関連のあるクリッピング情報を表現する。フレームのように、ファセットもまた多くの特徴的な属性をもっている。これらの１つはその属性が関連するフレームである。ファセットの属性の別のグループは、種々のシェイプを定義する。ファセットのシェイプは図６Ｂ及び図６Ｃに示されている。これら２つの図の例において、ルートパーツはテキスト文書であり、これは３つの図形パーツ、即ち、三角形、楕円、表を含んでいる。図６Ｂの右側の図は三角形のパーツに関するファセットのシェイプを示し、図６Ｃの右側の図は楕円のパーツに関するファセットのシェイプを示す。説明を明瞭にするために、これら２つのパーツに関するフレームのシェイプ７８と８０は夫々、図６Ｂと図６Ｃとに示されている。
ファセットの属性の１つはクリッピングシェイプである。クリッピングシェイプは、埋め込まれたパーツに、パーツの内容が描画或は表示可能な幾何学的領域を説明する。図６Ｂと図６Ｃの例において、不透明な三角形の図形パーツの右下部は表が重なりあっている。それゆえ、その三角形のクリッピングシェイプ８１は、その表によって重なりあっているこの部分を除外する。クリッピングシェイプは、コンテナ（主たるパーツ）、即ち、図６Ｂで図示された例のルートパーツを形成するテキスト文書によって決定される。そのコンテナ（主たるパーツ）だけがクリッピングシェイプを変更でき、そして、それがなされたときには、その変更を埋め込まれたパーツに通知する。
ファセットの特徴的な属性である他のシェイプは、そのアクティブシェイプであり、それは図６Ｂにおいて細い実線の三角形のシェイプ８２で示されている。このシェイプは、埋め込まれたパーツによって決定され、フレームシェイプや使用中シェイプとは独立である。これは、主たる（コンテナ）パーツに、埋め込まれたパーツがカーソル制御入力のような幾何学的に関係したイベントを受信するべき幾何学的領域を説明する。この領域内でイベントが発生したときにはいつでも、ユーザインタフェースはそのイベントを主たる（コンテナ）、パーツではなくむしろ、埋め込まれたパーツに伝える。しかしながら、主たる（コンテナ）パーツは、その埋め込まれたパーツのアクティブシェイプ８２の外側の領域で発生するイベントには自由に応答する。
ファセットのもう１つの特徴的な属性は、ファセット変換である。このデータ構造は、主たる（コンテナ）パーツによって制御され、その主たる（コンテナ）パーツ内で埋め込まれたパーツを表示するために用いられる全ての図形コマンドに適用される変換を特定する。即ち、この変換は、主たる（コンテナ）パーツのカンバス上で情報がどこにどのように表示されるかを指示する。この変換は、注目ファセット内で入れ子になった全てのファセットと、埋め込まれたパーツに適用する。
これら２つの属性に加えて、ファセットは他のシェイプを含む。これらの１つは不透明シェイプである。このシェイプは埋め込まれたパーツによって制御され、主たる（コンテナ）パーツにそのクリッピングシェイプのどの領域が不透明であるかを説明する。不透明領域は、埋め込まれたパーツがパーツの描画結果を用い、その埋め込まれたパーツがそれ自身の表示を完成させるために隠す領域のことである。図６Ｂと図６Ｃの例において、楕円は不透明であり、クリッピングシェイプ８３と同一の広がりをもつフレームシェイプ８０（これらは図６Ｃで別々に描かれているが）のフレーム内に含まれている。このパーツは、所望の色、例えば、青の透明な網を、それが隠すものに施す。表示中、このパーツはカンバス上で以前描画された結果を用い、その網の下ではより青みがかったようにするために、描かれた色を変更する。
このパーツに関する不透明シェイプ８４は、図６Ｃに示されている。このシェイプは、埋め込まれたパーツ、即ち、楕円によって制御される。それは表示システムによって用いられ、ｚ軸方向、即ち、表示平面に垂直方向に関し、埋め込まれたパーツの下側に現れるパーツに関する表示及びクリッピング情報の順序を決定する。埋め込まれたパーツが不透明領域のシェイプを変更すると、そのパーツは主たる（コンテナ）パーツに通知する。
ファセットのもう１つの特徴的なシェイプは、オーバラップシェイプである。このシェイプは主たる（コンテナ）パーツによって制御され、その埋め込まれたパーツに、主たる（コンテナ）パーツの不透明な内容によって隠されたクリッピングシェイプの部分について、説明する。三角形のパーツに関するオーバラップシェイプ８５は、図６Ｂに示されている。その図に示されているように、クリッピングシェイプ８１内の幾何学的領域が楕円パーツについての不透明シェイプ８４に一致している。説明を明瞭なものとするために、図６Ｂにおいて、オーバラップシェイプ８５はクリッピングシェイプ８１からオフセットがあるように図示されている。しかしながら、実際には、オーバラップシェイプの上と左の境界は、クリッピングシェイプの端と一致する。
主たる（コンテナ）パーツの不透明な内容は、埋め込まれたパーツの表示コーードの結果を必要とする内容であり、これによって主たる（コンテナ）パーツは不透明な内容を正しく描画することができる。その埋め込まれたパーツがこの領域におけるその内容の何かを変更したときにはいつでも、そのパーツは主たる（コンテナ）パーツに通知を行なって必要な表示変更がなされるようにしなければならない。
フレームとファセットは各々、特徴的なシェイプやこれらに関係した他の特徴的な属性をもつことが理解できる。一般的に言って、フレームの属性は持続性があり、文書に関するファイルとともに保存される。これとは反対に、ファセットの属性は一時的なものであり、文書が画面上に表示中にだけ現れるものである。
そのフレームデータ構造は、主たる（コンテナ）パーツとその埋め込まれたパーツが、互いの内部制約をできる限り知らないようにして、文書構造を互いに調整できるようにしている。主たる（コンテナ）パートとその埋め込まれたパートとの間で発生する調整の例は、図７Ａ−図７Ｆに示されている。これらのケース各々において、シェイプデータ構造は主たる（コンテナ）パーツとその埋め込まれたパーツとの間でやりとりされる。そのような全ての場合において、主たる（コンテナ）パーツは、その埋め込まれたパーツの座標系からそれ自身の座標系へそのシェイプを変換する役目を負っている。図７Ａの例では、フレームシェイプは、コンテナで変更されている。この手順は、ユーザからのコマンドで始まり、例えば、１つ以上のフレームサイズ変更ハンドルを移動させることによって、フレームのサイズを変更する。ステップ７０１では、主たる（コンテナ）パーツは、その埋め込まれたパーツのために、新たなフレームシェイプを決定し、その新しいシェイプをフレームに通知する。主たる（コンテナ）パーツは、コンテナフレームの座標空間から埋め込まれたフレームの座標空間へとシェイプを変換する役目を負っている。この新しいシェイプはフレームシェイプとして格納され、その埋め込まれたパーツにはステップ７０２でその変更が通知される。ステップ７０３では、その組み込まれたパーツは、自分自身を新しいフレームシェイプに調整する。例えば、テキストエディタがテキストのレイアウトのためのマージンをリセットするかもしれない。もし、使用中シェイプ、及び、アクティブシェイプがフレームシェイプのマージンと異なっているならば、その埋め込まれたパーツもまた、これら新しいシェイプを計算する。その時に、制御は、新しい使用中及びアクティブシェイプの通知を行なって、主たる（コンテナ）パーツに戻る。ステップ７０４では主たる（コンテナ）パーツは、新しいフレームシェイプに対応するためにフレームのファセットのクリッピングシェイプを変更し、その新しいクリッピングシェイプをファセットに通知する。
図７Ｂは、埋め込まれたパーツが新しいフレームシェイプを要求するときに発生する手順を図示している。この要求は、内容が正しくレイアウトされるために付加的な空間を必要とする組み込まれたパーツの内容の編集結果として、もたらされるかもしれない。ステップ７０５では、埋め込まれたパーツが新しいフレームシェイプを必要とするという決定がなされ、新しいシェイプのための表示フレームに要求が伝えられる。古いシェイプは、後で必要とされる場合に備えて、埋め込まれたパーツによって保存される。ステップ７０６では、表示フレームはその要求を主たる（コンテナ）パーツに伝え、そのパーツはその要求を主たる（コンテナ）パーツの座標空間でのものに変換する。ステップ７０７では、主たる（コンテナ）パーツは、その要求への返答方法を決定する。それは、望まれた形に対する要求を認めるかもしれないし、或は、より小さい形が要求されていると決定するかもしれない。フレームシェイプが一度決定されたなら、そのフレームのファセットに関するクリッピングシェイプもまた変形され、その許されたシェイプに関して、通知がフレームに与えられる。ステップ７０８では、表示フレームは、主たる（コンテナ）フレームの座標でのシェイプを埋め込まれたフレームでのシェイプに変換する。その新しい形は、フレームシェイプとして保存され、そのフレームシェイプは、埋め込まれたパーツに伝えられる。ステップ７０９では、埋め込まれたパートは、そのファセットの使用中シェイプとアクティブシェイプを変更して、新しいフレームシェイプに合わせるようにする。
図７Ｃは、主たる（コンテナ）パーツがファセットのクリッピングシェイプを変更する場合の手順を図示している。図６Ｂにおいて、例えば、クリッピングシェイプを変更する必要は、表示フレームによって囲まれた領域の一部が異なるパーツの内容に重なるようになってしまうようにするといったユーザの動作の結果として、発生するかもしれない。ステップ７１０では、主たる（コンテナ）パートは、ファセットのために新しいクリッピングシェイプを決定し、この新しいシェイプをそのファセットに通知する。ステップ７１１では、ファセットは、その通知を埋め込まれたパーツに伝える。これに応答して、ステップ７１２では、埋め込まれたパーツは、その内容が適切にレイアウトされるように変更することで、それ自身を新しいクリッピングシェイプに合わせる。
図７Ｄは、埋め込まれたパーツが、その使用中シェイプを変更する場合の手順を図示している。再び、そのような変更の必要は、ユーザによってそのパーツの内容を編集するときに、発生するかもしれない。ステップ７１３では、埋め込まれたパーツは、新しい使用中シェイプをその表示フレームのために取り上げ、この新しいシェイプをフレームに通知する。ステップ７１４では、その表示フレームは、主たる（コンテナ）パーツにその通知を伝える。これに応答してステップ７１５では、主たる（コンテナ）パーツは、それ自身を新しい使用中シェイプに合わせる。例えば、主たる（コンテナ）パーツは、その内容がレイアウトされる仕方を変更して、新しいシェイプにそって以前とは異なるようにするかもしれない。
図７Ｅは埋め込まれたパーツがその不透明シェイプを変更する手順を示した図である。この変更は、その埋め込まれたパーツの内容を編集する結果としてもたらされるかもしれない。ステップ７１６では、その埋め込まれたパーツはファセットについての新しい不透明シェイプを決定し、そのファセットにこの新しいシェイプを通知する。ステップ７１７では、そのファセットはこの通知を主たる（コンテナ）パーツに伝える。これに応答して、ステップ７１８では、その主たる（コンテナ）パーツはそれ自身を新しい不透明シェイプに合わせる。例えば、そのパーツはその内容が並べられている方法を変更したり、或は、新しいシェイプに合わせるために表示状態を変更する。
不透明シェイプが変更されるとき、同様に、対応するオーバラップシェイプを変更する必要があるかもしれない。例えば、図６Ｂと図６Ｃにおいて図示された不透明な楕円のシェイプが変更されたなら、オーバラップシェイプ８５もまた変更されねばならない。図７Ｆにおいて、ステップ７１９では、主たる（コンテナ）パーツは、ファセットに関して新しいオーバラップされたシェイプを選択し、そのファセットにこのシェイプを通知する。ステップ７２０では、そのファセットは埋め込まれたパーツにこの新しいシェイプを伝える。これに往応答して、ステップ７２１では、埋め込まれたパーツはその表示を調整して新しいシェイプを組み込めるようにする。次に、埋め込まれたパーツは主たる（コンテナ）パーツにその新しいオーバラップシェイプの内容を通知して、ステップ７２２で主たる（コンテナ）パーツが、例えば、青みがかったその表示を調整できるようにする。一般的に言って、オーバラップシェイプの内容がそのシェイプ自身の変更、或は、その内容の編集のために変更されたときにはいつでも、その埋め込まれたパーツはこの変更を主たる（コンテナ）パーツに伝え、その表示が適切に調整されるようにしなければならない。
従って、フレームとファセットは、埋め込まれたパーツと主たる（コンテナ）パーツとの間での必要とされる空間割り当てがすぐさま調整されることを可能にするデータ構造である。種々のシェイプと他の属性を用いることで、フレームとファセットとによって、その主たる（コンテナ）パーツや埋め込まれたパーツが、各々のパーツに他のパーツの内容や振る舞いに関しての詳細な情報をもつように要求することなく、その内容の表示のために効率的に利用可能な空間を利用できるようにしている。従って、複合文書が非常に柔軟に組み合わせられるのである。
パーツに関するエディタや他の操作子は、従来のコンピュータシステムにおけるアプリケーションプログラムに類似している。パーツの内容を表示し、そして、適切な場合には、その内容を変更修正するユーザインタフェースを与えるために必要な機能を提供しているのはソフトウェア要素である。それには、メニュー、コントローラ、ツールパレット、他のインタラクション技術が含まれるかもしれない。他のパーツを含むことが可能なパーツに関し、そのエディタは、その内容が表示される場合には、含まれるパーツを考慮する。例えば、テキストエディタは、そのパーツの内容を包み込み、それが組み込まれた図形パーツの使用中シェイプでは現れないようにする。
従来のアプリケーションで提供される機能を用いるために、プログラムが立ちあげられるか或はブートされねばならない。言い換えると、それは、システムのアクティブなメモリ、例えば、ＲＡＭ１６に格納されている必要がある。同じような方法で、パーツに関するエディタは、システムのメモリ或はＣＰＵがアクセス可能なメモリで実行されねばならない。これを行うために、エディタは、システムにインストールされている必要がある。例えば、それは、ハードディスク２０のフォルダに格納され、関連パーツがアクセスされたときに呼び出される。システム資源を浪費しないために、全てのインストールされたエディタは、常時システムメモリにはロードしなくとも良い。むしろ、それらは必要な時に、立ちあげることができる。例えば、パーツに関するエディタは、そのパーツが文書内にドラッグされたとき、その時が編集機能がおそらく必要な時であるので、立ちあげればよい。
エディタや他の操作子を立ちあげる過程は、図８のフローチャートに図示されている。その図を参照して説明すると、ステップ８０１では、システムは起動されるべきパーツを探す。このステップのアクセスは、マウスボタンが押されたときにいつでも生成されるイベントフラグに応答してなされる。或は、このアクセスは、スクリプトでのステップでも良い。一度、パーツの起動が検出されると、システムはそのパーツに関連するエディタを識別する（ステップ８０２）。この点、夫々のパーツは、それに関連した一定の特性を有している。これらの内の１つは、そのパーツに関するエディタを指示するポインタである。２つの他の特性は、例えば、それがテキストであるか、図形であるか、帳票であるかなどの、そのパーツのカテゴリと、そのタイプである。タイプは、そのパーツの内容に関するフォーマットの指標となる。例えば、１つのテキストパートは、それが同じカテゴリ（テキスト）に属していても、“ワードプロセッサＡ”タイプのもので有り得るし、別のタイプは“ワードプロセッサＢ”で有り得る。しばしば、パーツのタイプは、パーツの内容で用いられた最後のエディタによって決定される。一般的に言って、カテゴリとは、１セットのパーツのタイプであり、カテゴリが、与えられたパーツに適用可能であるパーツエディタやビューワのセットを決定する。パーツの特性は、その内容とともに保存される。例えば、全てのパーツの特性は、そのパーツの内容とともに格納される“特性シート”に含まれている。
一度、エディタ（或はパーツのタイプ）がステップ８０２で認識されたなら、システムはそのエディタが既にメモリ上で実行しているかどうかを判別する（ステップ８０３）。もし、そうであれば、システムはメインルーチンに戻り、ユーザからのさらなる動作を待つ。もし、エディタがまだ実行していないなら、システムはステップ８０２で識別されたエディタがシステムにインストールされているかどうかをチェックする（ステップ８０４）。もし、ステップ８０２で識別されたエディタがシステムにインストールされているなら、そのエディタはステップ８０５で立ちあげられ、パーツの内容を編集できるようにされる。
しかしながら、パーツエディタが現在システムにインストールされていないという場合も有り得る。この場合、ステップ８０４での決定は“ネガティブ”となり、これに応答して、システムはユーザがパーツのカテゴリに関して好適なエディタを選択したかどうかを判別する（ステップ８０６）。即ち、ユーザは、好適な、或は、デフォルトのエディタをパーツの夫々異なるカテゴリに関して選択することができる。従って、もし、ユーザが特定のワードプロセッサの機能コマンドに良く親しんでいるなら、そのプロセッサがテキストカテゴリの全てのパーツに関しての好適なテキストエディタとして選択される。もし、好適なエディタが選択されたなら、システムはその好適なエディタがシステムにインストールされているかどうかをチェックする（ステップ８０７）。そして、もし、そうであれば、ステップ８０８でそれは立ちあげられる。
もし、好適なエディタが指定されなかったなら、或は、その好適なエディタがシステムに存在しなかったなら、ステップ８０９では、パーツのそのカテゴリについて何かのエディタがシステムに存在するかどうかのチェックがなされる。もし、何のエディタもなければ、適切な警告がユーザに与えられ（ステップ８１０）、そして、システムはバックグラウンドルーチンに戻る。もし、そのカテゴリについて１つ以上のエディタが利用可能であれば、それらはリストアップされ、ユーザはその１つを選択するように促される（ステップ８１１）。ユーザによるその選択に応答して、選択されたエディタが立ちあげられ（ステップ８１２）、それは、パーツのそのカテゴリについての好適なエディタとして保管される（ステップ８１３）。システムは、それから、バックグラウンドルーチンに戻り、ユーザからのさらなる入力を待つ。
ユーザは、いつでも、例えば、適切なメニューコマンドを通して、パーツについて指定されたエディタを変更する機会が与えられている。このコマンドを実施することによって、ユーザは、パーツの特性の１つとして格納されているポインタを、システムにインストールされている異なるエディタの位置に変えるようにできる。メニューコマンドは、また、ユーザが、例えば、文書レベル（文書の全てのテキストパーツは同じエディタをもつ）やグローバルレベル（システムにわたる）といった異なるレベルで好適なエディタを選択できるように備えられている。ユーザがメニューにアクセスし、パーツのエディタを選択したり、変更したりするときにはいつでも、パーツのカテゴリについて適切なインストール済みのエディタのセットだけがユーザに選択させるために表示される。
もし望むなら、システムはメモリ上で実行しているエディタ各々が使用された最新時刻の記録を保存できる。もし、エディタが所定時間の間に使用されなかったなら、システムは自動的にそのエディタをメモリから消去し、これによってシステム資源の浪費を防いでいる。また、文書がクローズされたとき、その文書のパーツに関連したエディタもまた、それが現在オープンされている他のパーツ、例えば、他の文書に属していないならば、クローズされる。
パーツの自律的な性質のために、種々のパーツのコンテナは、決して特別なタイプに限定されるものではない。例えば、過去において、テキスト文書は特定のデータフォーマットである場合にのみ図形や他の内容を含むことができた。この種の制約は、本発明のアーキテクチュアによって取り除かれる。基本的に、どんなパーツも他のパーツに対しては、“ブラックボックス”となっている。主たる（コンテナ）パーツはその中に含む他のパーツの内部構造やセマティックスについての情報をもつ必要はない。主たる（コンテナ）パーツは、単に、それが含む他のパーツについてはラッパとしてのみ機能する。この種のアーキテクチュアは、複合文書のコンパイルや編集を非常に楽なものにしている。
さらに説明を続けるが、文書はデスクトップそれ自身の上に位置したアイコンによって表現される。図９Ａにおいて、図示されたデスクトップは、テキスト文書を含むウィンドウ８９を含んでいる。また、デスクトップ上にあるものとして、図形文書のアイコン９０がある。ウィンドウとアイコンの各々は、夫々のパーツを表現している。ウィンドウ内に位置したテキスト文書の場合には、パーツはフレームの形で表現されている。そして、そのフレームの境界はウィンドウ自身の境界と接している。本発明に従えば、アイコンによって表現されたパーツは、ダイアログボックスなどのようなものを介する必要なく、直接ユーザによって操作され、テキスト文書の中に置かれる。この操作は、この後、図９Ａ−図９Ｅ、及び、図１０Ａ−図１０Ｂのフローチャートを参照して説明する。
アイコン９０によって表現される図形文書をウィンドウ８９内のテキスト文書本体に置くためには、ユーザは、まず、そのアイコン上にマウスのポインタを位置づけ（ステップ１００１）、そして、マウスボタンを押してそのアイコンを選択する（ステップ１００２）。これに応答して、システムはそのアイコンの表示を高輝度にし、それが選択されたという事実を示す（ステップ１００３）。図９Ａの例では、アイコン９０の高輝度化は、そのアイコンの絵とタイトルの反転表示によって示されている。
そのマウスボタンを押さえたまま、ユーザはそのカーソルを図形パーツの所望の位置にまで移動させる（ステップ１００４）。図９Ｂに図示されているように、選択されたアイコンは、そのカーソルの動きに合わせて移動する。カーソルに合わせたアイコンの移動は、“ドラッグ”操作として知られている。そのアイコンが所望の位置にまでドラッグされると、アイコンのゴーストアウトライン９１がデスクトップ上には残り、その元々の位置を示す。或は、その代わりに、そのゴーストアウトラインがカーソルとともに移動して、ステップ１００５に図示されているように、完全な形のアイコン表示がその元々の位置に残っていても良い。
このアイコンのドラッグの間、システムはそのカーソルがウィンドウに入ったかどうかを判別する（ステップ１００６）。アイコン９０がウィンドウ８９の内側に位置すると、ウィンドウそれ自身が高輝度表示に変わる。そのシステムがドラッグされたアイコンがウィンドウ内のフレームに入ったことを検出すると（ステップ１００７）、そのフレームは適当に高輝度表示され、そのフレームがドラッグされたオブジェクトを受け付けたことを示す（ステップ１００８）。もし、そのフレームの外側にでてしまうまでそのアイコンがドラッグされ続けるなら、そのフレームの高輝度表示はなくなる（ステップ１００９）。逆に、複数のフレームが互いに内側に入れ子になっているなら、順々に入れ子になっているフレーム各々は、そのアイコンがその内側にドラッグされていくにつれ、アクティブになる。このようにして、システムは、アクティブになるフレームと、カーソル制御ボタンが放された場合にアイコンがドロップされる場所とに関してフィードバックを備えている。
一旦、ドラッグされたアイコンが所望の位置にきたなら、ユーザはマウスボタンを放す（ステップ１０１０）。この時点で、システムはそのパーツに関する好適な表示方法を決定する。例えば、それが、アイコンとして表示されるべきか、或は、フレームとして表示されるべきかなどである（ステップ１０１１）。図９Ａ−図９Ｅの例では、パーツが文書の中に置かれているので、その好適な表示方法は、フレームとなっている。従って、図９Ｃに示されているように、そのマウスボタンが放されたときに、そのカーソルの位置に対応する場所を左上隅として図形パーツはフレーム９６として表示される（ステップ１０１２）。また、図９Ｃに示されているように、そのフレームは、太い点線の境界で、また、サイズ変更ハンドルが付加されて表現され、それが、選択されたパーツであることを示している。
逆の操作が、そのパーツを文書からデスクトップに戻すために実行される。さらにその上、そのパーツをコピーし、その内容がその文書内に残るようにし、一方でそのパーツの別の表示がデスクトップに置かれるようにすることもできる。これを行うために、ユーザは、そのフレームをドラッグしながら、キーボード上のコントロール或はオプションキーのような機能キーを押す。マウスボタンの押下とともに同時に機能キーを押下することで、システムにコピー動作が実行されることを指示する。その時、マウスボタンを押さえつづけながら、図９Ｄに示すようにユーザがフレームをデスクトップまでドラッグする。ここで、図形パーツの内容９８がテキスト文書の中に残り、そのパーツの第２のコピーがフレーム９６に現れる。一旦、フレームがデスクトップ上の所望の位置に移動したなら、マウスボタンを放し、システムは再びパーツに関する好適な表示方法を決定する。この場合、そのパーツはデスクトップに位置しているのであるから、その好適な表示はアイコンである。従って、パーツのアイコン表示９０が、図９Ｅに示されるようにデスクトップに表示される。
或は、コピー操作が移動操作に優先しているなら、コントロールキーを押下することなくパーツをドラッグすることによってコピーがなされ、パーツが選択されドラッグされた時点で、そのコントロールキーが押下されたとき、移動操作を実行することができる。
本発明のシステムにおいて、パーツは直接にデスクトップと文書との間で操作されるのであるから、デスクトップのメタフォーはより良く保存される。即ち、ユーザは、ダイアログボックスなどに書き込むといった中間的な操作を行うことなく、デスクトップから所望のパーツをピックアップし、それを直接に文書の中に置く。その結果、新しい内容を文書内に持ち込むために必要な時間や数多くのステップを減らすことができる。
デスクトップと文書との間でのオブジェクトをドラッグしたりドロップする機能をシステムがインプリメントした場合の１つの方法に関するさらに詳しい情報は、１９９３年３月３日出願の、出願番号０８／０５８，２６０、発明者がロバート  Ｇ．ジョンソン  ジュニア、マーク  Ｌ．スターン、デビット  Ｌ．エバンス、名称が“コンピュータ制御表示システムにおけるアプリケーションプログラムとファイルシステムとの間の改良型データ操作装置と方法”という発明に説明されている。その開示内容はここで参照のために、本願に組み込まれている。
さて、上述のように、パーツ各々はある特性をもち、その特性はその好適な表示で参照される。この特性は、与えられたパーツ中に含まれるパーツが、従来よりフォルダと文書ウィンドウの両方に関係づけられている振る舞いを得るために、通常、アイコンとして表示されるか、或は、フレームとして表示されるかを決定する。一般的に言って、全てのパーツは、デスクトップパーツか或は文書パーツかに分類される。デスクトップパーツは、フォルダ、プリンタ、或は、メールボックスのような他のパーツを含むことか、或は、そこで動作することが、その目的である。デスクトップパーツに含まれるパーツに関する好適な表示は、アイコンのようなものである。文書パーツは、最終的には、テキスト文書や図形文書のような用紙或は他のハードコピー上にプリントされることが、その目的となるものである。文書パーツに含まれるパートに関する好適な表示は、フレームのようなものである。従って、図９Ａ−図９Ｃに図示されている動作を参照すると、図形パーツは、それがデスクトップにある時には、アイコンとして表示され（図９Ａ）、しかし、それが文書の中に置かれるときにはフレーム表示に変更される（図９Ｃ）。同様に、そのパーツは文書からデスクトップに移動すると、その表示はフレームからアイコンに変化する（図９Ｃ−図９Ｅ）。もちろん、ユーザには、例えば、キーボードやメニューコマンドを通して、どんなパーツの表示でも変更できるオプションが備えられている。
上述したように、ステーショナリパーツは、それが、ただアイコンで表示されるという点で異なる。それは、１つのデスクトップパーツから別のパーツに移動できる。従って、例えば、フォルダ内の普通のパーツのように扱うことができる。しかしながら、ステーショナリパーツを文書パーツに移動させようと試みても、ステーショナリパーツのコピーが代わりに、文書パーツに置かれ、そのコピーがフレームとして現れる。
全体としてパーツを移動させることに加えて、ユーザはパーツの内容のいくつか或は全てを選択し、移動できる。パーツ各々は、それ固有のタイプの内容を有している。例えば、テキストパーツはテキスト文字を含んでいるし、図形パーツは図形要素などを含んでいる。ユーザは、１つのパーツの固有の内容のいくつか、即ち、ドナーパーツを選択し、これらを異なるパーツ、即ち、目的とする行き先のパーツに移動したりコピーしたりできる。この種の動作が発生するときに３つのシナリオが有り得る。即ち、（１）ドナーパーツと行き先パーツとは両方とも同じ固有のタイプのデータを含んでいる。（２）ドナーパーツと行き先パーツとは異なるタイプのデータを含むが、行き先パーツはドナーパーツから受信するデータのカテゴリを組み入れることができる。（３）ドナーパーツと行き先パーツとは異なるタイプのデータであり、行き先パーツはドナーパーツから受信するデータのカテゴリを組み入れるようには調整されていない。これら３つの場合の夫々について、図示した例を参照して以下に説明する。
最初のシナリオの場合、ドナーパーツと行き先パーツとは同じタイプのパーツである。例えば、それらの固有の内容は、テキスト文字であるかもしれず、それらは、同じワードプロセッサによって生成されたかもしれない。図１１Ａは、２つのテキスト文書１００、１０２が夫々、デスクトップ上の２つのウィンドウにある例について図示している。左側の文書１００の文字の一部１０４が選択されており、このことが反転表示で示されている。この選択されたテキストは、右側のウィンドウの文書１０２にコピーされることになっている。従って、ユーザが機能キーを押しながらマウスボタンを押下し、もし必要なら、選択されたテキスト１０４のコピー１０５を図１１Ｂに示されているように、右側の文書１０２にドラッグしてもってくる。一旦、カーソルが第２の文書１０２に入ると、この文書は高輝度表示になる。左側の文書１００は今やアクティブではないので、それは文書１０２の後ろに置かれ、そのタイトルバーはもはや高輝度表示ではなくなる。
一旦、コピーされたテキストが所望の位置にくれば、ユーザはマウスボタンを放し、図１１Ｃに図示されているように、その文書にそのテキストを置く。第１の文書から第２の文書にコピーされたテキストは、第２のテキストの固有の内容と同じタイプであるので、そのテキストは第２の文書の内容に組み込まれる。言い換えると、選択されたテキストが一旦、第２の文書に置かれると、それはもはやそれ自身の独立した主体性をもたなくなる。むしろ、行き先の文書の固有の内容の一部となる。従って、行き先の文書の元々の内容のために用いられたのと同じエディタで、それは編集できる。
上述した第２のシナリオの場合、ドナーパーツと行き先パーツの固有の内容は異なるタイプであるが、行き先パーツはドナーパーツに含まれるカテゴリの情報を取り扱うことができる。図１２Ａにおいて、テキストエディタの能力を十分に用いて生成された文書１００から選択されたテキスト１０６は、ダイヤログボックス１０８にコピーされることになっている。この例において、選択されたテキスト１０６は、ある形式に合わせられる。即ち、それは太字の属性をもっており、また、イタリックフォントとなっている。しかしながら、ダイヤログボックスはだた普通のテキストを取り扱うだけである。
前の例と類似した方法で、選択されたテキスト１０６のコピーがテキスト文書からダイヤログボックスにドラッグされる。そのカーソルがダイヤログボックスに入ると、それは図１２Ｂに図示されているように表示の最上部に移動する。一旦、選択されたテキストのコピーが、ダイヤログボックスの適切な位置にくると、ユーザはマウスボタンを放し、これを適切に“ドロップ”する。この時点で、システムはそのドロップされたテキストがダイヤログボックスの固有の内容とは同じタイプではない、即ち、普通の書式ではなくある形式をもっている、ことを判別する。しかしながら、それは、テキストであるので、互換性のあるカテゴリに属している。従って、システムはあるスタイルをもったテキストを、そのスタイルの属性を取り除くことによって、普通のテキストに変換し、それから、それを、図１２Ｃに示されているように、固有の内容の一部としてダイヤログボックスの中に組み入れる。さて、オリジナルの文書１００で２行にわたってラップされているコピーされたテキストは、例えば、選択されたテキストのコピーには存在したキャリッジリターンを除去することで、ダイヤログボックス１０８の中で変換過程の一部として１行に再ラップされる。
上述の第３のシナリオの場合には、ドナー文書の固有の内容は、行き先パーツと比較して、異なるタイプであり、互換性のないカテゴリにある。図１３Ａにおいて、テキスト文書１００から選択されたテキスト１０４は、図形文書１１０にコピーされることになっている。再び、ユーザは、テキスト文書１００から選択されたテキストのコピー１０５を図形文書１１０にドラッグする。そのカーソルが行き先文書に入るや否や、図形文書１１０は高輝度表示となる（図１３Ｂ）。そのテキストのコピー１０５が一旦、適切な位置にくれば、ユーザはマウスボタンを放し、そのテキストを図形文書にドロップする。この場合、選択されたもの、即ち、テキストのカテゴリは、行き先文書の固有の内容、即ち、図形要素とは、互換性をもっていない。従って、システムはドナー文書と同じタイプ（テキスト）の新しいパーツを生成し、選択されたもののコピーをそのパーツに挿入し、行き先文書にその新しいパーツを組み込む。このようにして、新しいパーツは、行き先文書の中でそれ自身の独自性を保持することなる。それは、それ自身の固有の内容、即ち、テキスト文字と、それに関連したテキストエディタとを有するようになる。その新しい生成物は、別の分離したパーツであるので、図形文書内には、図１３Ｃに図示されるように、フレーム１１２として留まる。フレーム１１２は、そのフレームの回りの境界によって図示されてるように、選択されたオブジェクトとして留まる。
選択されたテキストのコピーが、テキスト文書から図形文書に移動するとき、デスクトップのメニューバー１１４は、図１３Ａと図１３Ｂとに図示されてるように、テキスト文書に関連したコマンドを留めている。しかしながら、そのコピーされたテキストが図形文書に一旦、ドロップされたなら、図１３Ｃに示されているように、メニューバー１１４で利用可能なコマンドはテキストエディタに合わせたものから、図形エディタに合わせたものに切り替わる。さらに、図形エディタに関連したツールバー１１６がデスクトップに現れる。なぜなら、図形文書が今やアクティブな文書であり、その文書に選択されたパーツが位置しているからである。しかしながら、もし、ユーザがフレーム１１２の中にカーソルを位置させ、文字や単語を選択するなら、ツールバー１１６が取り除かれ、メニューバー１１４のコマンドがテキストの編集のために適切なものに変わる。
要約すれば、１つの文書から他の文書に内容が移動するとき、システムはその内容が行き先文書にその固有内容の一部として組み込まれるかどうか、或は、行き先文書の中で自律的なパーツとして組み込まれねばならないかを判断する。このプロセスを実行するシステムの動作が、図１４のフローチャートには図示されている。ユーザが１つのオブジェクトを選択し、それを意図する行き先にドラッグした後に、システムは選択されたオブジェクトが元々存在したパーツのタイプを判別する（ステップ１４０１）。例えば、選択されたオブジェクトは、普通のテキストであるかもしれないし、ある書式のテキストであるかもしれないし、図形要素などであるかもしれない。夫々のパーツについて格納されている特性の１つは、それがどのタイプのパーツであるかを識別し、そして、そのパーツから移動される或はコピーされるオブジェクト各々もまた、その識別されたタイプであるとして認識される。パーツのタイプが識別された後、そのタイプが行き先文書のタイプと同じであるかどうか判定される（ステップ１４０２）。もし、そうであれば、選択された内容は、行き先の文書に組み込まれるか或は挿入され、その固有の内容の一部となる（ステップ１４０３）。もし、選択された情報が、行き先文書のタイプと同じではない場合、システムはそれが同じカテゴリに属しているかどうかを判別する（ステップ１４０４）。例えば、もし、選択された情報が、ある書式スタイルをもったテキストであり、その行き先の文書では普通のテキストであれば、それらは異なるタイプではあるが、同じカテゴリに属している。もし、選択された情報が行き先文書と同じカテゴリに属していれば、システムは選択された情報を行き先文書と同じタイプに変換する（ステップ１４０５）。例えば、あるワードプロセッサで生成されたテキストが、異なるワードプロセッサによって採用されているフォーマットに変換される。或は、図形文書はあるファイルフォーマットから別のものに変換される。一旦、その変換が完了すると、選択された情報は、行き先文書の内容に組み込まれる（ステップ１４０３）。もし、その選択された情報が、行き先文書と同じカテゴリに属していなければ、新しいパーツが、その選択された情報がその内容となるように生成され（ステップ１４０６）、そして、その新しいパーツがフレームとして行き先文書に組み込まれる（ステップ１４０７）。
パーツの自律的な性質のため、パーツは、種々のユーザの間での情報交換を非常に容易にする。文書、例えば、ルートパーツは、幾つかの他のパーツを含んでいる。ユーザはその文書全体を取り出すことができ、それを眺め、所望ならその個々のパーツを編集できる。或は、個々のパーツは夫々がデスクトップに置かれ、多くのユーザによって共有されるが、一方、その文書へのアクセスは全体として保護される。
これらのことをさらに詳しく述べると、パーツ１つ１つは限定されたアクセス権で保護される。例えば、幾つかの異なるパーツを含む文書は多くの異なる種類の人々への配布が目的となっていることもある。それらのパーツのいくつかは、ある種類の人々には公開したくはない機密情報を含んでいるかもしれない。本発明の主旨によれば、これら個々のパーツは、限定されたアクセス権で保護される。そして、その内容は適切なパスワードや或は他のアクセス手段を有した人々によってのみ回覧される。言い換えると、アクセス制限機能はパーツの別の特徴的な性質である。
図１５において、図示されている文書１１８は、多くのパーツから構成され、そのパーツ１つ１つは、破線で示されたフレーム内に含まれている。パーツの１つ１２０へのアクセスは制限されている。例えば、そのパートは機密の帳票データを含んでいるかもしれない。このパーツへのアクセスが制限されているので、その内容はそのフレームには表示されない。むしろ、そのフレームは不透明となっており、キー１２２のような適切なシンボルを表示し、パスワードなどのようなものがそれにアクセスするためには必要であることを示す。
文書１１８はシステムのユーザによってオープンされ、その概要レイアウトと機密ではないパーツの情報を見ることができる。しかしながら、機密のパーツ１２０の中に含まれているデータは、そのパートにアクセスする適切なパスワードを有した人達だけが見ることができる。そのような人がそのパートを選択すると、その不透明カバーが取り去られ、その内容が表示される。
その内容はアクセスされないが、制限されたパーツの他の特性は、そのパスワードを有していないシステムユーザに対しても、やはり、利用可能である。例えば、文書中のそのパーツの位置は変更できるし、それを選択し、そのフレームの境界にあるサイズ変更ハンドルを移動させて、そのサイズを変更することもできる。同じように、そのアクセスが制限されたパーツはどこにでもコピーすることができる。しかしながら、そのアクセス制限は、どこにそれがコピーされようとも、そのコピーされたものにも付加されたままである。
制限されたアクセス権をもつパーツは、それに埋め込まれる他のパーツをもつことができる。その結果、あるユーザが適切なパスワードを有しておらず、パーツの内容にアクセスするならば、それに含まれる他のパーツもまた、制限されて見る事はできない。一旦、パスワードが受け付けられたなら、そのパスワードは自動的に全ての組み込まれたパーツにも伝えられ、それらの制限が解除されて、ユーザの手を煩わせる事なく見る事ができる。しかしながら、もちろん、その埋め込まれたパーツがそれに関連した異なるパスワードをもつことはでき、たとえユーザが１つの制限があるパーツにアクセスできようとも、それに含まれる他のパーツへのアクセスはさらに制限されていることもある。
従って、本発明は文書内レベルでは文書の内容へのアクセスを制限できる。そのアクセス権はパーツ単位に特定されたものであり、そのパーツのデータがどこに位置しているかに関わらず、有効である。この方法によれば、文書全体にわたる広範なアクセス制限を課すことなく、文書中で特権を与えられていないパーツはユーザによるアクセスが可能となる。複数の著者をもつ大きな文書において、パーツ毎にアクセス制限を設けることができることで、著者たちが文書を概観し協力して作業を行うときなどに、より融通性の効いたものになる。
パーツの操作と複合文書のコンパイルを容易にするために、“パーツビン”と呼ばれる特別なタイプのパーツが備えられる。パーツビンの一例を図１６に示す。図１６において、文書がウィンドウ１３０でオープンされ、その文書に対するパーツビン１３２がウィンドイドと言われる別の領域に現れている。そのウィンドイドは、ウィンドウ１３０と関係をもち、その結果、もしその文書が画面の前面にきたならば、そのウィンドイドもそれとともに画面の前面にくる。
パーツビン１３２は本質的には他のパーツに関するソースとして機能するユーザ定義パレットである。それは他のパーツを含むのみであり、固有の内容はもたない。パーツビンの中にあるパーツは、“冷凍された”という特性をもっている。即ち、カーソルがフレーム内にある間にユーザがふつうにマウスボタンを押すと、カーソルの位置にある最も小さな要素が選択される。図１６において、通常の場合、もしカーソルが帳票フレーム１３４の１つのセルに置かれ、そこでカーソル制御ボタンが押されると、そのセルの内容が選択される。しかし、ユーザは、異なったオブジェクト、例えば、実際に選択されたセルを含む帳票全体を選択することを意図していたのかもしれない。そうするために、ユーザは、カーソルをフレーム内の他の領域、しかし、所望のパーツ内に埋め込まれた他のパーツの外側に移動させなければならない。しかしながら、このような要求はパーツビン内のパーツを冷凍（フリーズ）することによってなくすことができる。この場合、ユーザはパーツのどこにカーソルが存在していてもマウスをクリックし、パーツ全体を選択することができる。従って、パーツビン内に位置するパーツは、たとえそれが他の埋め込めれたパーツを含むフレームとして表現されていても、全体として取り扱われる。
パーツビンのパーツは、その内容が変えられないようにロックすることもできる。パーツビンのロックされたときの特性は、ウィンドイドのヘッダにあるパッドロック記号１３６によって表される。ユーザがもし、ロックされたパーツビンの外にあるパーツをドラッグしようと試みても、そのパーツのコピーが自動的にとられ、その元々のパーツはパーツビンの中に残り、これによって、ビンの内容の完全性が保証される。ユーザがパーツビンをカスタマイズできるように、パーツビンのロックは、例えば、パッドロック記号１３６をクリックすることによって解除することができ、そして、そのパーツを変更する。
本発明のこの特徴を示す別の実施例では、文書毎に付随のパーツビンをもたせるようにできる。この“文書パーツビン”により、標準的なパーツセットを文書に結合させておくことができ、これによって、その文書のユーザはすぐに利用可能なパーツをもつことができる。コマンドを起動することで、ユーザはその文書パーツビンをウィンドイド等に表示させることができる。付随のパーツビンをもった文書はそれに制限的な特性をもつことができる。これによって、その文書内に置くことができるパーツだけが、そのビン内のものとなる。その制限的な特性をもった文書に他のパーツを置こうと試みても、それは拒否される。この特性は、文書のユーザがある一定のパーツとだけ作業ができることを保証し、これによって、文書に関連した訓練やサポートやメンテナンスを削減することができる。例えば、データ入力フォームに関するパーツビンは、そのフォームのデータを入力するために必要なパーツだけをもつことになる。その結果、訓練を受けていないユーザが、もしかすれば正しく用いることができない予想もしていないパーツに出くわすことはない。パーツに関するこの制限によって、組織が文書の内容を制御することが可能になる。
以上説明したユーザの利点に加えて、本発明のアーキテクチュアは、ソフトウェアの開発者にも益をもたらす。例えば、帳票プログラムは基本的には数字を処理するように設計されている。そして、この分野で経験を積んだ開発者はこの機能に関しては最も効率的に時間を用いることができる。しかしながら、そのユーザは公式や数値の中でもテキストを編集できなければならないので、テキストエディタも帳票アプリケーションの必要なパーツである。従来のプログラムでも必要ではあるが、テキストエディタのプログラムを書かねばならないことは帳票プログラムの開発者にとってやっかいなことでる。しかしながら、ユーザが選択したテキストエディタが帳票における別々のパーツとして利用可能である環境では、帳票開発者はもはやテキストエディタを書く必要はない。その開発者は自分の時間を帳票プログラムのより本質的な部分に専ら用いることができ、以前には帳票の数値処理機能に付随した他の機能を開発するために用いていた時間のために利用することができなかった時間を用いて、特別な機能を組み込むことができるようになる。
さらに、ソフトウェアの開発者は次に新しい機能を付加することや存在するバグを修正することを決断した場合には、その仕事はより簡単なものとなる。特に、開発者はプログラムの帳票部分にのみ注意を集中すればよく、テキストエディタのような付随コンポーネントに注意を払う必要はない。
さて本発明は、そこにある原理の理解を容易にするためにここで説明した特定の実施例に限定されるものではない。例えば、テキストや図形は文書のコンポーネントを表現するために例示のために用いられたものである。従って、パーツのコンポーネントはこれら２つの特定の範疇に限定されるものではない。むしろ、パーツの内容は、ビデオ、音、アニメーション等を含むどんな種類の媒体でも良い。本発明の範囲には、前述の実施例ではなく、以下に添付した請求の範囲によって規定され、その請求の範囲の意味するところと一致する全ての同等物が含まれるものである。
【図１】
0003950937.tif 000002
【図２Ａ】
0003950937.tif 000003
【図２Ｂ】
0003950937.tif 000004
【図３Ａ】
0003950937.tif 000005
【図３Ｂ】
0003950937.tif 000006
【図４】
0003950937.tif 000007
【図５】
0003950937.tif 000008
【図６Ａ】
0003950937.tif 000009
【図６Ｂ】
0003950937.tif 000010
【図６Ｃ】
0003950937.tif 000011
【図７Ａ】
0003950937.tif 000012
【図７Ｂ】
0003950937.tif 000013
【図７Ｃ】
0003950937.tif 000014
【図７Ｄ】
0003950937.tif 000015
【図７Ｅ】
0003950937.tif 000016
【図７Ｆ】
0003950937.tif 000017
【図８】
0003950937.tif 000018
【図９Ａ】
0003950937.tif 000019
【図９Ｂ】
0003950937.tif 000020
【図９Ｃ】
0003950937.tif 000021
【図９Ｄ】
0003950937.tif 000022
【図９Ｅ】
0003950937.tif 000023
【図１０Ａ】
0003950937.tif 000024
【図１０Ｂ】
0003950937.tif 000025
【図１１Ａ】
0003950937.tif 000026
【図１１Ｂ】
0003950937.tif 000027
【図１１Ｃ】
0003950937.tif 000028
【図１２Ａ】
0003950937.tif 000029
【図１２Ｂ】
0003950937.tif 000030
【図１２Ｃ】
0003950937.tif 000031
【図１３Ａ】
0003950937.tif 000032
【図１３Ｂ】
0003950937.tif 000033
【図１３Ｃ】
0003950937.tif 000034
【図１４】
0003950937.tif 000035
【図１５】
0003950937.tif 000036
【図１６】
0003950937.tif 000037