(57)【要約】【課題】　データがアウトライン構造を含まない場合、データをアウトライン認識アプリケーションへインポートし、およびデータ中に公開することができる、ビジュアル構造のしるしに基づいたデータ中にアウトライン構造を作成するためのメカニズムを提供すること。【解決手段】　ある態様において、データをアウトラインアプリケーションへインポートするために選択する。そのデータは、例えば、相対的なレベルの情報または親／子の関係の情報等のように、アウトライン構造を持っていない。しかしながら、そのデータは、例えば、マークアップ属性またはタブ文字等のような、ビジュアル構造のしるしを含む。アウトラインアプリケーション（またはある関係したコンポーネント）は、選択されたデータをビジュアル構造のしるしに基づいたアウトライン構造化されたデータへ変換する。【選択図】　図７
2004133943.tif 000002
【特許請求の範囲】
【請求項１】
　データを第１フォーマットから第２フォーマットへ変換するためのコンピュータが実施する方法において、
　ビジュアル構造のしるしを含む第１フォーマット中のデータを受け取ることであって、前記ビジュアル構造のしるしは、前記データを含むドキュメントに関する前記データの部分の位置を記述していること、および、
　前記ビジュアル構造のしるしに基づいたアウトライン構造を含むように前記データを変換することであって、前記アウトライン構造は複数のレベルを含み、前記データの少なくとも一部分は、前記複数のレベルのうちの１つと関連していること
　を備えることを特徴とする方法。
【請求項２】
　前記データを受け取ることは、前記データに伴うペースト操作の指示を受け取ることをさらに備えることを特徴とする請求項１記載の方法。
【請求項３】
　前記ペースト操作は、非アウトラインアプリケーションから前記データをコピーすること、およびアウトラインアプリケーションに利用可能な前記データを作成することを備えることを特徴とする請求項２記載の方法。
【請求項４】
　前記アウトラインアプリケーションは、前記アウトラインアプリケーションによって維持されるドキュメント内で、データの部分にレベルを割り当てる能力を含むことを特徴とする請求項３記載の方法。
【請求項５】
　前記ビジュアル構造のしるしは、テキストフォーマッティングに関連した文字を備えることを特徴とする請求項１記載の方法。
【請求項６】
　前記データは、テキストのデータを備え、および前記文字は、タブ文字を備えることを特徴とする請求項５記載の方法。
【請求項７】
　前記データを変換することは、前記データの前記少なくとも一部分をレベルへ変換することであって、前記レベルの値は、前記少なくとも一部分に関連したタブ文字についての情報に基づいて決定されることを特徴とする請求項６記載の方法。
【請求項８】
　前記タブ文字についての情報は、前記少なくとも一部分に関連した多数のタブ文字を備えることを特徴とする請求項７記載の方法。
【請求項９】
　前記ビジュアル構造のしるしは、前記データの要素の属性を備えることを特徴とする請求項１記載の方法。
【請求項１０】
　前記属性は、前記ドキュメントに関する前記要素の一部分に影響するタグのプロパティを備えることを特徴とする請求項９記載の方法。
【請求項１１】
　前記プロパティは、マージンプロパティ、インデントプロパティ、およびタブカウントプロパティのうちの１また複数を備えることを特徴とする請求項１０記載の方法。
【請求項１２】
　データを第１フォーマットから第２フォーマットへ変換するためのコンピュータ実行可能命令を有するコンピュータ可読媒体において、
　選択されたデータをアウトライン認識アプリケーションによって維持されたドキュメントへペーストするための通知に応答し、前記選択されたデータは、アウトライン構造を持たず、
　　前記選択されたデータを評価してデータの複数の部分を識別する命令であって、データの各部分は関連付けられたビジュアル構造のしるしを有する命令と、
　　データのその部分に対応する前記しるしに基づいた前記データの複数の部分の各々へレベルを割り当てる命令と
　を備えることを特徴とするコンピュータ可読媒体。
【請求項１３】
　前記ビジュアル構造のしるしは、タブ文字を備えることを特徴とする請求項１２記載のコンピュータ可読媒体。
【請求項１４】
　前記レベルを前記データの複数の部分の各々へ割り当てる命令は、前記データの部分の各々に関連した多数のタブ文字を決定する命令と、前記タブ文字の数に基づいた前記レベルを割り当てる命令と
　を備えることを特徴とする請求項１３記載のコンピュータ可読媒体。
【請求項１５】
　前記データの部分は、マークアップデータのタグ化された部分を備え、および前記ビジュアル構造のしるしは、各タグ化された部分の属性を備えることを特徴とする請求項１２記載のコンピュータ可読媒体。
【請求項１６】
　前記レベルを前記データの複数の部分の各々へ割り当てる命令は、データの部分が、前記データを含むドキュメントに関してインデントされた総計の量を決定する命令と、前記総計の量に基づいて前記レベルを割り当てる命令とを備えることを特徴とする請求項１５記載のコンピュータ可読媒体。
【請求項１７】
　各部分に対する相対的なレベルに基づいた前記データの部分の組へ親／子の関係を割り当てる命令をさらに備えることを特徴とする請求項１２記載のコンピュータ可読媒体。
【請求項１８】
　データの他の部分が、データの第１部分の前にあり、かつより高いレベルである場合、前記親／子の関係を、前記データの第１部分を前記データの他の部分の子として識別することによって作成することを特徴とする請求項１７記載のコンピュータ可読媒体。
【請求項１９】
　データを第１フォーマットから第２フォーマットへ変換するためのコンピュータ実行可能命令を有するコンピュータ可読媒体において、
　アウトラインドキュメントの中のデータを他のアプリケーションと共有するために選択したという通知を受信する命令であって、前記選択されたデータは、前記データの部分の相対的なレベルを規定するアウトライン構造を含んでいる命令と、
　前記選択されたデータの各レベルでビジュアル構造のしるしを挿入することによって、前記アウトライン構造をビジュアル構造へ変換する命令と
　を備えることを特徴とするコンピュータ可読媒体。
【請求項２０】
　前記ビジュアル構造のしるしは、タブ文字を備えることを特徴とする請求項１９記載のコンピュータ可読媒体。
【請求項２１】
　前記アウトライン構造を変換する命令は、多数のタブ文字を前記選択されたデータの部分のレベルに基づいた前記選択されたデータの部分へ挿入する命令を備えることを特徴とする請求項２０記載のコンピュータ可読媒体。
【請求項２２】
　前記ビジュアル構造のしるしは、マークアップタグの属性を備えることを特徴とする請求項１９記載のコンピュータ可読媒体。
【請求項２３】
　前記マークアップタグの属性は、前記選択されたデータを含むドキュメントの端に関する、前記マークアップタグのコンテンツの部分を規定するプロパティを含むことを特徴とする請求項２２記載のコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
　コンピュータシステムは、様々な種類のドキュメントの作成および処理のための手段として、広く受け入れられてきた。例えば、ユーザは、通常、ワードプロセシングドキュメント、描画ドキュメント、表計算ドキュメント、データベースドキュメント等を作成する。ワードプロセシングドキュメントの中でさえ、様々なタイプがあり得る。例えば、デスクトップパブリッシングアプリケーションのような、幾つかのワードプロセシングアプリケーションは、リッチフォーマットおよびページレイアウト機能を提供するように設計されているかもしれない。他のワードプロセシングアプリケーションは、単純なテキストエディタとして設計されているかもしれない。さらに、他のワードプロセッサは、テキストのデータまたは注記から有用な情報を作成するためのツールとして設計されているかもしれない。
【発明の開示】
【発明が解決しようとする課題】
【０００２】
　多くのソフトウエアの設計者が直面している問題のうちの１つは、種々の、これらタイプのアプリケーションの間で情報を共有するという消費者の要望である。多くの場合、情報を共有することは、比較的簡単なことである。例えば、あるアプリケーションから類似の機能を共有する他のアプリケーションへデータをコピーするには、トランザクションを支援するためのデータの拡張変換を必要としない。しかしながら、他の状況では、あるアプリケーションと、基本的に異なった特徴を有する他のアプリケーションとの間でデータを共有すると、設計者に対して問題が生じる。例えば、ワードプロセシングアプリケーションからのデータを、データベースアプリケーションへ簡単にはコピーおよびペーストすることはできない。なぜならば、データベースアプリケーションは、そのデータを基本的にワードプロセシングアプリケーションとは異なる方法で維持するからである。多くのこのような状況において、単にデータを共有することは比較的簡単であるかもしれないが、意味のある方法でデータを共有することは非常に困難である。しかしながら、ソースアプリケーションとターゲットアプリケーションとの間のデータの互換性のために努力することは、大抵のソフトウエア設計者の目標であり続ける。
【課題を解決するための手段】
【０００３】
　本発明は、データがアウトライン構造（ｏｕｔｌｉｎｅ　ｓｔｒｕｃｔｕｒｅ）を含まない場合、データをアウトライン認識アプリケーション（ｏｕｔｌｉｎｅ　ａｗａｒｅ　ａｐｐｌｉｃａｔｉｏｎ）にインポートするためのメカニズム、およびデータ中に存在し得るビジュアル構造（ｖｉｓｕａｌ　ｓｔｒｕｃｔｕｒｅ）のしるし（ｉｎｄｉｃｉａ）に基づいたデータの中にアウトライン構造を作成するためのメカニズムに志向している。ある態様において、データを、アウトラインアプリケーションへインポートするために選択する。そのデータは、例えば、相対的なレベルの情報または親／子関係の情報等の、アウトライン構造を欠いている。しかしながら、そのデータは、例えば、マークアップ属性またはタブ文字等の、ビジュアル構造のしるしを含む。アウトラインアプリケーション（またはある関連したコンポーネント）は、選択されたデータをビジュアル構造のしるしに基づいた、アウトライン構造化されたデータへ変換する。一例として、アウトライン構造中のレベルを、選択されたデータの部分（例えば、パラグラフ）に関連した多数のタブ文字に基づかせることができる。他の例において、アウトライン構造中のレベルを、そのデータの部分（例えば、タグまたは要素）に関連したマークアップで記述された集合インデントに基づかせても良い。
【発明を実施するための最良の形態】
【０００４】
　本発明は、第１フォーマットと第２フォーマットとの間でデータを処理するためのメカニズムを提供する。ここで、第１フォーマットは、アウトライン構造を含まず、第２フォーマットはアウトライン構造を含むものとする。そのメカニズムは、データを非アウトラインフォーマットから、アウトライン構造であるべきものを示唆するそのデータに含まれるしるしに基づいたアウトラインフォーマットへ変換する。例えば、データが“タブ”フォーマッティングを含んでビジュアル構造を提供する場合、そのメカニズムは、タブフォーマッティングを解釈することによってアウトライン構造を作成することができる。データがマークアップフォーマッティングを含む場合、そのメカニズムは、マークアップフォーマッティング内の情報を解釈することによってアウトライン構造を作成することができる。逆に、そのメカニズムは、アウトライン構造をタブフォーマッティングへ変換することによってアウトライン化されたデータをテキストのデータへ変換することができる。
【０００５】
　図１は、本発明の例示的な実装で用いても良いコンピューティングデバイスを例示する。図１に関して、本発明を実施するためのある例示的なシステムは、例えば、コンピューティングデバイス１００等のような、コンピューティングデバイスを含む。非常に基本的な構成において、コンピューティングデバイス１００は、一般的に、少なくとも１つのプロセシングユニット１０２とシステムメモリ１０４とを含む。コンピューティングデバイスの正確な構成およびタイプに依存して、システムメモリ１０４は、（ＲＡＭのような）揮発性、（ＲＯＭ、フラッシュメモリ等のような）不揮発性、またはそれら二つの組み合わせであっても良い。システムメモリ１０４は、一般的に、オペレーティングシステム１０５、１また複数のプログラムモジュール１０６を含み、プログラムデータ１０７を含んでも良い。コンピューティングデバイス１００のこのような基本的な構成を、破線１０８内のそれらコンポーネントによって、図１に例示する。
【０００６】
　コンピューティングデバイス１００は、更なる特徴および機能を有することができる。例えば、コンピューティングデバイス１００は、また、例えば、磁気ディスク、光学ディスク、またはテープ等のような、データストレージデバイス（着脱可能および／または着脱不可）をさらに含んでも良い。このような、追加的なストレージを、着脱可能なストレージ１０９および着脱不可なストレージ１１０によって図１に例示する。コンピュータストレージメディアは、揮発性および不揮発性、着脱可能および着脱不可なメディアを含むことができ、それらメディアは、例えば、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータ等のように、情報をストレージするためのあらゆる方法または技術で実装されるものである。システムメモリ１０４、着脱可能なストレージ１０９および着脱不可なストレージ１１０は、全て、コンピュータストレージメディアの例である。コンピュータストレージメディアは、それらに限定されないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ，フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光学ディスク、磁気カセット、磁気テープ、磁気ディスクストレージまたは他の磁気ストレージデバイス、またはあらゆる他のメディアであって、所望の情報を格納するのに使用できるものおよびコンピューティングデバイス１００によってアクセスできるもの、を含む。あらゆるこのようなコンピュータストレージメディアは、デバイス１００の一部とすることができる。
【０００７】
　コンピューティングデバイス１００は、また、例えば、キーボード１２２、マウス１２３、ペン、ボイス入力デバイス、タッチ入力デバイス等のような、入力デバイス１１２を有することができる。例えば、ディスプレイ、スピーカ、プリンタ等のような、出力デバイス１１４を、また、含んでも良い。これらのデバイスは、当技術分野において良く知られており、ここで詳細に説明される必要はない。
【０００８】
　コンピューティングデバイス１００は、また、通信接続１１６を含むことができ、この通信接続１１６によって、そのデバイスは他のコンピューティングデバイス１１８と、例えば、ネットワークを介して、通信することができる。通信接続１１６は、通信メディアの一例である。通信メディアは、一般的に、コンピュータ可読命令、データ構造、プログラムモジュール、もしくは、例えば、キャリア波または他の移送メカニズムのような、変調されたデータ信号中の他のデータによって構成されることができ、およびあらゆる情報配信メディアを含む。用語“変調されたデータ信号”は、信号中の情報をエンコードする方法で設定または変更されたその特性のうちの１また複数を有する信号を意味する。例であって制限ではないが、通信メディアは、例えば、有線ネットワークまたは直接有線（ｄｉｒｅｃｔ−ｗｉｒｅｄ）接続のような、有線メディア、および、例えば、音響、無線周波数、赤外等のような、無線メディア、および他の無線メディアを含む。ここで用いられる用語であるコンピュータ可読命令は、ストレージメディアおよび通信メディアの双方を含む。
【０００９】
　図２は、本発明を実施するシステムのコンポーネントを概略的に例示している機能的ブロック図である。そのシステムにおいて、２つのアプリケーションが存在する。そのうちの一方は、アウトラインアプリケーション（ｏｕｔｌｉｎｉｎｇ　ａｐｐｌｉｃａｔｉｏｎ）２１０であり、他方は、非アウトラインアプリケーション（ｎｏｎ−ｏｕｔｌｉｎｉｎｇ　ａｐｐｌｉｃａｔｉｏｎ）２５０である。非アウトラインアプリケーション２５０は、例えば、テキストのような電子データを作成、編集または処理できるあらゆるソフトウエアアプリケーションであっても良い。非アウトラインアプリケーション２５０の例として、ワードプロセッサ、表計算アプリケーション、データベースアプリケーション、または同種のものを挙げることができる。非アウトラインアプリケーション２５０は、また、マークアップに基づいた（例えば、ハイパーテキストマークアップ言語または拡張可能なマークアップ言語）ページまたは同種のものを見るために用いられるタイプのウェブ閲覧ソフトウエアを含むことができる。非アウトラインアプリケーション２５０は、文字またはデータを、そのデータの他の部分からそのデータのある部分を描写する、テキストへ挿入する能力を含む。例えば、タブ文字を、テキストの行の始めに挿入して、テキストのその行とテキストの他の行との間で視覚的な区別を提供しても良い。説明を単純にするためだけに、データの部分を、ここでは一様にテキストとして記載するけれども、本発明は、そのように限定されない。
【００１０】
　非アウトラインアプリケーション２５０を用いることによって、ユーザは、例えば、テキストドキュメント２５１等のような、ドキュメントを作成することができる。ここで、テキストドキュメント２５１は、この例においては、テキストの多数の行を含んでいる。この例において、テキストドキュメント２５１は、テキストの個別の行を含んでおり、それらテキストの行は、例えば、タブ文字２５５等のような、タブ文字を用いることによって、（後述するアウトライン構造とは区別されるように）ビジュアル構造を与えられている。図２において明らかであるが、タブ文字（この例では、中空矢印）が存在することを示すために用いられたアイコンを、隠しても良く、およびテキストドキュメント２５１のプリントされたバージョンにおいて、出現させないということは、一般的に理解される。
【００１１】
　タブ文字は、一般的に、ページの一端からテキストの行を挿入するために用いられる。テキストの行（またはパラグラフ）の間で視覚的な区別を提供するために、異なる数のタブ文字を用いることができ、その結果として、それら行間の視覚的な区別ができるようになる。例えば、第１行２５７は、タブ文字を含んでおらず、従って、テキストは、テキストドキュメント２５１の最も左の部分（一般的に左マージンと呼ばれる）で開始する。しかしながら、第２行２５９は、タブ文字を含んでおり、従って、第２行２５９は、テキストドキュメント２５１の最も左の部分からインデントされたある規定された位置で開始する。この方法において、視覚的な区別は、第１行２５７と第２行２５９との間に存在する。追加的なタブ文字は、さらに、テキストの行をインデントし、およびそれらタブ文字を、行間に視覚的な区別をさらに提供するために用いることができる。左マージンからインデントされるようにここでは述べたけれども、幾つかの言語は、右から左への言語であり、それらテキストを右マージンからインデントしても良いことを認識できる、ということに留意されたい。
【００１２】
　タブ文字を選択的に用いると、また、テキストの行の視覚的なグループ化が可能である。例えば、第１行２５７と第４行２６１とにはタブ文字が存在しないので、それら２つの行は、同じレベルの格（ｄｉｇｎｉｔｙ）を有するように見える。しかしながら、第２行２５９は、インデントされるのでその結果第１行２５７と関係しているように見える。同様に、第５行２６５は、インデントされるのでその結果第１行２５７ではなく、第４行２６１と関係しているように見える。この技術は、ビジュアル構造でドキュメントを作成するために有効であるけれども、その構造はただの幻想でしかない。言い換えると、作成されたドキュメントを見ると、行間で明白な関係のみが存在するだけである。それら行を、ユニットとして簡単には処理できず、および非アウトラインアプリケーション２５０は、それら明白な関係に基づいたドキュメントまたは個々の行を簡単に変更するための方法を提供することはない。
【００１３】
　このようなビジュアル構造を示すことができる他の方法としては、マークアップ言語の使用によるものが挙げられる。例えば、ハイパーテキストマークアップ言語（ＨＴＭＬ）タグを、ＨＴＭＬドキュメントのテキストまたは他のコンテンツを記述するドキュメント内で作成しても良い。これらのタグは、スタイルプロパティを含むことができ、このスタイルプロパティは、テキストが、ドキュメントの端に関してどこで開始するかを規定する。例えば、ＨＴＭＬタグの、マージン、インデント、およびタブカウントを、スタイルプロパティを用いて設定することができる。例えば、パラグラフタグ、
＜p style='text-indent:.5in'＞Tag Content＜/P＞
は、ＨＴＭＬドキュメントの左マージンから０．５インチインデントされたテキスト“Tag Content“で新しいパラグラフを作成する。他の例において、パラグラフタグ、
＜p style='margin-left:.5in;text-indent:.5in'＞Tag Content＜/P＞
は、他のパラグラフを作成する一方で、左マージンをドキュメントの左端から０．５インチに設定し、ついで、もう０．５インチ分パラグラフのテキストをインデントする。
【００１４】
　“テキストインデント”および“左マージン”は、カスケードスタイルシート（ＣＳＳ）プロパティであることに留意されたい。例えば、タグカウントプロパティ等のような、他の類似のタグおよびスタイルプロパティを、また、用いて、タグコンテンツのビジュアル構造を規定しても良い。これらの設定の各々は、テキストのドキュメントにおけるタブ文字と全く同様の方法でＨＴＭＬドキュメントのビジュアル構造に影響することができる。しかしながら、上述のタブ文字の使用でのように、ビジュアル構造を作成するためのスタイルプロパティの使用のみが、全体としてドキュメントの外見に影響し、およびドキュメントの要素間の関係を作成しない。
【００１５】
　アウトラインアプリケーション２１０は、例えば、テキストのような、データを作成、編集または処理する機能、およびそのデータへアウトライン構造を加える機能を含む、あらゆるソフトウエアアプリケーションであっても良い。アウトライン構造は、例えば、テキストの異なるパラグラフまたは行等のような、データの部分間の関係を記述する。一般的に、データを、階層的な方法で記述する。再び、テキストを、ここではこのようなデータの一例として用いているが、本発明は、そのように限定されない。多くの場合において、テキストの各部分を、アウトライン構造内のレベルに割り当て、テキストの多くの部分を、親に割り当てる。従って、テキストのパッセージは、第１レベルで存在することができる。テキストのそのパッセージは、第２またはより下層のレベルで１また複数の子を有しても良い。それらの子は、そのとき、次の下層（例えば、第３）レベルでそれら自身の子を有してもよい。この説明のために、アウトライン構造は、ドキュメントの要素間の親／子の関係の階層の作成に関係しており、その結果、特定の要素は、要素に関係したファミリー内に存在することができ、かつ、複数のレベルのいずれにも存在することができる。
【００１６】
　アウトラインアプリケーション２１０は、例えば、アウトラインドキュメント２１１等のような、ドキュメントを維持しており、そのアウトラインドキュメント２１１は、アウトライン構造中に配列されたデータ（例えば、テキスト）を含む。例えば、第１要素２１２は、第１または最も高いレベルでテキスト“Ｔｈｉｓ　ｉｓ　ｏｎｅ　ｌｉｎｅ”を含む。他の要素も、また、例えば、第２要素２２０および第３要素２３０等のように、第１または最も高いレベルで存在しても良い。加えて、アウトライン構造２１１の要素は、子を有しても良い。例えば、代表的なアウトラインドキュメント２１１において、第１サブ要素２１４は、第１要素２１２の子である。第１サブ要素２１４は、第２レベルにある。同様に、第２サブ要素２１６は、第１サブ要素２１４の子であり、第３レベルにある。アウトラインアプリケーション２１０は、アウトラインドキュメント２１１の各要素間の幾つかの関係の各々を記述する情報を維持する。ビジュアル構造に対するアウトライン構造の利点の幾つかを、図３〜５と共に後に説明する。
【００１７】
　非アウトラインアプリケーションに言及すると、必ずしもアウトライン機能を排除する必要はない、ということにも、ここでは、留意されたい。実際、非アウトラインアプリケーション２５０は、アウトライン機能を含んでも良く、逆に、アウトラインアプリケーション２１０を、アウトラインドキュメント２１１内のデータへアウトライン構造を追加すること無く用いても良い。同様に、非アウトラインアプリケーション２５０は、視覚的な区別なしで、親／子の関係を作成することができても良い。しかしながら、本発明のこの実装を例示するために、非アウトラインアプリケーション２５０が有しても良い、あらゆるアウトライン機能を用いずに、テキストドキュメント２５１内にアウトライン構造を作成し、または、より詳細には、非アウトラインアプリケーション２５０およびアウトラインアプリケーション２１０の間で共有されることができるデータの中にアウトライン構造を作成する。
【００１８】
　クリップボードコンポーネント２６０は、ソフトウエアコンポーネントであり、そのソフトウエアコンポーネントにより、情報をコンピューティングシステム上で実行している２以上のアプリケーション間で共有することができる。例えば、テキストドキュメント２５１内の情報のうち全てまたは一部を、非アウトラインアプリケーション２５０によってテキストドキュメント２５１から“コピー”または“カット”しても良い。この操作により、情報のその部分のレプリカを非アウトラインアプリケーションによってクリップボードコンポーネント２６０へパスする。クリップボード２６０は、ついで、コンピューティングシステム上のあらゆる他のアプリケーションへ挿入（または“ペースト”）できる情報を作成する。
【００１９】
　クリップボード２６０は、コピーされたデータ２６１の１また複数の異なるフォーマットで利用できる情報を作成しても良い。例えば、情報をウェブブラウザからコピーする場合、クリップボード２６０は、マークアップフォーマットまたはプレーンテキストフォーマットの双方で利用できる情報を作成することができる。そのように、他のアプリケーションへペーストするとき、コピーされたデータは、どんなフォーマッティングがそれに適用されようが、維持することができ、またはデータをペースとするとき、そのフォーマッティングを解除することができる。
【００２０】
　フォーマットコンバータ２０５は、アウトラインドキュメント２１１へペーストするとき、アウトラインアプリケーション２１０と相互に作用して、アウトラインアプリケーション２１０によって受信した情報をアウトライン構造へ変換するコンポーネントである。フォーマットコンバータ２０５を、例えば、クリップボード２６０によって、他のアプリケーションからアウトラインアプリケーション２１０へ提供された情報を変換するように構成する。このような変換の結果の表現を、図３に例示し、後述する。フォーマットコンバータ２０５を、また、アウトラインアプリケーション２１０によって作成されたデータをアウトライン構造から、例えば、テキストのような、他のフォーマットへ変換するように構成する。本発明によれば、フォーマットコンバータ２０５は、ルールに基づいて、あるフォーマットから他のフォーマットへ情報を変換し、そのルールは、アウトライン構造を存在するビジュアル構造に基づいて要求したかもしれないものを予期し、その逆もまた同じである。これらのルールの幾つかを、ここで説明する。
【００２１】
　ある実施において、フォーマットコンバータ２０５は、以下のようにテキストフォーマットのデータを変換する。つまり、テキストデータを受信すると、フォーマットコンバータ２０５は、受信したテキストデータを評価して、あらゆるタブ文字を識別する。タブ文字が、テキストの行の始めに存在しない場合、そのテキストの行を、アウトライン構造のノードレベルへ変換する。ノードレベルとは、アウトライン構造の最も高いレベルのことである。タブ文字が、行の始めに存在する場合、そのとき、テキストのその行を、その行の始めでのタブ文字の数に比例してアウトライン構造中のレベルに割り当てる。従って、１つのタブ文字が行の始めに存在する場合、そのとき、その行を、アウトライン構造中の第２レベルに割り当てる。加えて、その行を、より上層のテキストのうちのすぐ前の子要素として識別する。
【００２２】
　このように、図２のテキストドキュメント２５１を参照すると、第１行２５７は、タブ文字で開始していないので、フォーマットコンバータ２０５を、第１行２５７をアウトラインドキュメント２１１中のノード要素（すなわち、第１要素２１２）へ変換するように構成する。テキストドキュメント２５１の第２行２５９は、１つのタブ文字で開始しているので、それを第２レベル要素のサブ要素２１４へ変換する。サブ要素２１４よりも上層レベルのすぐ前の要素は、第１要素２１２であるので、サブ要素２１４を、第１要素２１２の子として作成する。
【００２３】
　その進行は、一度に１つのレベルである必要はないということに留意されたい。例えば、フォーマットコンバータ２０５は、テキストドキュメント２５１の第５行２６５を処理する場合、それは２つの先頭のタブ文字を確認する。従って、たとえより上層レベルのすぐ前の要素が第１レベルの要素（つまり、第２要素２２０）であっても、第５行２６５を、アウトラインドキュメント２１１中の第３レベルの要素２２１へ変換する。従って、第３レベルの要素２２１の直接の親は、その階層における２レベル上層にある。
【００２４】
　タブ文字は、テキストの行の始め以外のある地点に存在する場合、ネストされた見出しを、親ノードとしてタブ文字の左側へコンテンツで、および子ノードとしてタブ文字の右側へコンテンツで作成しても良い。（また、コーネルアウトライン（Ｃｏｒｎｅｌｌ　ｏｕｔｌｉｎｅ）と呼ばれる）ネストされた見出しは、水平方向にレイアウトされたアウトライン構造である。次のアウトライン構造をとる。つまり、
　　Ｏｎｅ
　　　　　　　Ｔｗｏ
　　　　　　　　　　　　ＴｈｒｅｅＡ
　　　　　　　　　　　　ＴｈｒｅｅＢ
　ネストされた見出しとしてレイアウトすると、次のようになる。つまり、
　　Ｏｎｅ　　Ｔｗｏ　　ＴｈｒｅｅＡ
　　　　　　　　　　　　ＴｈｒｅｅＢ
　ネストされた見出しへ変換されたパラグラフ直後のパラグラフは、その行の始めに１また複数のタブを含み、そのとき、それを直前のネストされた見出しの子として挿入し、そのレベルをパラグラフの始めに、タブの数と比例して設定する。しかしながら、行の始めにタブが存在しない場合、そのとき、それをインデントされた見出しとしてペーストする。
【００２５】
　アウトラインアプリケーション２１０へペーストされたコピーされたデータ２６１がマークアップに基づいた場合において、以下のルールを適用して、スタイル定義されたデータをアウトライン構造へ変換することができる。つまり、開始するために、フォーマットコンバータ２０５は、タグコンテンツのインデントに影響するタグのプロパティの各々を合計することができる。ＨＴＭＬ中のこのようなプロパティの例として、マージンプロパティ、インデントプロパティおよびタブカウントプロパティであっても良い。タブカウントを、例えば、ピクセル、インチ、または同種のもの等のような、適切なユニットへ変換することができる。開示された実施例において、０．５インチという値を、各タブカウントへ割り当てる。その合計より、各タグに対するインデントの総計が求まる。それらの量を、例えば、最も近い０．５インチ等のような、ある標準値へ切り下げることができる。そのとき、最も低い値から開始することにより、相対的なレベルをペーストされたデータ中の各ノードへ割り当てる。そのレベルは、直前のレベルからのインデントのある増加量よりも大きいデータの各部分に対して大きくなる。例えば、レベルを、インデントの０．５インチ毎に対して１ずつ増加させても良い。従って、２つのノード間での１．０インチの差は、２レベルの差となる。
【００２６】
　フォーマットコンバータ２０５を、また、データをアウトライン構造からテキストフォーマットへ変換するように構成する。例えば、アウトラインドキュメント２１１からのデータの選択が、テキストドキュメント２５１へのコピーおよびペーストである場合、フォーマットコンバータ２０５を、各レベルをタブ文字へ変換するように構成することができる。従って、アウトラインドキュメント２１１中の第１レベルの要素は、あらゆるタブ文字を受け取らなくても良く、第２レベルの要素は、その行の始めに挿入された１つのタブ文字を有することができ、第３レベルの要素は、その行の始めに挿入された２つのタブ文字を有することができ、そのように続く。この方法において、アウトラインアプリケーション２１０からのコンテンツを、アウトライン構造が無い非アウトラインアプリケーションへコピーおよびペーストする場合、少なくとも、生じるデータは、あるビジュアル構造を有しており、たとえアウトライン構造中に視覚的な区別が無くても、そのビジュアル構造は、オリジナルのアウトライン構造を模擬する。
【００２７】
　図３は、アウトラインドキュメント２１１のコンテンツのアウトライン構造の図による表現３００である。図による表現３００は、擬似マークアップ言語を含み、データの個々の要素間の関係を例示する。各要素を、擬似タグで囲む。ここで、擬似タグは、“＜Ｌ＃＞”で始まり、“＜／Ｌ＃＞”で終わり、“＃”シンボルは、その要素の相対的なレベルを示している。
【００２８】
　今、図２および図３の双方を参照すると、アウトラインドキュメント２１１の第１要素２１２を、第１レベルのタグ３０１中に囲む。第２要素２２０を、また、他の第１レベルのタグ３０３中に囲む。同様に、第３要素２３０を、また、さらに他の第１レベルのタグ３０５中に囲む。これらの要素の各々を、第１レベルで識別している。なぜならば、それらは、あらゆる先頭のタブ文字または他のインデントのしるし無しで、テキストドキュメント２５１から送られたからである。
【００２９】
　ツリー全体への各要素の相対的な関係は、また、図による表現３００から明らかである。例えば、サブ要素３０７は、明らかに、＜Ｌ２＞タグによって示されるように、第２レベルに属しているとして識別されるばかりでなく、また、第３要素３０５の＜Ｌ１＞タグ内に全体がネストされていることによって、第３要素３０５の子要素として識別される。これらの親／子の関係は、ビジュアル構造だけから限定的な方法において確かめられない。このアウトラインドキュメント２１１のコンテンツについてのメタ情報は、ユーザにビジュアル構造のみでは利用できない豊富な機能を提供する。例えば、親で子を囲むと、要素の各ファミリーをユニットとして簡単に処理することができる。同様に、図４および５と共に明らかになるように、レベルの割り当てにより、ユーザは、アウトラインドキュメント２１１の表示を非常に簡単に調節して、多かれ少なかれ、情報をユーザの好みに反映させることができる。
【００３０】
　図４および５は、共に、アウトライン構造の利点のうちの１つおよび簡単なビジュアル構造からのその区別を例示する。図２からのアウトラインドキュメント２１１を、双方の図に例示する。加えて、アウトラインアプリケーション２１０のユーザにどれくらいのコンテンツを表示するかについてのオプションを提供する、ツールバー４０１を含む。より詳細には、ツールバー４０１は、幾つかのレベルに対応する一連のボタン４０３を含み、それらレベルを、アウトラインドキュメント２１１内に表示することができる。分割されたボタンを、レベル１から５の各々について例示し、および“ＡＬＬ”ボタン４０５は、レベルの全てを識別する。図４に示されるように、ＡＬＬボタン４０５を、（ボールドラインスタイルで示されるように）ハイライトして、その選択を示す。ＡＬＬボタン４０５を選択すると、アウトラインドキュメント２１１のレベルの全てを表示する。対照的に、図５に示されるように、“２”ボタン４０７を選択しており、ユーザがレベル２またはそれより高い（数値上はより小さい）レベルの要素のみの表示を望んでいることを示している。アウトラインドキュメント２１１中の各要素を、特定のレベルに割り当てたので、複数の要素を、特定の要素の親にも関わらず、タンデムで実行することができる。従って、図５で示すように、２ボタン４０７を選択すると、レベル２より低い（数値上は高い）要素を隠すようになる。例えば、第２サブ要素２１６（図４）は、レベル３に存在し、図５の表示では隠されている。同様に、２ボタン４０７を選択すると、レベル３より低い他の要素（例えば、要素２２１、４１５、４１６および４１７）を、全て隠す。アウトライン階層の中で相対的なレベルを共有するアウトラインドキュメント２１１の複数の要素を処理するためのこの能力は、ビジュアル構造のみでは存在しない。
【００３１】
　図６は、データを非アウトラインフォーマットからアウトラインフォーマットへ変換するためのプロセスを概略的に例示する論理フロー図であって、例えば、データを非アウトラインアプリケーションからアウトラインアプリケーションへペーストするときに実行するものである。プロセスは、ブロック６０１で開始し、そこでは、データを、例えば、上述のアウトラインアプリケーション２１０のような、アウトライン認識アプリケーションへペーストする。そのデータを、クリップボードまたは同様のコンポーネントからペーストしても良く、データ中にアウトライン構造の情報を含まない、アプリケーションで作成しても良い。しかしながら、そのデータは、例えば、データのビジュアル構造を規定するタブ文字またはマークアップ言語タグのような、ビジュアル構造のしるしを含むことができる。一度、データをアウトライン認識アプリケーションで受信すると、プロセスは、ブロック６０３へ続く。
【００３２】
　ブロック６０３では、ブロック６０１で受信したデータを、ビジュアル構造からアウトライン構造へ変換する。データを非アウトラインアプリケーションによって作成した場合、そのデータを評価して、ビジュアル構造のしるしを識別し、およびそれらビジュアル構造のしるしに基づいた新しいアウトライン構造を作成することができる。この方法において、例えば、非アウトラインアプリケーションによって、アウトライン構造無しで作成されたデータを、アウトラインアプリケーションで共有することができ、その共有は、適用されたあらゆるビジュアル構造を失わず、かつアウトライン構造に一般的に関連した機能を獲得しながら行われる。その変換を実行するためのより詳細なプロセスを、図７および後述で例示する。
【００３３】
　ブロック６０５では、アウトライン構造へ変換されたデータを、ユーザへ公開する。受信されたデータに関して、ユーザは、今、アウトライン構造に関連した高められた機能を利用できる。例えば、変換されたデータを、今、データのレベルおよびグループ、データに対して以前は利用できなかった機能として処理しても良い。
【００３４】
　図７は、本発明のある実施に従う、データを非アウトラインフォーマットからアウトラインフォーマットへ変換するためのより詳細なプロセスを例示している論理フロー図である。プロセスは、スタートブロックに入り、そこでは、例えば、クリップボードコンポーネントまたはそれと同種のものを通して、データを他のアプリケーションから受信している。プロセスは、判断ブロック７０３で開始する。
【００３５】
　判断ブロック７０３では、受信されたデータが、例えば、ワードプロセシングアプリケーションまたはそれと同種のものによって作成され維持されたテキストのデータのような、テキストのデータであるか否か判断する。そうでない場合、プロセスは、後述する判断ブロック７１１へ進む。データがテキストである場合、プロセスは、ブロック７０５へ進む。
【００３６】
　ブロック７０５では、テキストデータを評価して、例えば、タブ文字等のような、ビジュアル構造のしるしを識別する。例えば、スペース文字またはそれと同種のもののように考えられる、ビジュアル構造の他のしるしも、また、存在しても良い。一度、ビジュアル構造のしるし（例えば、タブ文字）を識別すると、プロセスは、判断ブロック７０７へ進む。
【００３７】
　ブロック７０７では、ビジュアル構造の固有のしるしを持ったデータの各部分を、アウトライン構造中の適切な位置に割り当てる。例えば、先頭のタブ文字が無いパラグラフを、レベル１に割り当てても良い。１つの先頭のタブ文字を持つパラグラフを、レベル２に割り当てても良く、そのように割り当てていく。タブ文字を処理するための他のルールを、また、使用しても良く、および、同様に、非タブ文字である視覚的なしるしを処理するための他のルールを、また、使用しても良い。
【００３８】
　ブロック７０９では、あらゆる親／子の関係を、その関係をビジュアル構造から識別することができるが、アウトライン構造中に作成する。例えば、小さくなるレベルを割り当てられた連続するパラグラフを、最も高いレベルでパラグラフの子として識別しても良い。さらに、各パラグラフを、より高いレベルですぐ前のパラグラフの子として識別しても良い。判断ブロック７０３へ戻ると、受信されたデータがテキストのデータではない場合、プロセスは、判断ブロック７１１へ進む。
【００３９】
　判断ブロック７１１では、受信されたデータがマークアップであるか否か判断する。そうである場合、プロセスはブロック７１３へ進む。そうでない場合、プロセスは７１９へ進み、そこでは、ある適切な代替処理を実行する。
【００４０】
　ブロック７１３では、マークアップを評価して、データのビジュアル構造に影響するタグのプロパティを識別する。上述のように、しるしの例は、ドキュメントの端に関係したデータの特定のパッセージの位置を設定する、マージンまたはタグのインデント属性を含んでも良い。一度、これらのプロパティを識別すると、プロセスは、ブロック７１５へ進む。
【００４１】
　ブロック７１５では、総計値を、データのビジュアル構造に影響するプロパティに対して決定する。ある例において、あらゆるインデント属性、マージン属性、およびそれと同種のものについての値を総計して、各タグのコンテンツに対する全インデントを獲得する。この点で、各タグについての総計値は、各タグの相対的な位置を記述し、従って、データのビジュアル構造を記述する。ついで、プロセスはブロック７１７へ進む。
【００４２】
　ブロック７１７では、アウトライン構造を、レベルをインデントの総計値に基づいたマークアップの各要素に割り当てることによって作成する。上述のテキストの場合のように、異なるレベルを、インデントの特定の量と関連させても良く、それに応じてデータを割り当てても良い。例えば、新しいレベルを、おおよそ０．５インチの増加で各要素と関連させても良い。
【００４３】
　プロセスがブロック７１９に来る場合、そのとき、受信されたデータは、テキストでもマークアップでもなく、ある処理を、ちょうど上述で説明したものの代替として実行することができる。例えば、ビジュアル構造の他のしるしは、本明細書で説明したものの他にさらに存在しても良い。それらのしるしを、ある方式で評価しても良く、およびここで示した手引きと一致した方法でアウトライン構造へ変換しても良いということを示している。従って、ブロック７１９では、ある他の同等の変換の形式を、もしあれば、存在するビジュアル構造のタイプと一致したデータで実行することができる。または、エラーを作成し、ユーザへ報告しても良い。これらと他の代替方法は、当業者に明らかであろう。
【００４４】
　図８は、非アウトラインアプリケーションで用いるために、アウトライン構造を含むデータを、ビジュアル構造のしるしを持ったデータへ変換するためのプロセスを概略的に例示している論理フロー図である。プロセスは、ブロック８０１で開始し、そこでは、要求を受けて、選択されたデータをアウトラインアプリケーション内からコピーしている。本発明によれば、選択されたデータは、アウトライン構造を含み、そのアウトライン構造を通して、レベルをデータの種々の部分へ割り当て、および、親／子の関係をまた、作成することができる。一度、選択されたデータをコピーするという要求を、識別すると、プロセスは、ブロック８０３へ進む。
【００４５】
　ブロック８０３では、選択されたデータを、アウトライン構造からビジュアル構造へ変換する。ある実施において、このことは、アウトライン構造を分析することによって達成され、およびタブ文字またはそれと同種のものを挿入してアウトライン構造中の各レベルでのデータ間で視覚的な区別を作ることによって達成される。もしくは、マージンまたはインデントの属性を、アウトライン構造中の各要素に関連したタグで設定して、ビジュアル構造を有する選択されたデータのマークアップバージョンを作成しても良い。他の代替方法は、また、明らかであろう。
【００４６】
　ブロック８０５では、変換されたデータを、ビジュアル構造フォーマット中のコピーメカニズムへ提供する。例えば、選択されたデータを、ビジュアル構造でテキストのデータへ変換する場合、その選択されたデータを、タブ文字を持ったテキストデータまたはそれと同種のものとしてクリップボードコンポーネントへ公開しても良い。選択されたデータをコピーメカニズムへ公開することの実際の実施は、システムからシステムへはっきりと異なるが、その概念は一致している、ということは理解されよう。例えば、ある実施において、選択されたデータを公開する行為は、クリップボードコンポーネントへデータを選択したということを確認することを含み、およびその選択されたデータをクリップボードコンポーネントへ提供するための種々の可能なフォーマットを確認することを含む。ついで、ペーストコマンドを受信すると、選択されたデータを、クリップボードコンポーネントで識別された全てのフォーマットで提供する。
【００４７】
　以上の明細書、例およびデータは、本発明の、製造の完全な説明および構成の使用を提供する。本発明の多くの実施例は、本発明の精神および範囲から逸脱することなく成されているので、本発明は、特許請求項に帰属する。
【図面の簡単な説明】
【００４８】
【図１】本発明の実施で用いることができる、コンピューティングデバイスを例示する機能的ブロック図である。
【図２】本発明を実施するシステムのコンポーネントを概略的に例示する機能的ブロック図である。
【図３】本発明のある実施に従う、アウトラインドキュメントのサンプルのコンテンツのアウトライン構造の図による表現を示す図である。
【図４】レベル毎に拡張されたアウトライン構造を有するアウトラインドキュメントの図による表現を示す図である。
【図５】２以上のレベルのみに拡張された図４のアウトラインドキュメントの図による表現を示す図である。
【図６】例えば、データを非アウトラインアプリケーションからアウトラインアプリケーションへペーストするときに実行するような、データを非アウトラインフォーマットからアウトラインフォーマットへ変換するためのプロセスを概略的に例示している論理フロー図である。
【図７】本発明のある実施に従う、データを非アウトラインフォーマットからアウトラインフォーマットへ変換するためのプロセスをより詳細に例示している論理フロー図である。
【図８】非アウトラインアプリケーションで使用するために、アウトライン構造を含むデータを、ビジュアル構造を持ったデータへ変換するためのプロセスを概略的に例示している論理フロー図である。
【符号の説明】
【００４９】
　１００　コンピューティングデバイス
　１０２　プロセシングユニット
　１０４　システムメモリ
　１０５　オペレーティングシステム
　１０６　プログラムモジュール
　１０７　プログラムデータ
　１０９　着脱可能なストレージ
　１１０　着脱不可なストレージ
　１１２　入力デバイス
　１１４　出力デバイス
　１１６　通信接続
　１１８　他のコンピューティングデバイス
　１２２　キーボード
　１２３　マウス
　２０５　フォーマットコンバータ
　２１０　アウトランアプリケーション
　２５０　ワードプロセシングアプリケーション
　２６０　クリップボード
　２６１　コピーされたデータ
【図１】
2004133943.tif 000003
【図２】
2004133943.tif 000004
【図３】
2004133943.tif 000005
【図４】
2004133943.tif 000006
【図５】
2004133943.tif 000007
【図６】
2004133943.tif 000008
【図７】
2004133943.tif 000009
【図８】
2004133943.tif 000010