(57)【要約】      （修正有）【課題】汎用リコグナイザと汎用アクションハンドラとを有する汎用スマートタグモジュールを提供する。【解決手段】リポジトリへのアクセスを有するプラットフォームに対して提供され、リポジトリは、スマートタグ構成情報と、各ホストアプリケーション用のリコグナイザおよびアクションハンドラとを含む、多くのプラットフォームに対して利用可能な共有データストアとする。汎用モジュールは、選択されたリコグナイザおよびアクションハンドラを、実行時に動的にリポジトリからロードおよびアンロード、アプリケーションへの登録を処理、スマートタグインターフェースを実装、ドキュメントのコンテキストを判定、判定したコンテキストに基づいて、リコグナイザおよびアクションハンドラをリポジトリからロード、表現を評価、データソースに記憶されたデータをドキュメント中で検索を行う。【選択図】図２
2006048645.tif 000002
【特許請求の範囲】
【請求項１】
ドキュメントにコンテキスト情報を追加する方法であって、
ドキュメントのコンテキストを判定することと、
前記コンテキスト情報に関連付けられた構成情報をリポジトリからロードすることと、
前記コンテキストおよび前記構成情報に応答して処理モジュールを前記リポジトリからロードすることであって、前記処理モジュールは、アクティブ化されたときにコンテキスト情報を前記ドキュメントに追加することと
を備えることを特徴とする方法。
【請求項２】
構成情報をリポジトリからロードすることは、前記構成情報をロードする位置からリモートであるリポジトリから構成情報をロードすることを備えることを特徴とする請求項１に記載の方法。
【請求項３】
構成情報をリポジトリからロードすることは、ダイナミックリンクライブラリ（ＤＬＬ）に対するポインタをロードすることを備えることを特徴とする請求項１に記載の方法。
【請求項４】
構成情報をリポジトリからロードすることは、前記構成情報を備えるデータソースをロードすることを備えることを特徴とする請求項１に記載の方法。
【請求項５】
構成情報をリポジトリからロードすることは、前記構成情報を備える表現をロードすることを備えることを特徴とする請求項１に記載の方法。
【請求項６】
構成情報をリポジトリからロードすることは、コンテキストを判定することができない場合にデフォルトの構成情報をロードすることを備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記構成情報は、複数のコンテキストに適用される情報を含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記リポジトリは、複数のエンティティによってアクセスできることを特徴とする請求項１に記載の方法。
【請求項９】
前記ロードされた構成情報をアンロードすることをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１０】
前記ロードされた処理モジュールをアンロードすることをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１１】
処理モジュールへの呼出しを行って、ドキュメント中の選択されたデータを認識することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１２】
認識されたデータに応答して別の処理モジュールへの呼出しを行うことをさらに備えることを特徴とする請求項１１に記載の方法。
【請求項１３】
ドキュメントの前記コンテキストは、前記ドキュメントのプロパティを備えることを特徴とする請求項１に記載の方法。
【請求項１４】
ドキュメントの前記コンテキストは、前記ドキュメントに関連付けられたスタイルシートを備えることを特徴とする請求項１に記載の方法。
【請求項１５】
ドキュメントの前記コンテキストは、前記ドキュメントに添付されたスキーマを備えることを特徴とする請求項１に記載の方法。
【請求項１６】
ドキュメントの前記コンテキストは、前記ドキュメントの作成に使用されるホストアプリケーションを備えることを特徴とする請求項１に記載の方法。
【請求項１７】
請求項１に記載の方法を実施するための命令を有することを特徴とする機械可読媒体。
【請求項１８】
ドキュメントにコンテキスト情報を追加する装置であって、
前記ドキュメントのコンテキストを判定するための手段と、
前記コンテキスト情報に関連付けられた構成情報をリポジトリからロードするための手段と、
前記コンテキストおよび前記構成情報に応答して処理モジュールを前記リポジトリからロードするための手段であって、前記処理モジュールは、アクティブ化されたときにコンテキスト情報を前記ドキュメントに追加する手段と
を備えたことを特徴とする装置。
【請求項１９】
前記リポジトリは、前記装置からリモートに位置することを特徴とする請求項１８に記載の装置。
【請求項２０】
前記構成情報は、ダイナミックリンクライブラリ（ＤＬＬ）に対するポインタ、データソースおよび表現のうちの１つまたは複数を備えたことを特徴とする請求項１８に記載の装置。
【請求項２１】
構成情報をロードするための前記手段は、判定するための前記手段が前記ドキュメントのコンテキストを判定することができないことに応答して、デフォルトの構成情報をロードすることを特徴とする請求項１８に記載の装置。
【請求項２２】
ロードされた構成情報をアンロードするための手段と、ロードされた処理モジュールをアンロードするための手段とをさらに備えたことを特徴とする請求項１８に記載の装置。
【請求項２３】
処理モジュールへの呼出しを行って、前記ドキュメント中の選択されたデータを認識するための手段をさらに備えたことを特徴とする請求項１８に記載の装置。
【請求項２４】
認識されたデータに応答して別の処理モジュールへの呼出しを行うための手段をさらに備えたことを特徴とする請求項２３に記載の装置。
【請求項２５】
ドキュメントにコンテキスト情報を追加するシステムであって、
ロードされた第２のリコグナイザへの呼出しを行って、前記ドキュメント中の選択されたデータを認識する第１のリコグナイザと、
前記第１のリコグナイザによって認識されたデータに応答して、ロードされた第２のアクションハンドラへの呼出しを行う第１のアクションハンドラと、
前記ドキュメントのコンテキストを判定し、それに応答して、前記コンテキスト情報に関連付けられた構成情報をリポジトリからロードする構成ローダと
を備えたことを特徴とするシステム。
【請求項２６】
前記構成ローダは、前記ロードされた構成情報に応答して前記第２のリコグナイザおよびアクションハンドラをロードするものであることを特徴とする請求項２５に記載のシステム。
【請求項２７】
前記構成ローダはさらに、前記ロードされた構成情報に応答して複数のリコグナイザおよび複数のアクションハンドラをロードするものであることを特徴とする請求項２５に記載のシステム。
【請求項２８】
マシンにインストールされたときに、前記ドキュメントの作成に使用されたホストアプリケーションに登録されることを特徴とする請求項２５に記載のシステム。
【請求項２９】
前記第２のリコグナイザは、前記ドキュメントの作成に使用されたホストアプリケーションに登録されている必要はないことを特徴とする請求項２５に記載のシステム。
【請求項３０】
前記構成情報は、ダイナミックリンクライブラリに対するポインタ、データソースおよび表現のうちの１つまたは複数を備えたことを特徴とする請求項２５に記載のシステム。
【請求項３１】
前記リポジトリは、前記システムがあるマシン以外のマシンにあることを特徴とする請求項２５に記載のシステム。
【請求項３２】
前記リポジトリは、前記システムがあるマシン以外のマシンにある他のシステムからアクセス可能であることを特徴とする請求項２５に記載のシステム。
【請求項３３】
請求項２５に記載のシステムを実現するコンポーネントを有することを特徴とする機械可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
以下に述べる様々な実施形態は一般に、電子ドキュメントの生成および処理に関し、より詳細には、ただし限定ではないが、このようなドキュメント中でコンテキスト情報を追加および処理することに関する。
【背景技術】
【０００２】
多くの実世界シナリオで、ユーザは、ドキュメント（例えばテキストドキュメント、スプレッドシート、ｅメールなど）の中に現れる人、会社、住所などに関する追加情報に、容易にアクセスしたいであろう。ワシントン州レッドモンドのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎによって開発されたスマートタグ（ＳｍａｒｔＴａｇ）技術は、このようなコンテキスト情報をドキュメントに追加しコンテキスト情報にアクセスするための機構を提供している。図１Ａから図１Ｃに、コンテキスト情報をテキストドキュメントの一部に追加するスマートタグ技術の例を示す。
【０００３】
図１Ａに、テキストドキュメント中に現れる住所１００「Ｏｎｅ  Ｍｉｃｒｏｓｏｆｔ  Ｗａｙ，Ｒｅｄｍｏｎｄ，Ｗａｓｈｉｎｇｔｏｎ  ９８０５２」を示す。住所１００の下に配置された破線１０２は、テキストドキュメントのこの部分がスマートタグ（すなわちこのテキスト部分に関連するコンテキスト情報）を有することを示している。スマートタグ技術は、関連付けられたコンテキスト情報のセットが利用可能である事前選択されたストリングについてドキュメントを調べるリコグナイザを含む。コンテキスト情報は、ダイナミックリンクライブラリ（ＤＬＬ）またはその他のデータストアに記憶される。次いでリコグナイザは、認識されたストリングにこのコンテキスト情報を付加する。
【０００４】
図１Ｂに、ユーザが破線１０２の上にカーソルを置いたときにスマートタグ技術が表示する「オプション」ボタン１１０を示す。スマートタグ技術はまた、オプションボタン１１０を使用してスマートタグアクションのメニューが表示されていることを示す追加のグラフィック１１２も表示する。スマートタグ技術は、認識されたストリングに関連付けられたコンテキスト情報を処理して、認識されたストリングに関してユーザがとることのできるアクションを提供するアクションハンドラを含む。
【０００５】
図１Ｃに、ユーザがオプションボタン１１０をアクティブ化したときに表示されるメニュー１２０を示す。メニュー１２０は、住所１００に関してユーザがとることのできる様々なアクションを示している。アクションハンドラは、メニュー１２０を表示し、ユーザによって選択されたときにアクションを実行する。
【０００６】
この例は、テキストドキュメントの認識されたストリングに基づいてスマートタグを例示しているが、スマートタグは、テキストストリング以外のタイプのデータ、および／または他のタイプのドキュメントやファイルに基づくこともできる。他のスマートタグは、他のタイプのデータ（例えば人名、会社、製品、日付、場所など）を認識するように提供することができ、これらはそれぞれ、異なるコンテキスト情報および実行可能アクション（その人宛てのｅメールを開始する、その人のカレンダを見る、その会社の電話番号を表示する、その会社に送られたインボイスを表示する、その製品についてなされたサービス要求を表示するなど）に関連付けられる。この単純な例は、スマートタグ技術がユーザにとっていかに強力で有用なものになり得るかを示している。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
現在、スマートタグは、アプリケーションごとに実施されている。すなわち、ユーザは、スマートタグ対応の各アプリケーションごとにリコグナイザおよびアクションハンドラが登録されるようにしなければならず、それにより、アプリケーションを開くとリコグナイザおよびアクションハンドラがインスタンス化されることになる。大規模な組織では、リコグナイザおよびアクションハンドラを配置して、これらを各アプリケーションごとに登録するのは、かなりの作業となる場合がある。スマートタグの維持（例えば既存のリコグナイザおよびアクションハンドラの更新および削除、新しいリコグナイザおよびアクションハンドラの追加）もまた、大規模な組織では膨大な作業となる可能性がある。
【０００８】
さらに、リコグナイザは、ドキュメントのタイプによっては有用でないデータを認識する場合がある（例えば、私的な友人への手紙の中で、自分のクライアントの製品の名前を認識する）にもかかわらず、そのアプリケーションを使用して書かれたすべてのタイプのドキュメントに適用されることになる。さらに、スマートタグを書く開発者は、リコグナイザおよびアクションハンドラのためのインターフェースを実装しなければならず、これは開発者にとってのコストおよび複雑さを増大させる傾向になる。
【課題を解決するための手段】
【０００９】
様々な実施形態の態様により、汎用スマートタグシステムが提供される。一態様では、リポジトリへのアクセスを有するコンピュータプラットフォームに対して汎用スマートタグモジュール（汎用リコグナイザおよび汎用アクションハンドラを含む）が提供され、リポジトリは、スマートタグ構成情報と、プラットフォーム中にある各スマートタグ対応アプリケーション用のリコグナイザおよびアクションハンドラとを含む。リポジトリは、多くのコンピューティングプラットフォームによって利用可能な共有データストアとすることができる。汎用スマートタグモジュールは、選択されたリコグナイザおよびアクションハンドラを、実行時に動的にリポジトリからロードおよびアンロードすることができる。共有リポジトリは、利点として、リコグナイザおよびアクションハンドラの維持を簡単にする。
【００１０】
別の態様では、汎用スマートタグモジュールは、スマートタグ対応アプリケーションとのすべての登録を処理し、スマートタグが動作するのに必要なすべてのインターフェース（例えばコンポーネントオブジェクトモデル、すなわちＣＯＭインターフェース）を実装する。この態様は、スマートタグを書く開発者にとっての複雑さを大きく低減する。
【００１１】
別の態様では、汎用スマートタグモジュールは、ドキュメントのコンテキストを判定し、判定したコンテキストに基づいて、リコグナイザおよびアクションハンドラをリポジトリからロードする。コンテキストを判定することができないときは、汎用スマートタグモジュールは、デフォルトのリコグナイザおよびアクションハンドラのセットをロードすることができる。この態様により、コンピューティングプラットフォームは、ドキュメントのコンテキストに合わせたリコグナイザおよびアクションハンドラのセットを有することができ、ドキュメント中で無関係のデータを認識するのを回避することができる。
【００１２】
別の態様では、汎用スマートタグモジュール自体が表現を評価することができる。この態様では、開発者はリポジトリ中の表現を指定するだけでよく、表現を評価するコードを書かなくてもよいので、開発者にとっての複雑さが低減される。関連の態様では、汎用スマートタグモジュール自体が、データソースに記憶されたデータをドキュメント中で検索することができる。この関連の態様では、開発者はデータソースの位置を指定するだけでよく、検索を実行するコードを書かなくてもよいので、開発者にとっての複雑さが低減される。
【００１３】
図を参照しながら、非限定的で非網羅的な実施形態について述べる。様々な図を通して、特に指定がない限り、同様の参照番号は同様の部分を指す。
【発明を実施するための最良の形態】
【００１４】
以下の技法および機構は、ドキュメントにコンテキスト情報を埋め込むための方法およびシステムを実現することを対象とする。一般的に言えば、１つまたは複数のローカルマシンのための汎用モジュールが提供される。各汎用モジュールはリポジトリにアクセスすることができ、リポジトリは、ドキュメントが開かれたときにローカルマシンによって動的にロードすることのできるリコグナイザおよびアクションハンドラを含む。リポジトリは、リモートマシン中にある（または複数のリモートマシンにわたって分散している）ものとすることができ、ローカルマシンによって共有することができる。一実施形態では、システムは、Ｍｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから利用可能なスマートタグ技術に基づく。以下、この一般概念の具体的な実装形態について述べる。
【００１５】
図２は、一実施形態による、前述のようにリコグナイザおよびアクションハンドラをリポジトリ２０４からローカルマシン２０２にロードするためのシステム２００を示す機能ブロック図である。この実施形態はスマートタグ技術に基づいているが、他の実施形態では、他の技術を使用してドキュメントにコンテキスト情報を埋め込むこともできる。この実施形態では、ローカルマシン２０２は、汎用スマートタグモジュール２１０と、１つまたは複数のスマートタグ対応アプリケーション２１２とを備えている。スマートタグ対応アプリケーションは、本明細書ではホストアプリケーションとも呼ばれる。汎用スマートタグモジュール２１０は、この実施形態では、ローカルマシン２０２上で実現されたコンピューティング環境（図示せず）で実行されるソフトウェアコンポーネントである。例示的なコンピューティング環境については、後で図５に関して述べる。システム２００で、汎用スマートタグモジュール２１０とリポジトリ２０４とは、矢印２１６で示すように情報を交換することができる。
【００１６】
さらに、この実施形態では、汎用スマートタグモジュール２１０は、構成情報をリポジトリ２０４からロードするための構成ローダ２２４と、リポジトリ２０４からロードされたリコグナイザへの呼出しを実行するための汎用リコグナイザ２２６と、リポジトリ２０４からロードされたアクションハンドラへの呼出しを実行するための汎用アクションハンドラ２２８も備えている。いくつかの実施形態では、汎用アクションハンドラ２２８は、表現の評価も実行する（例えばＭｉｃｒｏｓｏｆｔによって開発された．ＮＥＴフレームワークに従った表現）。この例は、スマートタグモジュール２１０がいくつかの「サブモジュール」を有するものとして表しているが、他の実施形態では、これらのサブモジュールの機能は、より少ない（またはより多くの）サブモジュールに、異なる組合せで分散させることもできる。
【００１７】
リポジトリ２０４は、この実施形態では、スマートタグ構成情報２３０と、リコグナイザおよびアクションハンドラ２３２とを備えている。スマートタグ構成情報２３０は、リコグナイザおよびアクションハンドラ２３２の各リコグナイザおよびアクションハンドラの位置に関する情報を含む。例えば、構成情報はポインタのセットを含むことができ、各リコグナイザおよびアクションハンドラに対して１つのポインタがある。一実施形態では、スマートタグ構成情報２３０はメタデータの形態であるが、他の実施形態では、構成情報はファイル、ドキュメント、またはその他の適した形態に含めることができる。リポジトリ２０４は、図２では単一のデバイスとして表されているが、ローカルマシン２０２からアクセス可能ないくつかのデバイスに分散されていてもよい。例えば、スマートタグ構成情報２３０をあるデバイスに記憶し、リコグナイザおよびアクションハンドラ２３２を別のデバイスに記憶することができるが、これらもやはり単一の論理位置で表すことができる。リコグナイザおよびアクションハンドラが単一の論理位置に記憶されるので、リコグナイザおよびアクションハンドラを配置および維持することについては、複雑さを大幅に低減することができ、時間を大幅に短縮することができる。
【００１８】
いくつかの実施形態では、リコグナイザおよびアクションハンドラ２３２は、コンテキスト特有のリコグナイザおよびアクションハンドラを含む。リコグナイザおよびアクションハンドラ２３２はまた、あらゆるホストアプリケーションに使用され、それゆえ必ずしも特定のコンテキストに関連付けられないリコグナイザおよびアクションハンドラの標準セットを含むこともできる。
【００１９】
いくつかの実施形態では、ドキュメントの「コンテキスト」は、ドキュメントの目的および用途を指す。ドキュメントのコンテキストの例には、ドキュメントを作成するのに使用されるホストアプリケーション、ドキュメントを作成する際に使用されるスタイルシート、ドキュメントのプロパティなどを含めることができる。例えば、法的ドキュメント（例えば契約書）は、科学ドキュメントとは非常に異なるコンテキストを有する可能性がある。「法的」コンテキストを有するドキュメントで使用されるリコグナイザは、法律用語を認識し、科学用語は無視するように適合させることができ、科学ドキュメントに使用されるリコグナイザは、科学用語を認識し、法律用語は無視するように適合させることができる。開発者はこの場合、ドキュメントの各コンテキスト用にリコグナイザおよび／またはアクションハンドラを作成して、リポジトリ２０４に記憶されるようにすることができる。上記の実施形態はスマートタグ技術を使用しているが、他の実施形態では、他の技術を使用してドキュメントにコンテキスト情報を埋め込むこともできる。
【００２０】
図３に、一実施形態による、リコグナイザおよびアクションハンドラを動的にロードおよび呼出しの際汎用スマートタグモジュール２１０（図２）の動作フローを一般に示す。図２および図３を参照すると、この汎用スマートタグモジュール２１０の動作フローの例は、ローカルマシン２０２のユーザがホストアプリケーションを使用してドキュメントを開いたときまたは作成したときに開始する。
【００２１】
ブロック３０２で、汎用スマートタグモジュール２１０がインスタンス化される。この実施形態では、ドキュメントを開くのに応答して、ローカルマシン２０２はホストアプリケーションを開く。ホストアプリケーションは、汎用スマートタグモジュール２１０をメモリにロードするが、これは、汎用スマートタグモジュール２１０がホストアプリケーションに登録されている（例えば汎用スマートタグモジュール２１０がローカルマシン２０２にインストールされたときに）からである。
【００２２】
ブロック３０４で、ドキュメントについて１つまたは複数のコンテキストを識別する。この実施形態では、汎用スマートタグモジュール２１０の構成ローダ２２４は、例えば、ドキュメントのプロパティ、ドキュメントのスタイルシート、ドキュメントの作成に使用されたホストアプリケーション、ドキュメントに添付されたスキーマ、ドキュメントに含まれるその他の任意の関連情報のうちの１つまたは複数を調べることによって、ドキュメントのコンテキストを判定するように構成される。コンテキスト、およびそれらを識別する機構は、通常はホストアプリケーションの開発者によって作成されるが、いくつかのシナリオでは、第三者の開発者がコンテキストを拡張することもできる。開発者はまた、対応するコンテキスト特有のリコグナイザおよびアクションハンドラを作成し、これらはリポジトリ２０４に記憶される。識別可能なコンテキストを有さないドキュメントがある場合もある。
【００２３】
ブロック３０６で、スマートタグ構成情報２３０をリポジトリ２０４から得て、ローカルマシン２０２にロードする。この実施形態では、構成ローダ２２４は、スマートタグ構成情報２３０を求める要求をリポジトリ２０４に送り、それに応答して、スマートタグ構成情報２３０をリポジトリ２０４から受け取る。
【００２４】
ブロック３０８で、１つまたは複数のリコグナイザおよび１つまたは複数のアクションハンドラをリポジトリ２０４から得て、ローカルマシン２０２にロードする。この実施形態では、構成ローダ２２４は、ブロック３０４で識別されたドキュメントのコンテキストに基づいて、スマートタグ構成情報２３０に含まれるリコグナイザおよびアクションハンドラのうちの１つまたは複数を選択する。ブロック３０４でコンテキストが識別されなかった場合は、構成ローダ２２４はデフォルトのリコグナイザおよびアクションハンドラのセットを選択することができる。配備者および／または管理者は、このデフォルトセットを定義および修正することができる。
【００２５】
ブロック３１０で、ブロック３０８で選択されたリコグナイザおよびアクションハンドラを、次にリポジトリ２０４から得てローカルマシン２０２にロードする。この実施形態では、構成ローダ２２４は、選択されたスマートタグ処理モジュール（例えばリコグナイザおよびアクションハンドラ）に対する要求（スマートタグ構成情報２３０から得られた選択されたリコグナイザおよびアクションハンドラの位置情報を含む）を、リポジトリ２０４に送る。これらの要求に応答して、構成ローダ２２４は、選択された処理モジュールをリポジトリ２０４から受け取る。このようにして、コンテキスト特有のリコグナイザおよびアクションハンドラを実行時に動的にロードすることができ（そして、もはや必要でなくなったときにアンロードすることができ）、それにより、関係のあるスマートタグを提供し、無関係のスマートタグの数を削減することによって、ユーザの体験を改善することができる。
【００２６】
選択された処理モジュールのうちの１つまたは複数は、開発者によって書かれたＤＬＬの形態とすることができ、配備者および／または管理者は、これらをリポジトリ２０４に記憶する。いくつかの実施形態では、処理モジュールは、正規表現（例えば前述の．ＮＥＴフレームワークに従った表現）を表す形態とすることもできる。他の実施形態では、種々のフレームワークまたは言語からの表現を使用または生成することができる。表現が評価されると、表現はテキスト中のパターンまたはストリングを識別する。スマートタグは、選択されたテキストに関して構成から提供される定義を使用して作成される。他のいくつかの実施形態では、処理モジュールは、データソースまたはデータソース位置を表す形態とすることもできる。データソースは、開発者がスマートタグを作成したストリングまたはデータのリストを含むことができる。データソースは、例えばデータベース、スプレッドシート、リストファイル、ＸＭＬドキュメントなどの形態とすることができる。
【００２７】
ブロック３１２で、ブロック３１０でロードされたリコグナイザを使用して、ドキュメントに対して認識動作を実行する。この実施形態では、汎用リコグナイザ２２６は、ドキュメントからのデータを選択し、各データにつき、ロードされたリコグナイザへの呼出しを行って、そのデータに関連付けられたスマートタグがあるかどうかを判定する。この実施形態では、各リコグナイザが１つのメソッド呼出し（例えばＩＳｍａｒｔＴａｇＲｅｃｏｇｎｉｚｅｒ２インターフェースの．Ｒｅｃｏｇｎｉｚｅ２（．．．）メソッド呼出し）を実施するだけでよいので、開発者は、ロードされたリコグナイザの実装を簡単化することができる。次いで、汎用リコグナイザ２２６は、スマートタグの実装をサポートするのに必要な他のすべてのインターフェースを処理する。この特徴の例は、後で図４と共に表現リコグナイザについて述べる。
【００２８】
ブロック３１４で、ブロック３１０でロードされたアクションハンドラを使用して、ドキュメントに対してアクション処理動作を実行する。この実施形態では、リコグナイザは、テキストを認識し、スマートタグを挿入する。スマートタグがユーザによって使用されたとき、汎用アクションハンドラ２２８がトリガされ、汎用スマートタグモジュール２１０はこの実行を、ブロック３１０で動的にロードされた正しいアクションハンドラにルーティングする。次いで、ドキュメント全体が処理されるまで、ドキュメントの他の部分からのデータについてブロック３１２および３１４を繰り返し実行することができる。
【００２９】
代替の一実施形態では、汎用スマートタグモジュール２１０（図２）は、ブロック３１０を実行する間にデータソース内容をロードする必要はない。そうではなく、汎用リコグナイザ２２６（図２）が、ブロック３１２を実行する間にデータソース内容をロードすることができる。
【００３０】
上記のプロセスを順番に図示および記述したが、他の実施形態では、各ブロックで述べた動作を、異なる順序で、複数回にわたって、および／または並列に実行することもできる。さらに、上記の実施形態はスマートタグ技術を使用しているが、他の実施形態では、他の技術を使用してドキュメントにコンテキスト情報を埋め込むこともできる。
【００３１】
図４に、一実施形態による、汎用スマートタグシステム２００（図２）の各部分を配備するプロセスを示す。この例は、管理者または配備者が登録されたホストアプリケーションの新しいリコグナイザ４０２を配備することに向けられている。新しいアプリケーションの場合、配備者または管理者は、これらの登録に必要なレジストリエントリを作成する必要がある。これは、例えばユーザがログオンしたときにスクリプトを介して実行することができる。
【００３２】
新しいリコグナイザ４０２が、ホストアプリケーションの開発者によって作成された。例えば、スマートタグインターフェース２リリース（例えばＭｉｃｒｏｓｏｆｔから入手可能なスマートタグソフトウェア開発者キット（ＳＤＫ）参照）に適合された一実施形態で開発者が新しいリコグナイザを作成した場合、リコグナイザは、．Ｒｅｃｏｇｎｉｚｅ２（．．．）メソッド呼出しに関する実装を提供するだけでよい。以下に、既知のソフトウェアバグ（すなわちバグ番号）の識別子を認識するための正規．ＮＥＴ表現の実施例を提供する。リコグナイザに対応するアクションハンドラは、次いで、認識されたバグ番号に特有の情報が入ったスマートタグを得る。
【００３３】
【表１】
2006048645.tif 000003
【００３４】
ブロック４０４で、リコグナイザのタイプが判定される。この実施形態では、３つのタイプのリコグナイザ（すなわちＤＬＬ、正規表現、データソース）があるが、他の実施形態では、異なる数のタイプがあってもよい。この実施形態では、アクションハンドラはＤＬＬである。
【００３５】
決定ブロック４０６で、リコグナイザ４０２がデータソースタイプかどうかを判定する。この実施形態では、配備者または管理者がこの判定を行う。リコグナイザ４０２がデータソースタイプである場合は、動作フローはブロック４０８に進む。
【００３６】
ブロック４０８で、配備者または管理者は、リコグナイザ４０２のデータソースのコピーをリポジトリ２０４（図２）に記憶し、記憶されたデータソースの位置へのポインタ（または記憶されたデータソースの位置を識別するための他の機構）をスマートタグ構成情報２３０（図２）に入力するだけでよい。ブロック４０６でリコグナイザ４０２がデータソースでないと判定された場合は、動作フローはブロック４１０に進む。
【００３７】
決定ブロック４１０で、リコグナイザ４０２が正規表現かどうかを判定する。この実施形態では、配備者または管理者がこの判定を行う。リコグナイザ４０２が正規表現タイプである場合は、動作フローはブロック４１２に進む。
【００３８】
ブロック４１２で、配備者または管理者は、正規表現を表すデータをスマートタグ構成情報２３０（図２）に記憶するだけでよい。以下に、前述のバグ番号表現の場合の例を提供する。
【００３９】
【表２】
2006048645.tif 000004
【００４０】
この実施形態では、汎用スマートタグモジュール２１０（図２）は、表現を別個の動作でリポジトリ２０４から得なければならないのではなく、このリコグナイザに必要なすべての情報をスマートタグ構成情報２３０から直接得る。この実施形態では、ブロック４１０でリコグナイザ４０２が正規表現でないと判定された場合は、リコグナイザ４０２はＤＬＬタイプであり、動作フローはブロック４１４に進む。
【００４１】
ブロック４１４で、配備者または管理者は、リコグナイザ４０２のＤＬＬのコピーをリポジトリ２０４（図２）に記憶し、ＤＬＬが記憶された位置へのポインタ（またはＤＬＬの位置を識別するための他の機構）をスマートタグ構成情報２３０（図２）に追加する必要がある。以下に、位置情報をスマートタグ構成情報２３０に追加する場合の例を提供する。
【００４２】
【表３】
2006048645.tif 000005
【００４３】
アクションハンドラを配備するためには、配備者または管理者は、ブロック４１４の操作とほぼ同様の操作を実行して、アクションハンドラＤＬＬをリポジトリ２０４に記憶し、ＤＬＬへのポインタをスマートタグ構成情報２３０（図２）に追加する。
【００４４】
上記のプロセスを順番に図示および記述したが、他の実施形態では、各ブロックで述べた動作を、異なる順序で、複数回にわたって、および／または並列に実行することもできる。さらに、上記の実施形態はスマートタグ技術を使用しているが、他の実施形態では、他の技術を使用してドキュメントにコンテキスト情報を埋め込むこともできる。
【００４５】
（例示的な動作環境）
前述の様々な実施形態は、サーバおよびクライアントのコンピュータ環境で実施することができる。サーバおよびクライアント中で使用するのに適した例示的なコンピュータ環境を、図５に関して以下に述べる。
【００４６】
図５を参照すると、本発明を実施するための例示的なシステムは、コンピューティングデバイス５００などのコンピューティングデバイスを含む。コンピューティングデバイス５００は通常、その最も基本的な構成では、少なくとも１つの処理ユニット５０２と、メモリ５０４を備える。コンピューティングデバイスの厳密な構成およびタイプに応じて、メモリ５０４は、揮発性（ＲＡＭなど）、不揮発性（ＲＯＭ、フラッシュメモリなど）、またはこの２つの何らかの組合せとすることができる。この最も基本的な構成を、図５では破線５０６で示す。さらに、デバイス５００は、追加の機構／機能を有することもできる。例えば、デバイス５００は追加のストレージ（リムーバブルおよび／または非リムーバブル）を備えることもでき、限定しないがこれらには、磁気ディスクまたは光ディスク、あるいはテープが含まれる。このような追加のストレージを、図５ではリムーバブルストレージ５０８および非リムーバブルストレージ５１０で示す。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性および不揮発性、リムーバブルおよび非リムーバブルな媒体が含まれる。メモリ５０４、リムーバブルストレージ５０８、非リムーバブルストレージ５１０はすべて、コンピュータ記憶媒体の例である。コンピュータ記憶媒体には、限定しないがＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイスが含まれ、あるいは、所望の情報を記憶するのに使用できデバイス５００からアクセスできるその他の任意の媒体が含まれる。このようなコンピュータ記憶媒体はどれも、デバイス５００の一部とすることができる。
【００４７】
デバイス５００は、デバイスが他のデバイスと通信できるようにする通信接続５１２も備えることができる。通信接続５１２は、通信媒体の例である。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他のトランスポート機構などの変調データ信号に具現するものであり、任意の情報送達媒体がこれに含まれる。用語「変調データ信号」は、信号中に情報が符号化される形でその１つまたは複数の特性を設定または変更した信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、無線周波数、赤外線などの無線媒体およびその他の無線媒体とが含まれる。本明細書で使用される用語「コンピュータ可読媒体」には、記憶媒体と通信媒体の両方が含まれる。
【００４８】
デバイス５００は、キーボード、マウス、ペン、音声入力デバイス、タッチ入力デバイスなどの入力デバイス５１４を有することもできる。また、表示装置、スピーカ、プリンタなどの出力デバイス５１６を備えることもできる。これらのデバイスはすべて当技術分野で周知であり、ここで詳細に論じる必要はない。
【００４９】
デバイス５００は、様々なコンピュータ可読媒体を備えることができる。コンピュータ可読媒体は、デバイス５００からアクセス可能な任意の利用可能な媒体とすることができ、揮発性および不揮発性の媒体、リムーバブルおよび非リムーバブルな媒体の両方が含まれる。限定ではなく例として、コンピュータ可読媒体には、コンピュータ記憶媒体および通信媒体を含めることができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性および不揮発性、リムーバブルおよび非リムーバブルな媒体が含まれる。コンピュータ記憶媒体には、限定しないがＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイスが含まれ、あるいは、所望の情報を記憶するのに使用できデバイス５００からアクセスできるその他の任意の媒体が含まれる。通信媒体は通常、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他のトランスポート機構などの変調データ信号に具現するものであり、任意の情報送達媒体がこれに含まれる。用語「変調データ信号」は、信号中に情報が符号化される形でその１つまたは複数の特性を設定または変更した信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、無線周波数、赤外線などの無線媒体およびその他の無線媒体とが含まれる。以上のいずれかの組合せも、コンピュータ可読媒体の範囲に含めるべきである。
【００５０】
本明細書では、様々なモジュールおよび技法を、１つまたは複数のコンピュータあるいはその他のデバイスによって実行されるコンピュータ実行可能命令（プログラムモジュールなど）の一般的なコンテキストで述べることができる。一般に、プログラムモジュールは、特定のタスクを実施するか特定の抽象データ型を実現するためのルーチン、プログラム、オブジェクト、コンポーネント、データ構造などを含む。これらのプログラムモジュール等は、ネイティブコードとして実行することができ、あるいは、仮想マシンまたはその他のジャストインタイムコンパイル実行環境などでダウンロードして実行することができる。通常、プログラムモジュールの機能は、様々な実施形態で必要に応じて組み合わせたり、分散させたりすることができる。
【００５１】
これらのモジュールおよび技法の実装形態は、何らかの形のコンピュータ可読媒体に記憶することができ、あるいは何らかの形のコンピュータ可読媒体を介して伝送することができる。コンピュータ可読媒体は、コンピュータからアクセスできる任意の利用可能な媒体とすることができる。限定ではなく例として、コンピュータ可読媒体には、「コンピュータ記憶媒体」および「通信媒体」を含めることができる。
【００５２】
「コンピュータ記憶媒体」には、コンピュータ可読命令、データ構造、プログラムモジュール、その他のデータなどの情報を記憶するための任意の方法または技術で実現された、揮発性および不揮発性、リムーバブルおよび非リムーバブルな媒体が含まれる。コンピュータ記憶媒体には、限定しないがＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたはその他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）またはその他の光ストレージ、磁気カセット、磁気テープ、磁気ディスクストレージまたはその他の磁気ストレージデバイスが含まれ、あるいは、所望の情報を記憶するのに使用できコンピュータからアクセスできるその他の任意の媒体が含まれる。
【００５３】
「通信媒体」は通常、コンピュータ可読命令、データ構造、プログラムモジュール、またはその他のデータを、搬送波やその他のトランスポート機構などの変調データ信号に具現している。通信媒体にはまた、任意の情報送達媒体が含まれる。用語「変調データ信号」は、信号中に情報が符号化される形でその１つまたは複数の特性を設定または変更した信号を意味する。非限定的な例にすぎないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体と、音響、無線周波数、赤外線などの無線媒体およびその他の無線媒体とが含まれる。以上のいずれかの組合せも、コンピュータ可読媒体の範囲に含まれる。
【００５４】
本明細書を通して、「一実施形態」「実施形態」または「例示的な実施形態」を参照したが、これは、記載した特定の特徴、構造または特性が本発明の少なくとも１つの実施形態に含まれることを意味する。したがって、このような語句の使用は、１つの実施形態だけではなくそれ以上を指す場合がある。さらに、記載の特徴、構造または特性は、１つまたは複数の実施形態で、任意の適した方式で組み合わせることができる。
【００５５】
しかし、本発明は１つまたは複数の具体的詳細がなしで実施することができ、あるいは他の方法、リソース、材料などを使用しても実施することができることを、当業者は理解するであろう。他の例では、単に本発明の態様を曖昧にするのを避けるために、周知の構造、リソース、または動作については詳細に図示も記述もしていない。
【００５６】
例示的な実施形態および適用例を図示および記述したが、本発明は、前述の厳密な構成およびリソースに限定されないことを理解されたい。本明細書に開示した本発明の方法およびシステムの構成、動作、詳細について、特許請求の範囲の発明の範囲から逸脱することなく、当業者に明らかな様々な修正、変更、変形を加えることができる。
【図面の簡単な説明】
【００５７】
【図１Ａ】スマートタグがドキュメント中の選択データについてコンテキスト情報をどのように提示するかを示す図である。
【図１Ｂ】スマートタグがドキュメント中の選択データについてコンテキスト情報をどのように提示するかを示す図である。
【図１Ｃ】スマートタグがドキュメント中の選択データについてコンテキスト情報をどのように提示するかを示す図である。
【図２】一実施形態による、リコグナイザおよびアクションハンドラをリポジトリからローカルマシンにロードするためのシステムを示す機能ブロック図である。
【図３】一実施形態による、リコグナイザおよびアクションハンドラを動的にロードおよび呼出しの際の汎用スマートタグモジュールの動作フローを一般に示す流れ図である。
【図４】一実施形態による、汎用スマートタグシステムの各部分を配備するプロセスを一般に示す流れ図である。
【図５】本明細書に述べる技法および機構の様々な実施形態を実施することのできる例示的なコンピューティング環境を一般に示す機能ブロック図である。
【符号の説明】
【００５８】
１００  住所
１０２  破線
１１０  オプションボタン
１１２  グラフィック
１２０  メニュー
２００  システム
２０２  ローカルマシン
２０４  リポジトリ
２１０  汎用スマートタグモジュール
２１２  ホストアプリケーション
２２４  構成ローダ
２２６  汎用リコグナイザ
２２８  汎用アクションハンドラ
２３０  構成情報
２３２  コンテキストベースのリコグナイザおよびアクションハンドラ
５００  コンピューティングデバイス
５０２  処理ユニット
５０４  システムメモリ
５０６  破線
５０８  リムーバブルストレージ
５１０  非リムーバブルストレージ
５１２  通信接続
５１４  入力デバイス
５１６  出力デバイス
【図１Ａ】
2006048645.tif 000006
【図１Ｂ】
2006048645.tif 000007
【図１Ｃ】
2006048645.tif 000008
【図２】
2006048645.tif 000009
【図３】
2006048645.tif 000010
【図４】
2006048645.tif 000011
【図５】
2006048645.tif 000012
【外国語明細書】
2006048645000001.pdf