(57)【特許請求の範囲】
【請求項１】
アプリケーションへのコンテンツ入力を容易にするコンピュータ装置であって、前記コンピュータ装置はプロセッサおよびシステムメモリを備え、前記プロセッサは、
ウェブサーバ上に格納されたウェブドキュメントに関連したアプリケーションを、前記アプリケーションにアタッチされ、ユーザ入力を受け付けるように構成された入力メソッドコンポーネントとともに実行し、
前記ウェブドキュメントをダウンロードし、
前記ウェブドキュメントに組み込まれたコードを実行してデータを生成し、
仲介コンポーネントによって、前記データを受け取り、前記データに基づく付加的な機能性を前記アプリケーションに提供する
ように構成され、
前記仲介コンポーネントは、前記ウェブドキュメント内のＵＲＬ（Uniform Resource Locator）プレフィックスとともに登録され、前記ＵＲＬプレフィックスは、前記仲介コンポーネントが動作するオペレーティングシステムのネイティブなＵＲＬプレフィックスに対する拡張であり、前記仲介コンポーネントは、前記ウェブドキュメント内のＵＲＬから前記ＵＲＬプレフィックスを除去することによって抽出されたストリングを前記アプリケーションに提供することを特徴とするコンピュータ装置。
【請求項２】
前記組み込まれたコードは、プログラミング言語内で作り出され、およびマークアップ言語に組み込まれることを特徴とする請求項１に記載のコンピュータ措置。
【請求項３】
前記プロセッサは、前記ウェブサーバ上で更新された前記ウェブドキュメントをダウンロードするようにさらに構成され、前記更新されたウェブドキュメントは前記アプリケーションにより利用可能であることを特徴とする請求項１に記載のコンピュータ装置。
【請求項４】
前記組み込まれたコードは、ＵＲＬ（Uniform Resource Locator）プロトコルのハンドラを使用して実行されることを特徴とする請求項１に記載のコンピュータ装置。
【請求項５】
前記プロセッサは、前記入力メソッドコンポーネントまたは前記アプリケーションと関連付けられた識別子を登録し、前記登録された識別子に基づいて前記データを前記アプリケーションにルートするようにさらに構成されたことを特徴とする請求項１に記載のコンピュータ装置。
【請求項６】
前記アプリケーションは複数のアプリケーションを含み、前記入力メソッドコンポーネントは複数の入力メソッドコンポーネントを含み、前記プロセッサは、
前記複数の入力メソッドコンポーネントのうちのそれぞれの入力メソッドコンポーネントもしくは前記複数のアプリケーションのうちのそれぞれのアプリケーションと関連付けられた複数の識別子を登録し、
最後に登録された識別子に基づいて、前記アプリケーションに前記データをルートするようにさらに構成されたことを特徴とする請求項１に記載のコンピュータ装置。
【請求項７】
前記コンテンツは、テキストまたは複合オブジェクトのうちの少なくとも１つを含むことを特徴とする請求項１に記載のコンピュータ装置。
【請求項８】
コンピュータに実装されたコンテンツ方法であって、前記コンピュータはプロセッサおよびシステムメモリを含み、前記方法は、
前記プロセッサが、
ウェブサーバに格納されたウェブページに関連したアプリケーションを、前記アプリケーションにアタッチされ、ユーザ入力を受け付けるように構成された入力メソッドとともに実行するステップと、
前記ウェブページをダウンロードするステップと、
前記ウェブページに組み込まれたコードを実行して、データを生成するステップと、
仲介コンポーネントによって、前記データを受け取り、前記データに基づく付加的な機能性を前記アプリケーションに提供するステップと
を備え、
前記仲介コンポーネントは、前記ウェブページ内のＵＲＬ（Uniform Resource Locator）プレフィックスとともに登録され、前記ＵＲＬプレフィックスは、前記仲介コンポーネントが動作するオペレーティングシステムのネイティブなＵＲＬプレフィックスに対する拡張であり、前記仲介コンポーネントは、前記ウェブページ内のＵＲＬから前記ＵＲＬプレフィックスを除去することによって抽出されたストリングを前記アプリケーションに提供することを特徴とする方法。
【請求項９】
スクリプト言語内に前記組み込まれたコードを記述するステップと、前記コードを前記ウェブページ内のマークアップ言語に組み込むステップとをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
後続の実行用に、前記組み込まれたコードを更新するステップをさらに備え、前記データは前記更新された組み込まれたコードに基づいて生成されることを特徴とする請求項８に記載の方法。
【請求項１１】
前記入力メソッドを登録するステップと、前記登録に基づいて前記データを前記アプリケーションにルートするステップとをさらに備えることを特注とする請求項８に記載の方法。
【請求項１２】
ユーザによる前記ウェブページとのインタラクトに応答して、前記入力メソッドと関連する前記アプリケーションに前記データを適用して、前記アプリケーションに付加的な機能を自動的に提供するステップをさらに備えることを特徴とする請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブブラウザ経由のアプリケーションに対するコンテンツ入力に関する。
【背景技術】
【０００２】
サードパーティのプログラムは、入力メソッドがサードパーティのコンポーネントを特定のシナリオにおいて入力体験を拡張する入力システムに付加することができるように、プラグイン能力を有する入力メソッドを要求する。このことは、その入力メソッドをコアバイナリに送った後、サービスとしての入力機能をさらに付加する拡張性を容易にする。このようなプラグインコンポーネントは、ローカルコンピュータ内またはリモートサーバにおいて存在し得るバックエンドデータソースとの通信を行うためのユーザインタフェース（ＵＩ）の見た目（look）および動き（behavior）を有する必要がある。さらに、このようなプラグインコンポーネントは、ダウンロードされ、簡単にインストール可能で、そして新しいバージョンが利用可能になる時に適切に更新される必要がある。
【発明の概要】
【０００３】
以下では、本明細書で説明されるいくつかの新規の実施形態についての基本的な理解を提供するために簡易化された概要を提示する。本概要は、広範囲にわたる概要ではなく、主要／重要な要素を特定することもその範囲を明確にすることも意図しない。その唯一の目的は、後で提示されるより詳細な説明の前置きとして簡易化された形においていくつかの概要を提示することである。
【０００４】
開示されるアーキテクチャによって、マークアップ言語（例えば、ＨＴＭＬ）のページが、入力メソッドがアタッチされたアプリケーションにコンテンツ（例えば、テキスト）を挿入し易くするのを可能にする。このように、プラグインの開発業者は、ウェブページの言語（例えば、ＨＴＭＬ）を使用してユーザインタフェース（ＵＩ）の見た目および動きを任意に実装して、適切な技術を使用して通常のウェブページが行うことができるのと同様にバックエンドデータソースとの通信を行うことができる。ウェブページがウェブサーバに格納されて、オンザフライ(on-the-fly)でクライアントのブラウザにダウンロードされるので、インストールが最小限で済み、ユーザは、ウェブページの最新バージョンを自動的に使用することができる。
【０００５】
一実施例において、ウェブページのＨＴＭＬに組み込まれたコードから命令を受信する仲介（broker）コンポーネントが実装される。クライアントのブラウザ（またはウェブページを処理するのに適した他のアプリケーション）は、ウェブページを受信し、ＨＴＭＬに組み込まれたコード（例えば、ジャバスクリプトのようなスクリプトコード）を実行する。従って、仲介コンポーネントは、ＵＲＬプロトコルのハンドラ機構によって、ＨＴＭＬ内のコードから起動（invoke）され得る。さらに、仲介コンポーネントは、クライアントシステムの一部としてネイティブにインストールされ得る。
【０００６】
例えば、プラグインの開発業者が、ソフトウェアのキーボード機能を入力メソッドおよび／または関連するアプリケーションに付加する入力メソッドプラグインコンポーネントを実装するのを望んでいると考える。開発業者は、「ａ」から「ｚ」に及ぶ入力ボタンを示すコードを用いてＨＴＭＬページを作り出す（author）ことができる。ユーザがＨＴＭＬページを開いてそのページ上のボタンを選択する時、それに対応する文字（character）がクライアントコンピュータ内で実行するアプリケーションに挿入される。それがＨＴＭＬページであるので、開発業者は、ボタンを望ましい外観（cosmetic）に任意にレイアウトすることができる。その後、プラグインに機能をさらに付加する選択をする（例えば、文字ではなく単語を挿入するボタンをさらに付加する）場合、開発業者は、ウェブサーバにおいてＨＴＭＬページを単に更新するだけである。ユーザは、例えば、クライアントのブラウザ経由で新しいバージョン（更新）を自動的に受信する。
【０００７】
前述および関連する目的を達成するために、以下の説明および添付図面に関連して、いくつかの具体的に示した態様が本明細書で説明される。このような態様は、本明細書で開示される原理を実践することができるさまざまなやり方を示し、そのすべての態様および等価は、特許請求される主題の範囲内であることを意図する。他の利点および新規の特徴は、図面に関連して検討される時に以下の詳細な説明から明らかになるであろう。
【図面の簡単な説明】
【０００８】
【図１】開示されるアーキテクチャに従ってコンピュータに実装されたコンテンツシステムを示す図である。
【図２】ウェブドキュメント経由でコンポーネントとコンテンツ入力を容易にするエンティティとの間の通信のフロー図である。
【図３】付加的な機能性をアプリケーションに付加するための第１のクライアント配置を示す図である。
【図４】付加的な機能性をアプリケーションに付加するための第２のクライアント配置を示す図である。
【図５】ブラウザ経由でコンテンツをアプリケーションに入力するコンテンツメソッドを示す図である。
【図６】図５の方法の付加的な態様を示す図である。
【図７】図５の方法の付加的な態様を示す図である。
【図８】開示されるアーキテクチャに従ってブラウザ経由でコンテンツをアプリケーションに入力するのを容易にするコンピューティングシステムのブロック図である。
【図９】ブラウザ経由でコンテンツをアプリケーションに入力するのを容易にするコンピューティングシステムのブロック図である。
【発明を実施するための形態】
【０００９】
開示されるアーキテクチャによって、マークアップ言語（例えば、ＨＴＭＬ）のページが、入力メソッドがアタッチされたアプリケーションにコンテンツ（例えば、テキストストリング、オブジェクト、オーディオ、ビデオ等）を挿入し易くするのを可能にする。このように、プラグインの開発業者は、ウェブページの言語（例えば、ＨＴＭＬ）を使用してユーザインタフェース（ＵＩ）の見た目および動きを任意に実装して、通常のＨＴＭＬページが行うことができるようなバックエンドデータソースとの通信を行って、そして適切な技術を使用してこれを達成することができる。ウェブページがウェブサーバに格納されて、オンザフライでクライアントにダウンロードされるので、インストールが最小限で済み、ユーザはウェブページの最新バージョンを簡単に自動的に取得することができる。
【００１０】
仲介コンポーネントは、クライアント上で実装されて、ウェブページのマークアップ言語に組み込まれたコードの実行から得られるデータを受信する。付加的な仲介コンポーネントをクライアントシステムに付加することによって、クライアントアプリケーションに対応するクライアントシステム上でより多くのデータ型が対処され得る。
【００１１】
次に図面の参照が行われるが、同様の参照数字は全体を通じて同様の要素を指すために使用される。以下の説明において、解説目的により、多くの特定の詳細が、その説明の完全な理解を与えるために示されている。しかしながら、そのような特定の詳細を用いなくても新規の実施形態が実践され得ることは明白であろう。他のインスタンスにおいて、その説明を容易にするために、周知の構造およびデバイスがブロックダイアグラム形式で示される。その意図するところは、特許請求される主題の精神および範囲内においてすべての修正、等価および代替を網羅することである。
【００１２】
図１は、開示されるアーキテクチャに従ってコンピュータが実装されたコンテンツシステム１００を示す。システム１００は、ベースライン入力メソッドの機能性１０６をアプリケーション１０４に提供するためにアプリケーション１０４にアタッチされた入力メソッドコンポーネント１０２と、ウェブドキュメント１１２のデータ１１０を受信することによって、データ１１０によって提供される付加的な機能性１１４（例えば、入力メソッドの機能性）の付加をもたらす仲介コンポーネント１０８とを含み、付加的な機能性１１４は、ウェブドキュメント１１２に組み込まれたコード１１６の処理を経てアプリケーション１０４に間接的に提供される。
【００１３】
ウェブドキュメント１１２は、実行される時にデータ１１０を作成する、組み込まれたコード１１６を含むウェブページになり得る。組み込まれたコード１１６は、適した任意のプログラミング言語（例えば、スクリプト言語）によって作り出され、ＨＴＭＬのようなマークアップ言語に組み込まれ得る。ウェブドキュメント１１２をウェブサーバ上で格納して、組み込まれたコード１１６を処理するまたは処理させてデータ１１０を作成するクライアントのブラウザ１１８にダウンロードすることができるので、付加的な入力メソッドの機能性１１４になり得る。
【００１４】
一般的に、ウェブドキュメント１１２は、ウェブドキュメント１１２とのユーザインタラクションに基づいてアプリケーション１０４に対する付加的な機能性１１４の（データ１１０のような）自動的な補充（supplementation）を容易にする。付加的な機能性１１４の生成物（例えば、テキスト、イメージ等）は、次に、アプリケーション１０４に提供される。仲介コンポーネント１０８を、ＵＲＬ（Uniform Resource Locator）プロトコルのハンドラ機構を使用して、ウェブドキュメント１１２から起動し得る。付加的な機能性１１４は、例えば、イメージ、オーディオ、および／またはビデオのようなテキストまたは複合オブジェクトのうちの少なくとも１つを含む。
【００１５】
言い換えれば、コンピュータに実装されたコンテンツ１００のシステムは、ベースライン入力メソッドの機能性１０６をアプリケーション１０４に提供するためにアプリケーション１０４と関連付けられた入力メソッドコンポーネント１０２と、入力メソッドコンポーネント１０２から通知を受信するために入力メソッドコンポーネント１０２と関連付けられた仲介コンポーネント１０８とを備え、仲介コンポーネント１０８は、ウェブページ内のコード１１６から作成されるデータ形式（例えば、ウェブドキュメント１１２）で付加的な機能性１１４をアプリケーション１０４に提供する。
【００１６】
仲介コンポーネント１０８は、ウェブページ内のコードを処理するブラウザからデータ１１０を受信する。付加的な機能性１１４は、ブラウザ１１８がウェブページ内で仲介コンポーネント１０８を呼び出すコード１１６を実行する時に、データ１１０から作成される。仲介コンポーネント１０８は、入力メソッドコンポーネント１０２と関連付けられた識別子を受信する。仲介コンポーネント１０８は、その識別子を登録して、登録された識別子に基づいてデータ１１０をルーティングする。仲介コンポーネント１０８は、特定のデータ型のデータ１１０の利用を容易にする。さらに、仲介コンポーネント１０８は、文字、単語、句、またはアプリケーション１０４が言語アプリケーションである複合オブジェクトのうちの少なくとも１つの形式で、データ１１０がアプリケーション１０４へ入力するのを容易にする。
【００１７】
図２は、ウェブドキュメント経由でコンポーネントとコンテンツ入力を容易にするエンティティとの間の通信のフロー図２００を示す。アプリケーション１０４は、アプリケーション１０４にアタッチされた入力メソッドコンポーネント１０２を用いて、クライアントコンピュータ上で実行するプログラムになり得る。仲介コンポーネント１０８は、クライアントコンピュータ上でインストールされて実行するネイティブコードになり得る。フロー図２００は、この例において、ウェブドキュメントが、プラグインの開発業者によって生成され得るＨＴＭＬページ２０２であることを示す。ＨＴＭＬページ２０２は、ブラウザがコード１１６を実行する時に得られるデータが、入力メソッドコンポーネント１０２によってアプリケーション１０４に提供される付加的な入力メソッドの機能性を形成するような、例えば、図１のスクリプト言語で書かれた組み込まれたコードを含む。他の技術を用いて、ＨＴＭＬに組み込まれるプログラムコードを書き込み得ることにも留意されたい。
【００１８】
プラグインの開発業者は、仲介コンポーネント１０８を開発して、ローカルクライアントコンピュータ上でユーザに仲介コンポーネント１０８をインストールさせることができる。仲介コンポーネント１０８は、あるイベントが入力メソッドコンポーネント１０２内で発生する時に、入力メソッドコンポーネント１０２から通知２０４を受信する。さらに、仲介コンポーネント１０８を、ＵＲＬプロトコルのハンドラ２０６によってＨＴＭＬページ２０２から起動し得る。
【００１９】
そのデータフローは、ウェブブラウザ内のウェブドキュメントから仲介コンポーネントへ、そして入力メソッドコンポーネントへ、そして最後にアプリケーションへと一方向に進み得る。仲介コンポーネントは、識別子（チケットまたはトークンとも呼ばれる）を使用して、どの入力メソッドコンポーネントのインスタンスがデータを送信すべきかを識別する。仲介コンポーネントは、事前に入力メソッドコンポーネントの識別子を知っている。その識別子は、入力メソッドコンポーネントから仲介コンポーネントにプッシュされ得る。
【００２０】
一実施例において、アプリケーションがユーザインタラクションのフォーカスを取得する（またはアプリケーションウィンドウが最前面（foreground）に移動する）度に、そのアプリケーションに関連する入力メソッドコンポーネントは、自身の識別子（イベント通知とも呼ばれる）を仲介コンポーネントにプッシュする。任意のアプリケーションにアタッチされる各入力メソッドコンポーネントは、自身の識別子をいつでも仲介コンポーネントにプッシュすることができる。仲介コンポーネントは、最後に登録された識別子を呼び起こす。
【００２１】
（入力メソッドコンポーネントから仲介コンポーネントにプッシュされるイベントと同期しない時は）いつでも、仲介コンポーネントは、ウェブドキュメントから呼び出され得る。呼び出されると、仲介コンポーネントは、最後に登録された識別子を使用して、関連する入力メソッドコンポーネントのインスタンスを見つける。
【００２２】
ウェブドキュメントは、お気に入りのＵＲＬリストからの選択に応答するような、できる限りの方法で事前にウェブブラウザ内で開かれ、入力メソッドコンポーネントは、開かれた特定のウェブドキュメント等を用いてウェブブラウザを始動する。ひとたび開かれると、ウェブドキュメントは、すべての入力メソッドコンポーネントのインスタンスを供給することができる。従って、入力メソッドコンポーネントのインスタンスとウェブドキュメントとの比は、必ずしも１対１ではない。例えば、デスクトップ上で提示されるソフトウェアキーボードの単一のインスタンスは、望ましい任意のアプリケーションまたは複数のアプリケーションと共に働くのに用いられ得る。
【００２３】
動作中、特定のイベントが発生すると、入力メソッドコンポーネント１０２は、通知２０４（識別子）を仲介コンポーネント１０８に送信する。仲介コンポーネント１０８は、このイベントをトリガとして用いてＨＴＭＬページ２０２を起動してもよいし、しなくてもよい。このイベントは、「チケット」情報を含む。チケット情報は、アプリケーション１０４のハンドル、入力メソッドコンポーネント１０２のＣＯＭ（Component Object Model）インタフェースポインタ、または仲介コンポーネント１０８が適切なアプリケーション（アプリケーション１０４）および／または入力メソッドを扱う（address）のに後で使用することができる他の機構となり得る。言い換えれば、クライアントコンピュータは、複数の異なる入力メソッドコンポーネントおよび特定の目的のために互換性のある仲介コンポーネントを用いることができる。本明細書の実施形態では、複数の仲介コンポーネントまたはクライアントアプリケーションごとに異なる最適なブローカ（broker）を用いた単一の入力メソッドコンポーネントのシナリオを説明する。
【００２４】
ＨＴＭＬページ２０２は、ウェブブラウザ内で開かれて、そのブラウザによってレンダリングされ得る。開発業者は、望ましい任意のＨＴＭＬページを作り出すことができる。登録されたＵＲＬプロトコルのハンドラ２０６は、適切なパラメータを用いてＨＴＭＬページ２０２から呼び出される。それに応答して、仲介コンポーネント１０８が始動し、ＨＴＭＬページ２０２からパラメータを受信する。仲介コンポーネント１０８が、通知２０４と共に送信されるチケット情報を知っているので、仲介コンポーネント１０８は、次に、アプリケーション１０４および入力メソッドコンポーネント１０２に伝達して、通知２０６内で受信したチケットデータに基づいて、ＨＴＭＬページ２０２のデータから得られる付加的な入力メソッドの機能性２０８を付加する。
【００２５】
ひとたび仲介コンポーネント１０８がクライアントコンピュータ上でインストールされると、開発業者は、ウェブサーバに格納されたＨＴＭＬページ２０２に組み込まれたコードの変更または改良を行うことによって、つまり、クライアントコンピュータに適用される更新をせずに、入力メソッドコンポーネントの機能性を変更または改良することができる。このことは、付加的な機能性を自動的に更新および配置するのに便利で効率的なアーキテクチャを提供する。
【００２６】
アプリケーション１０４に提供されるコンテンツは、テキスト形式のコンテンツ(textual content)に限定されないことに留意されたい。最も簡易なブローカを用いた最も簡易な形式において、そのコンテンツはテキストストリングになり得る。より複雑な実装において、仲介コンポーネント１０８を、仲介コンポーネント１０８がＨＴＭＬページ２０２から呼び出される時にメタデータを特定のアプリケーションに送信するように設計することができ、アプリケーション１０４は、そのメタデータの受信に応答して、複合オブジェクト（例えば、イメージ）を自身のアプリケーションに挿入することができる。本質的に、それは、アプリケーション１０４と仲介コンポーネント１０８との間の「契約(contract)」に基づいている。以前に示したように、複数の異なる仲介コンポーネントを特定の目的のために用いることができる。それによって、多くの異なるデータ型をユーザシステムに付加することができる。
【００２７】
ＨＴＭＬの使用およびウェブブラウジング技術は、すでにサーバ側で存在する。ウェブサーバ内のＨＴＭＬによるスクリプトを使用して、ユーザがウェブページを閲覧する(browse)と、そのＨＴＭＬページは、ウェブサーバからクライアントのブラウザにダウンロードされる。クライアントのブラウザは、組み込まれたスクリプトコードを実行してデータを作成する。従って、ユーザは、クライアントをインストールする必要がなく、ウェブサーバ内のＨＴＭＬページを単に開くだけである。仲介コンポーネントは、ネイティブコードとしてクライアント上でインストールされ得る。ウェブページのドキュメントからクライアントのブラウザに以前にダウンロードされたプログラムコードは、クライアントが、対応する更新されたウェブページのドキュメントをウェブサーバからダウンロードする度に自動的に更新され得る。
【００２８】
仲介コンポーネントは、データ型を定義する。ひとたびデータ型が定義されてそれに関連するブローカがインストールされると、そのブローカは、典型的には、頻繁に更新される必要はないであろう。しかしながら、そのデータ型のデータは変わり得るし、そのデータ型用データの（ウェブページにコード化された）ジェネレータは、動的に変更し得る。従って、ジェネレータが、例えば、サーバ側に格納される時に、マークアップ言語（例えば、ＨＴＭＬ）やスクリプト言語（例えば、ジャバスクリプト）を手段として説明されているので、データのジェネレータは、簡単に変更され得る。以前に示したように、マークアップ言語は、ＨＴＭＬに制限されないが、ブラウザ内でレンダリング可能な適切な技術になり得る。
【００２９】
活用し得るオペレーティングシステムの１つの機能は、ＵＲＬプロトコルのハンドラである。この技術は、ＵＲＬを実行可能ファイル（“ｅｘｅ”）にマップすることができる。例えば、ＵＲＬは、“ｈｔｔｐ：”、“ｍａｉｌｔｏ：”、または“ｆｔｐ：”等から始まるフォーマットストリングを有することができる。オペレーティングシステムは、このストリングを渡し、このストリングのプレフィックスをチェックし、そして登録されたアプリケーション実行ファイル(executable)の制御に渡す機構を含むことができる。例えば、ＵＲＬが“ｈｔｔｐ：”からスタートする場合、オペレーティングシステムは、ブラウザ実行ファイルを始動するであろう。別の例において、ＵＲＬストリングが“ｍａｉｌｔｏ：”から始まる場合、オペレーティングシステムは、メッセージングプログラム（例えば、電子メール）を始動する。
【００３０】
オペレーティングシステムは、仲介コンポーネントがこの能力を拡張して、任意のプレフィックスストリングが登録されて任意の実行ファイルと関連付けられて定義され得るようにできる機能を含むこともできる。この機構は、望ましいプレフィックスストリングを仲介コンポーネントに登録するために用いられる。
【００３１】
ＨＴＭＬページにおいて、ユーザがプレフィックスを有するこのようなＵＲＬを始動すると、オペレーティングシステムは、登録されたブローカ実行ファイルを始動する。仲介コンポーネントが起動する時、仲介コンポーネントは、コマンドラインパラメータを使用してプレフィックスからスタートするＵＲＬストリングをすべて受信する。例えば、ＨＴＭＬページが、＜ｐｒｅｆｉｘ＞が“ｈｔｔｐ”、“ｆｔｐ”、“ｍａｉｌｔｏ”等になり得るいくつかの“＜ｐｒｅｆｉｘ＞：ｘｙｚ”を含む場合、仲介コンポーネントは、コマンドラインパラメータ内の“＜ｐｒｅｆｉｘ＞：ｘｙｚ”のストリングを受信する。各ＨＴＭＬページが仲介コンポーネントのストリング“ｘｙｚ”を渡したい場合、ＨＴＭＬページは、“＜ｐｒｅｆｉｘ＞：ｘｙｚ”を含む。次に、仲介コンポーネントが始動して、仲介コンポーネントが既知の“＜ｐｒｅｆｉｘ＞：”部を除去することによってストリング“ｘｙｚ”を抽出することができるように、ストリング“＜ｐｒｅｆｉｘ＞：ｘｙｚ”を受信する。
【００３２】
仲介コンポーネントがストリング“ｘｙｚ”を受信すると、仲介コンポーネントおよびアプリケーションは、プロトコルを用いてそのストリングを送受信する。用いられ得る非常に基本的なプロトコルは、文字をあるウィンドウから別のウィンドウに送信するＷＭ＿ＣＨＡＲ（Ｗｉｎｄｏｗｓ（商標）のオペレーティングシステム）である。仲介コンポーネントがＷＭ＿ＣＨＡＲメッセージをアプリケーションに送信する場合（パラメータｘを有するＷＭ＿ＣＨＡＲ、続いてパラメータｙを有するＷＭ＿ＣＨＡＲ、続いてパラメータｚを有するＷＭ＿ＣＨＡＲを送信する）、アプリケーションは、“ｘ”に続いて“ｙ”、それに続いて“ｚ”のキーボード入力を受信する。従って、すべてのアプリケーションは、この受信メッセージを取り扱って、アプリケーションが取り扱うドキュメントに“ｘｙｚ”を入力することができる。それは、基本的なブローカモデルである。従って、多くの異なる仲介コンポーネントが実装されて、必要に応じて、異なるプロトコルに登録され得る。
【００３３】
より高度なブローカモデルにおいて、写真、ビデオ、イメージ、音等は、アプリケーションにプッシュされ得る。この場合、ユーザアプリケーションおよびブローカは、最適な動作のために事前定義されたプライベートプロトコルを用いることができる。より具体的な実装において、カスタムブローカ(custom broker)が、特定のクライアントアプリケーション用に開発され得る。
【００３４】
クライアントマシン上には多くのアプリケーションがあり、各アプリケーションは、アタッチされた入力メソッドコンポーネントとともに動作するが、仲介コンポーネントは、単一のインスタンスである。入力メソッドコンポーネントは、仲介コンポーネントがどのアプリケーションにメッセージを送信するかという信号をその仲介コンポーネントに送る。ユーザが多くの実行可能なアプリケーションのうちの１つのキーを押すと、入力メソッドコンポーネントは、ユーザがインタラクトしていたアプリケーションを呼び起こして、オペレーティングシステムがそのアプリケーションを取り扱う仲介コンポーネントに送信する。その後、仲介コンポーネントは、ハンドルを使用してメッセージを送信する。これは、他の方法を用いてメッセージが送信されるアプリケーションを識別し得るという点において一例にすぎない。
【００３５】
開示されるアーキテクチャは、例えば、通常適したキーボード上に提示されない文字を用いる言語（例えば、日本語、中国語、アラビア語、ラテン語等）に対する特殊な適用性を見出す。別の実装において、開示されるアーキテクチャは、キーボード経由では取得できない、入力デバイス（例えば、マウス、キーパッド等）によって容易になる単一の選択によって単語および／または句を挿入するのに用いられ得る。
【００３６】
図３は、付加的な機能性をアプリケーションに付加するための第１のクライアント配置３００を示す。例えば、第１のクライアント配置３０２において、第１の入力メソッドコンポーネント３０４は、第１の入力メソッドコンポーネント３０４によって提供されるベースライン入力メソッドの機能性を利用するために、第１のアプリケーション３０６に用いられる。いずれかの時点で、第１の入力メソッドコンポーネント３０４は、第１の仲介コンポーネント３０８への通知を経由して、識別子を第１の仲介コンポーネント３０８に登録する。登録が開始されると、第１のウェブページ３１０は、第１の仲介コンポーネント３０８を呼び出す。第１のウェブページ３１０は、プログラミング言語（例えば、ジャバスクリプト）内で作り出されて、ＨＴＭＬのようなマークアップ言語に組み込まれる、組み込みコード３１２を含む。代替的には、他の適したウェブドキュメントの言語を用いることもできる。
【００３７】
クライアントのブラウザは、多くの異なる目的のためにウェブページに格納するネットワークサーバ（図示せず）から第１のウェブページ３１０をダウンロードする。第１のウェブページ３１０は、クライアントのブラウザ内で開かれて、そのクライアントのブラウザは、組み込みコード３１２を実行する。組み込みデータ３１２の実行は、プロトコルハンドラ経由で第１の仲介コンポーネント３０８に渡されるデータを出力する。第１の仲介コンポーネント３０８は、次に、第１のアプリケーション３０６に挿入して使用する第１の付加的な入力メソッドの機能性３１０を付加するために、第１のアプリケーション３０６にそのデータをルートする。
【００３８】
図４は、付加的な機能性をアプリケーションに付加するための第２のクライアント配置４００を示す。ここでは、単一の仲介コンポーネント４０２は、クライアントマシン上の２つのアプリケーション用のデータ型および対応する２つの入力メソッドコンポーネントを支援する。第２の入力メソッドコンポーネント４０４は、第２のアプリケーション４０６と関連付けられ（例えば、アタッチされ）、第３の入力メソッドコンポーネント４０８は、第３のアプリケーション４１０と関連付けられる（例えば、アタッチされる）。第２の入力メソッドコンポーネント４０４および第３の入力メソッドコンポーネント４０８は、仲介コンポーネント４０２に登録する（通知を送信する）が、（例えば、ユーザインタラクションの最前面にある）アクティブなアプリケーションを示す登録を最後にする。
【００３９】
２つのウェブページ４１２である、第２のウェブページ４１４と第３のウェブページ４１６とを示す。第２のウェブページ４１４が、クライアントブラウザによってダウンロードされて処理されると、クライアントブラウザは、仲介コンポーネント４０２を呼び出す組み込みコード４１８を実行する。クライアントブラウザによる組み込みコード４１８の実行は、仲介コンポーネント４０２に渡されるデータを作成し、仲介コンポーネント４０２は、最後に登録された入力メソッドコンポーネント（例えば、第２の入力メソッドコンポーネント４０４）に基づいて、付加的なアプリケーションの機能性としてのデータをルートする。例えば、第２のウェブページ４１４から渡されたデータは、付加的なアプリケーションの機能性４２２として第２のアプリケーション４０６に送信され得る。
【００４０】
同様に、第３のウェブページ４１６が、クライアントブラウザによってダウンロードされて処理されると、クライアントブラウザは、仲介コンポーネント４０２を呼び出す組み込みコード４２０を実行する。クライアントブラウザによる組み込みコード４２０の実行は、仲介コンポーネント４０２に渡されるデータを作成し、仲介コンポーネント４０２は、最後に登録された入力メソッドコンポーネント（例えば、第３の入力メソッドコンポーネント４０８）に基づいて、付加的なアプリケーションの機能性としてのデータをルートする。例えば、第３のウェブページ４１６から渡されたデータは、付加的なアプリケーションの機能性４２４として第３のアプリケーション４１０に送信され得る。
【００４１】
仲介コンポーネントが、単一の入力メソッドコンポーネント（例えば、第２の入力メソッドコンポーネント４０４）、次に、２つのクライアントアプリケーションに対する支援を提供するように開発され得ることは、対象のアーキテクチャの意図する範囲である。アプリケーション（４０６および４１０）および関連する入力メソッドコンポーネント（４０４および４０８）は、仲介コンポーネント４０２だけでなく、クライアントベースのアプリケーションでもある。ウェブページ（４１４および４１６）は、サーバベースであり、配置を更新するのに便利で効率的である。
【００４２】
本明細書に含まれるのは、開示されるアーキテクチャの新規の態様を行うための例示的な方法論を代表する一連のフローチャートである。解釈を簡易にする目的で、本明細書に示す１または複数の方法論を、一連の動作として、例えば、フローチャートまたはフロー図の形式で説明しているが、いくつかの動作は異なる順序および／または本明細書で説明した他の動作と同時に起こり得るので、その方法論に従った動作の順序によって限定されないことを理解して認識されたい。例えば、方法論は、状態ダイアグラム等の一連の相関する状態またはイベントとして代替的に表し得ることを当業者は理解して認識するであろう。さらに、方法論で具体的に示された動作のすべてが、新規の実装に必要になり得るとは限らない。
【００４３】
図５は、ブラウザ経由でコンテンツをアプリケーションに入力するコンテンツ方法を示す。５００において、ベースライン入力メソッドの機能性がアプリケーションに提供される。５０２において、付加的なアプリケーションの機能性に関連する組み込まれたコードを含むウェブページにアクセスされる。５０４において、ウェブページ内の組み込まれたコードが実行されて、付加的なアプリケーションの機能性を取得する。５０６において、付加的なアプリケーションの機能性がアプリケーションに付加される。
【００４４】
図６は、図５の方法の付加的な態様を示す。６００において、組み込まれたコードは、スクリプト言語で記述されて、ウェブページ内のマークアップ言語に組み込まれる。６０２において、ウェブページの組み込まれたコードが後続の実行用に更新されて、更新された組み込まれたコードに基づいて、更新された付加的なアプリケーションの機能性がアプリケーションに適用される。６０４において、ベースライン入力メソッドの機能性をブローカに提供する入力メソッドが登録されて、その登録に基づいたブローカ経由で付加的なアプリケーションの機能性がアプリケーションにルートされる。
【００４５】
図７は、図５の方法の付加的な態様を示す。７００において、ウェブページとのインタラクトに応答して、付加的なアプリケーションの機能性がアプリケーションに自動的に付加される。７０２において、追跡情報(tracking information)を使用して、アプリケーションとのインタラクトが複数のアプリケーション内で追跡される。７０４において、追跡情報が、仲介コンポーネントへの通知内に送信される。７０６において、追跡情報に基づいて、付加的なアプリケーションの機能性が対応するアプリケーションに付加される。
【００４６】
本出願で使用される用語「コンポーネント」および「システム」は、ハードウェア、ハードウェアとソフトウェアとの組み合わせ、ソフトウェア、または実行中のソフトウェアのいずれかのコンピュータに関連するエンティティを指すことを意図する。例えば、コンポーネントは、プロセッサ上で実行するプロセス、プロセッサ、ハードディスクドライブ、（光、半導体、および／または磁気ストレージ媒体の）複数のストレージデバイス、オブジェクト、実行ファイル、実行スレッド、プログラム、および／またはコンピュータになり得るが、これに限らない。実例として、サーバ上で実行するアプリケーションとそのサーバとの両方は、コンポーネントになり得る。１または複数のコンポーネントは、プロセスおよび／または実行スレッド内に常駐することができ、コンポーネントは、１つのコンピュータ上にローカライズされるおよび／または２または３以上のコンピュータ間で分散され得る。単語「例示的な」は、一例、インスタンス、または図示の役割を果たす意味で、本明細書で使用されてよい。本明細書で「例示的な」として説明される任意の態様または考案は、必ずしも好適なまたは他の態様または考案に優る利点と解釈されない。
【００４７】
次に図８を参照すると、開示されるアーキテクチャに従って、ブラウザ経由でコンテンツがアプリケーションに入力するのを容易にするコンピューティングシステム７００のブロック図が示されている。そのさまざまな態様に付加的な文脈を提供するために、図８および以下の考察は、さまざまな態様が実装され、適切なコンピューティングシステム８００の簡潔な概要を提供することを意図する。上記の説明は、１または複数のコンピュータ上で実行することができるコンピュータ実行可能命令の一般的な文脈であるが、新規の実施形態も、他のプログラムモジュールとの組み合わせおよび／またはハードウェアとソフトウェアとの組み合わせとして実装され得ることを当業者は認識するであろう。
【００４８】
さまざまな態様を実装するためのコンピューティングシステム８００は、処理ユニット（複数可）８０４と、システムメモリ８０６と、システムバス８０８とを有するコンピュータ８０２を含む。処理ユニット（複数可）８０４は、単一プロセッサ、マルチプロセッサ、単一コアのユニットおよびマルチコアのユニットのなどの、さまざまな市販のプロセッサのいずれにもなり得る。さらに、新規の方法は、それぞれが１または複数の関連するデバイスに動作接続され得るミニコンピュータ、メインフレームコンピュータだけでなく、パーソナルコンピュータ（例えば、デスクトップ、ラップトップ等）、ハンドヘルドコンピューティングデバイス、マイクロプロセッサベースまたはプログラマブルな家電製品および同種のものも含む、他のコンピュータシステム構成に実践され得ることを当業者は認識するであろう。
【００４９】
システムメモリ８０６は、揮発性（ＶＯＬ）メモリ８１０（例えば、ランダムアクセスメモリ（ＲＡＭ））と、不揮発性メモリ（ＮＯＮ−ＶＯＬ）８１２（例えば、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ等）とを含むことができる。基本入出力システム（ＢＩＯＳ）を不揮発性メモリ８１２に格納することができ、スタートアップ時のような、コンピュータ８０２内のコンポーネント間でデータおよび信号の通信を容易にする基本ルーチンを含む。揮発性メモリ８１０は、データキャッシング用のスタティックＲＡＭのような高速ＲＡＭを含むこともできる。
【００５０】
システムバス８０８は、メモリサブシステム８０６と処理ユニット（複数可）８０４とをつなぐインタフェースを含む、システムコンポーネント用のインタフェースを提供するが、これに限らない。システムバス８０８は、各種市販のバスアーキテクチャのいずれかを使用して、メモリバス（メモリコントローラの有無を問わず）と、周辺バス（例えば、ＰＣＩ、ＰＣＩｅ、ＡＧＰ、ＬＰＣ等）とにさらに相互接続することができるいくつかのタイプのバス構造のいずれにもされ得る。
【００５１】
コンピュータ８０２は、ストレージサブシステム（複数可）８１４と、ストレージサブシステム（複数可）８１４をシステムバス８０８および他の望ましいコンピュータコンポーネントにインタフェースするためのストレージインタフェース（複数可）８１６とをさらに含む。ストレージサブシステム（複数可）８１４は、例えば、１または複数のハードディスクドライブ（ＨＤＤ）、磁気フロッピーディスクドライブ（ＦＤＤ）、および／または光ディスクストレージドライブ（例えば、ＣＤ−ＲＯＭドライブ、ＤＶＤドライブ）を含むことができる。ストレージインタフェース（複数可）８１６は、例えば、ＥＩＤＥ、ＡＴＡ、ＳＡＴＡ、およびＩＥＥＥ１３９４のなどのインタフェース技術を含むことができる。
【００５２】
１または複数のプログラムおよびデータは、メモリサブシステム８０６、リムーバブルメモリサブシステム８１８（例えば、フラッシュドライブ形態の技術因子）、および／またはオペレーティングシステム８２０、１または複数のアプリケーションプログラム８２２、他のプログラムモジュール８２４、およびプログラムデータ８２６を含む、ストレージサブシステム（複数可）８１４（例えば、光、磁気、半導体）に格納され得る。
【００５３】
１または複数のアプリケーションプログラム８２２、他のプログラムモジュール８２４、およびプログラムデータ８２６は、図１の入力メソッドコンポーネント１０２、アプリケーション１０４、ベースライン入力メソッドの機能性１０６、仲介コンポーネント１０８、付加的な機能性１１４、データ１１０、ブラウザ１１８、ウェブドキュメント１１２および組み込まれたコード１１６と、図２のコンポーネントおよびエンティティと、図４のコンポーネントおよびエンティティと、例えば、図５から図７の方法で説明した１または複数の動作とを含むことができる。
【００５４】
一般的に、プログラムは、ルーチン、方法、データ構造、他のソフトウェアコンポーネント等を含み、それらは、特定のタスクを行うまたは特定の抽象データ型を実装する。オペレーティングシステム８２０、アプリケーション８２２、モジュール８２４、および／またはデータ８２６のすべてまたは一部を、例えば、揮発性メモリ８１０のようなメモリにキャッシュすることもできる。開示されるアーキテクチャは、（例えば、仮想マシンのような）さまざまな市販のオペレーティングシステムまたはオペレーティングシステムの組み合わせに実装され得ることを認識されたい。
【００５５】
ストレージサブシステム（複数可）８１４およびメモリサブシステム（８０６および８１８）は、データ、データ構造、コンピュータ実行可能命令その他からなる揮発性および不揮発性ストレージ用のコンピュータ可読媒体の役割を果たす。コンピュータ可読媒体は、コンピュータ８０２によってアクセスされ得る利用可能な媒体のいずれにもすることができ、揮発性および不揮発性媒体、リムーバブルおよびノンリムーバブル媒体を含む。コンピュータ８０２に対して、そのような媒体は、適した任意のデジタルフォーマットでデータのストレージに対処する。開示されるアーキテクチャの新規の方法を行うコンピュータ実行可能命令を格納するために、ジップドライブ、磁気テープ、フラッシュメモリカード、カートリッジおよび同種のものといった他のタイプのコンピュータ可読媒体が用いられ得ることを当業者は認識されたい。
【００５６】
ユーザは、キーボードおよびマウスのような外部のユーザ入力デバイス８２８を使用して、コンピュータ８０２、プログラム、およびデータとインタラクトすることができる。他の外部のユーザ入力デバイス８２８は、マイクロフォン、ＩＲ（赤外線）リモート制御、ジョイスティック、ゲームパッド、カメラ認識システム、スタイラスペン、タッチスクリーン、ジェスチャーシステム（例えば、目の動き、頭の動き等）および／または同種のものを含むことができる。例えば、コンピュータ８０２がポータブルコンピュータである場合、ユーザは、タッチパッド、マイクロフォン、キーボードといった内蔵ユーザ入力デバイス８３０を使用して、コンピュータ８０２、プログラム、およびデータとインタラクトすることができる。これらと他の入力デバイスは、システムバス８０８経由で入出力（Ｉ／Ｏ）デバイスインタフェース（複数可）８３２を通じて処理ユニット（複数可）８０４に接続されるが、パラレルポート、ＩＥＥＥ１３９４シリアルポート、ゲームポート、ＵＳＢポート、ＩＲインタフェース等といった他のインタフェースによって接続され得る。Ｉ／Ｏデバイスインタフェース（複数可）８３２はまた、プリンタ、オーディオデバイス、カメラデバイス、およびその他としてサウンドカードおよび／または内蔵オーディオ処理能力等の、出力周辺機器８３４の使用を容易にする。
【００５７】
１または複数のグラフィックスインタフェース（複数可）８３６（広くグラフィックス処理ユニット（ＧＰＵ）とも呼ばれる）は、コンピュータ８０２と、外部ディスプレイ（複数可）８３８（例えば、ＬＣＤ、プラズマ）および／または内蔵ディスプレイ８４０（例えば、ポータブルコンピュータ）との間でグラフィックスおよびビデオ信号を提供する。グラフィックスインタフェース（複数可）８３６を、コンピュータシステムボードの一部として製造することもできる。
【００５８】
コンピュータ８０２は、有線／無線通信サブシステム８４２経由で１または複数のネットワークおよび／または他のコンピュータへの論理接続を使用して、ネットワーク化環境（例えば、ＩＰ）において動作することができる。その他のコンピュータは、ワークステーション、サーバ、ルータ、パーソナルコンピュータ、マイクロプロセッサベースの娯楽家電製品、ピアデバイス、または他の共通ネットワークノードを含むことができ、典型的には、コンピュータ８０２に対して説明した要素の多くまたはすべてを含む。論理接続は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）、ホットスポット等に対する有線／無線接続性を含むことができる。ＬＡＮおよびＷＡＮネットワーキング環境は、事務所および会社では普通のことであり、イントラネットのような企業規模のコンピュータネットワークを容易にし、そのすべてがインターネットのようなグローバル通信ネットワークに接続できる。
【００５９】
ネットワーク化環境において使用される時、コンピュータ８０２は、有線／無線通信サブシステム８２４（例えば、ネットワークインタフェースアダプタ、内蔵トランシーバサブシステム等）経由でネットワークに接続して、有線／無線ネットワーク、有線／無線プリンタ、有線／無線入力デバイス８４４等との通信を行う。コンピュータ８０２は、モデムを含むことができ、またはネットワーク上で通信を確立するための他の手段を有する。ネットワーク化環境において、コンピュータ８０２に対するプログラムおよびデータは、分散システムと関連付けられる時にリモートメモリ／ストレージデバイスに格納され得る。図示されたネットワーク接続は、例示的であり、コンピュータ間で通信リンクを確立する他の手段も使用され得ることが認識されるであろう。
【００６０】
コンピュータ８０２は、例えば、プリンタ、スキャナ、デスクトップおよび／またはポータブルコンピュータ、パーソナルデジタルアシスタント（ＰＤＡ）、通信衛星、無線で検出可能なタグと関連付けられた任意の設備または場所（例えば、キオスク、新聞売店、化粧室）、および電話器との無線通信（例えば、ＩＥＥＥ８０２．１１無線変調技術）に動作配置された無線デバイスのような、ＩＥＥＥ８０２．ｘｘ標準ファミリー等の無線技術を使用して、有線／無線デバイスまたはエンティティとの通信を行うように動作する。これは、少なくともホットスポット用のＷｉ−Ｆｉ（またはワイヤレスフィディリティー）、ＷｉＭａｘ、およびＢｌｕｅｔｏｏｔｈ（商標）の無線技術を含む。従って、そのような通信は、従来のネットワークまたは少なくとも２つのデバイス間の単なるアドホック通信のように、事前定義された構造になり得る。Ｗｉ−Ｆｉネットワークは、ＩＥＥＥ８０２．１１ｘ（ａ、ｂ、ｇ等）と呼ばれる無線技術を使用して、セキュアで信用できる、高速無線の接続性を提供する。Ｗｉ−Ｆｉネットワークを使用して、コンピュータを相互に接続したり、インターネットおよび無線ネットワーク（ＩＥＥＥ８０２．３に関連する媒体および機能）に接続することができる。
【００６１】
次に図９を参照すると、ブラウザ経由でコンテンツがアプリケーションに入力するのを容易にするコンピューティング環境９００のブロック図が示されている。環境９００は、１または複数のクライアント９０２を含む。クライアント（複数可）９０２は、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティングデバイス）になり得る。クライアント（複数可）９０２は、例えば、クッキー（複数可）および／または関連する文脈情報を格納することができる。
【００６２】
環境９００は、１または複数のサーバ９０４も含む。サーバ（複数可）９０４を、ハードウェアおよび／またはソフトウェア（例えば、スレッド、プロセス、コンピューティングデバイス）にすることもできる。サーバ９０４は、スレッドを格納して、例えば、そのアーキテクチャを用いることによって変換を行うことができる。クライアント９０２とサーバ９０４との間の一つの実行可能な通信は、２または３以上のコンピュータプロセス間で伝送するのに適応するデータパケットの形式になり得る。データパケットは、例えば、クッキーおよび／または関連する文脈情報を含んでよい。環境９００は、クライアント（複数可）９０２とサーバ（複数可）９０４との間の通信を容易にするのに用いることができる、通信フレームワーク９０６（例えば、インターネット等のグローバル通信ネットワーク）を含む。
【００６３】
通信は、（光ファイバーを含む）有線および／または無線技術を経由して容易にされ得る。クライアント（複数可）９０２は、情報（例えば、クッキー（複数可）および／または関連する文脈情報）をローカルからクライアント（複数可）９０２に格納するのに用いられ得る、１または複数のクライアントデータストア９０８に動作接続される。同様に、サーバ（複数可）９０４は、情報をローカルからサーバ９０４に格納するのに用いられ得る、１または複数のサーバデータストア９１０に動作接続される。
【００６４】
上述した内容は、開示されるアーキテクチャの例を含む。もちろん、コンポーネントおよび／または方法論の考えられるあらゆる組み合わせを説明するのは不可能であるが、当業者は、さらに多くの組み合わせおよび置き換えが実現可能であることを認識できる。それによって、新規のアーキテクチャは、添付の特許請求の精神および範囲内において、そのようなすべての代替、修正および変形を包含することを意図する。さらに、用語「含む」が詳細な説明または特許請求の範囲のいずれかで使用される限り、このような用語は、用語「備える」が特許請求の範囲において用いられる時に「備える」が移行語として解釈されるのと同様に包括的であることを意図する。
【図１】
0005757533.tif 000002
【図２】
0005757533.tif 000003
【図３】
0005757533.tif 000004
【図４】
0005757533.tif 000005
【図５】
0005757533.tif 000006
【図６】
0005757533.tif 000007
【図７】
0005757533.tif 000008
【図８】
0005757533.tif 000009
【図９】
0005757533.tif 000010