(57)【要約】  エクストラクタにより定義されるパターンに従って抽出されたエンティティに基づき、コンテンツを生成するガジェットの提供に関する。テキスト中のエンティティを識別するためのパターンを定義する複数の別個のエクストラクタが、複数のユーザから受け取られる。エクストラクタはリポジトリに記憶される。各エクストラクタにより定義されたパターンは、パターン照合エンジンへと処理される。エクストラクタは、第1のエクストラクタにサブスクライブする第1のユーザからのサブスクリプションに対して利用可能になる。第1のユーザの第1の文書に関する構成プログラムから変更指示が受け取られ、変更指示の受取りに応じて、第1のエクストラクタに対応するパターン照合エンジンが、第1の文書に適用され、第1のエンティティを識別する。第1のエンティティは、第1のエンティティに関係する情報をユーザに提示する第1のソフトウェアガジェットに提供される。
2012510129.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータで実施される方法であって、
テキスト中のエンティティを識別するためのパターンをそれぞれが定義する複数の別個のエクストラクタを、複数のユーザから受け取るステップと、
前記エクストラクタをリポジトリに記憶するステップと、
前記エクストラクタのそれぞれにより定義された前記パターンを、対応するパターン照合エンジンへと処理するステップと、
サブスクライブするユーザによるサブスクリプションに対して前記エクストラクタを利用可能にするステップと、
第1のエクストラクタにサブスクライブする第1のユーザからのサブスクリプションを受け取るステップと、
前記第1のユーザの第1の文書に関する構成プログラムから変更指示を受け取るステップと、
前記変更指示の受取りに応じて、前記第1の文書に、前記第1の文書中の第1のエンティティを識別する、前記第1のエクストラクタに対応する前記パターン照合エンジンを適用し、かつ前記第1のエンティティを、前記ユーザに前記第1のエンティティに関係する情報を提示する第1のソフトウェアガジェットに提供するステップと
を含む方法。
【請求項２】
前記第1のソフトウェアガジェットがクライアント上にあり、また前記第1のエクストラクタがサーバ上にある、請求項1に記載の方法。
【請求項３】
前記第1のエクストラクタより定義される前記パターンは、前記第1の文書のフィールドを利用する、請求項1に記載の方法。
【請求項４】
前記第1のユーザからの前記サブスクリプションは、ファイルまたはフィードに対するものである、請求項1に記載の方法。
【請求項５】
各エクストラクタは、別個の対応するパターン照合エンジンへと処理される、請求項1に記載の方法。
【請求項６】
複数のエクストラクタが、同じ対応するパターン照合エンジンへと処理される、請求項1に記載の方法。
【請求項７】
前記第1の文書が添付文書を含み、また前記パターン照合エンジンが、前記添付文書中の前記第1のエンティティを識別する、請求項1に記載の方法。
【請求項８】
前記第1のユーザ、前記第1のエクストラクタ、および前記第1のガジェットの間の関連を作成するステップをさらに含む、請求項1に記載の方法。
【請求項９】
前記第1のユーザから、前記第1のガジェットへのサブスクリプションを受け取るステップをさらに含む、前記請求項1に記載の方法。
【請求項１０】
第2のユーザから、第2のエクストラクタへのサブスクリプションを受け取るステップと、
提示プログラムから、前記第2のユーザの第2の文書に関する抽出要求を受け取るステップと、
前記抽出要求の受取りに応じて、前記第2の文書に、前記第2の文書中の第2のエンティティを識別する、前記第2のエクストラクタに対応する前記パターン照合エンジンを適用し、かつ前記第2のエンティティを、前記ユーザに前記第2のエンティティに関係する情報を提示する第2のソフトウェアガジェットに提供するステップと
をさらに含む、請求項1に記載の方法。
【請求項１１】
前記構成プログラムからコンテキスト情報を受け取るステップと、
前記コンテキスト情報を前記パターン照合エンジンに提供するステップと
をさらに含む、請求項1に記載の方法。
【請求項１２】
コンピュータで実施される方法であって、
文書コンテンツの型を識別するためのパターンをそれぞれが定義する複数の別個のエクストラクタを、複数のユーザから受け取るステップと、
前記エクストラクタをリポジトリに記憶するステップと、
前記エクストラクタのそれぞれにより定義された前記パターンを、対応するパターン照合エンジンへと処理するステップと、
サブスクライブするユーザによるサブスクリプションに対して前記エクストラクタを利用可能にするステップと、
第1のエクストラクタにサブスクライブする第1のユーザからのサブスクリプションを受け取るステップと、
添付された第2の文書を有する前記第1のユーザの第1の文書に関する抽出要求を、提示プログラムから受け取るステップと、
前記抽出要求の受取りに応じて、前記第1の文書に、前記添付された第2の文書を第1のエンティティとして識別する、前記第1のエクストラクタに対応する前記パターン照合エンジンを適用し、かつ前記第1のエンティティを、前記ユーザに前記第1のエンティティに関係する情報を提示する第1のソフトウェアガジェットに提供するステップと
を含む方法。
【請求項１３】
前記添付文書がメディアファイルを含み、また前記第1のソフトウェアガジェットが、前記メディアファイルに対するプレーヤを含む、請求項12に記載の方法。
【請求項１４】
コンピュータ可読媒体上で符号化されたコンピュータプログラム製品であって、
テキスト中のエンティティを識別するためのパターンをそれぞれが定義する複数の別個のエクストラクタを、複数のユーザから受け取るステップと、
前記エクストラクタをリポジトリに記憶するステップと、
前記エクストラクタのそれぞれにより定義された前記パターンを、対応するパターン照合エンジンへと処理するステップと、
サブスクライブするユーザによるサブスクリプションに対して前記エクストラクタを利用可能にするステップと、
第1のエクストラクタにサブスクライブする第1のユーザからのサブスクリプションを受け取るステップと、
前記第1のユーザの第1の文書に関する構成プログラムから変更指示を受け取るステップと、
前記変更指示の受取りに応じて、前記第1の文書に、前記第1の文書中の第1のエンティティを識別する、前記第1のエクストラクタに対応する前記パターン照合エンジンを適用し、かつ前記第1のエンティティを、前記ユーザに前記第1のエンティティに関係する情報を提示する第1のソフトウェアガジェットに提供するステップと
を含む動作を、データ処理装置に実施させるように動作するコンピュータプログラム製品。
【請求項１５】
前記第1のソフトウェアガジェットがクライアント上にあり、また前記第1のエクストラクタがサーバ上にある、請求項14に記載のコンピュータプログラム製品。
【請求項１６】
前記第1のエクストラクタより定義される前記パターンは、前記第1の文書のフィールドを利用する、請求項14に記載のコンピュータプログラム製品。
【請求項１７】
前記第1のユーザからの前記サブスクリプションは、ファイルまたはフィードに対するものである、請求項14に記載のコンピュータプログラム製品。
【請求項１８】
各エクストラクタは、別個の対応するパターン照合エンジンへと処理される、請求項14に記載のコンピュータプログラム製品。
【請求項１９】
複数のエクストラクタが、同じ対応するパターン照合エンジンへと処理される、請求項14に記載のコンピュータプログラム製品。
【請求項２０】
前記第1の文書が添付文書を含み、また前記パターン照合エンジンが、前記添付文書中の前記第1のエンティティを識別する、請求項14に記載のコンピュータプログラム製品。
【請求項２１】
前記第1のユーザ、前記第1のエクストラクタ、および前記第1のガジェットの間の関連を作成するステップを含む動作を、前記データ処理装置に実施させるようにさらに動作する、請求項14に記載のコンピュータプログラム製品。
【請求項２２】
前記第1のユーザから、前記第1のガジェットへのサブスクリプションを受け取るステップを含む動作を、前記データ処理装置に実施させるようにさらに動作する、請求項14に記載のコンピュータプログラム製品。
【請求項２３】
第2のユーザから、第2のエクストラクタへのサブスクリプションを受け取るステップと、
提示プログラムから、前記第2のユーザの第2の文書に関する抽出要求を受け取るステップと、
前記抽出要求の受取りに応じて、前記第2の文書に、前記第2の文書中の第2のエンティティを識別する、前記第2のエクストラクタに対応する前記パターン照合エンジンを適用し、かつ前記ユーザに提示するために、前記第2のエンティティを、前記第2のエンティティに関係する情報を提示する第2のソフトウェアガジェットに提供するステップと
を含む動作を、前記データ処理装置に実施させるようにさらに動作する、請求項14に記載のコンピュータプログラム製品。
【請求項２４】
前記構成プログラムからコンテキスト情報を受け取るステップと、
前記コンテキスト情報を前記パターン照合エンジンに提供するステップと
を含む動作を、前記データ処理装置に実施させるようにさらに動作する、請求項14に記載のコンピュータプログラム製品。
【請求項２５】
コンピュータ可読媒体上で符号化されたコンピュータプログラム製品であって、
文書コンテンツの型を識別するためのパターンをそれぞれが定義する複数の別個のエクストラクタを、複数のユーザから受け取るステップと、
前記エクストラクタをリポジトリに記憶するステップと、
前記エクストラクタのそれぞれにより定義された前記パターンを、対応するパターン照合エンジンへと処理するステップと、
サブスクライブするユーザによるサブスクリプションに対して前記エクストラクタを利用可能にするステップと、
第1のエクストラクタにサブスクライブする第1のユーザからのサブスクリプションを受け取るステップと、
添付された第2の文書を有する前記第1のユーザの第1の文書に関する抽出要求を、提示プログラムから受け取るステップと、
前記抽出要求の受取りに応じて、前記第1の文書に、前記添付された第2の文書を第1のエンティティとして識別する、前記第1のエクストラクタに対応する前記パターン照合エンジンを適用し、かつ前記第1のエンティティを、前記ユーザに前記第1のエンティティに関係する情報を提示する第1のソフトウェアガジェットに提供するステップと
を含む動作を、データ処理装置に実施させるように動作するコンピュータプログラム製品。
【請求項２６】
前記添付文書がメディアファイルを含み、また前記第1のソフトウェアガジェットが、前記メディアファイルに対するプレーヤを含む、請求項25に記載のコンピュータプログラム製品。
【請求項２７】
コンピュータのメモリに記憶されたソフトウェアを有する1つまたは複数のコンピュータを備えるシステムであって、前記ソフトウェアが、
テキスト中のエンティティを識別するためのパターンをそれぞれが定義する複数の別個のエクストラクタを、複数のユーザから受け取るステップと、
前記エクストラクタをリポジトリに記憶するステップと、
前記エクストラクタのそれぞれにより定義された前記パターンを、対応するパターン照合エンジンへと処理するステップと、
サブスクライブするユーザによるサブスクリプションに対して前記エクストラクタを利用可能にするステップと、
第1のエクストラクタにサブスクライブする第1のユーザからのサブスクリプションを受け取るステップと、
前記第1のユーザの第1の文書に関する構成プログラムから変更指示を受け取るステップと、
前記変更指示の受取りに応じて、前記第1の文書に、前記第1の文書中の第1のエンティティを識別する、前記第1のエクストラクタに対応する前記パターン照合エンジンを適用し、かつ前記第1のエンティティを、前記ユーザに前記第1のエンティティに関係する情報を提示する第1のソフトウェアガジェットに提供するステップと
を含む動作を、前記コンピュータに実施させるシステム。
【請求項２８】
前記第1のソフトウェアガジェットがクライアント上にあり、また前記第1のエクストラクタがサーバ上にある、請求項27に記載のシステム。
【請求項２９】
前記第1のエクストラクタより定義される前記パターンは、前記第1の文書のフィールドを利用する、請求項27に記載のシステム。
【請求項３０】
前記第1のユーザからの前記サブスクリプションは、ファイルまたはフィードに対するものである、請求項27に記載のシステム。
【請求項３１】
各エクストラクタは、別個の対応するパターン照合エンジンへと処理される、請求項27に記載のシステム。
【請求項３２】
複数のエクストラクタが、同じ対応するパターン照合エンジンへと処理される、請求項27に記載のシステム。
【請求項３３】
前記第1の文書が添付文書を含み、また前記パターン照合エンジンが、前記添付文書中の前記第1のエンティティを識別する、請求項27に記載のシステム。
【請求項３４】
ソフトウェアが、前記第1のユーザ、前記第1のエクストラクタ、および前記第1のガジェットの間の関連を作成するステップを含む動作を、前記コンピュータにさらに実施させる、請求項27に記載のシステム。
【請求項３５】
ソフトウェアが、前記第1のユーザから前記第1のガジェットへのサブスクリプションを受け取るステップを含む動作を、前記コンピュータにさらに実施させる、請求項27に記載のシステム。
【請求項３６】
ソフトウェアが、
第2のユーザから第2のエクストラクタへのサブスクリプションを受け取るステップと、
提示プログラムから、前記第2のユーザの第2の文書に関する抽出要求を受け取るステップと、
前記抽出要求の受取りに応じて、前記第2の文書に、前記第2の文書中の第2のエンティティを識別する、前記第2のエクストラクタに対応する前記パターン照合エンジンを適用し、かつ前記ユーザに提示するために、前記第2のエンティティを、前記第2のエンティティに関係する情報を提示する第2のソフトウェアガジェットに提供するステップと
を含む動作を、前記コンピュータにさらに実施させる、請求項27に記載のシステム。
【請求項３７】
ソフトウェアが、
前記構成プログラムからコンテキスト情報を受け取るステップと、
前記コンテキスト情報を前記パターン照合エンジンに提供するステップと
を含む動作を、前記コンピュータにさらに実施させる、請求項27に記載のシステム。
【請求項３８】
コンピュータのメモリに記憶されたソフトウェアを有するコンピュータを備えるシステムであって、前記ソフトウェアが、
文書コンテンツの型を識別するためのパターンをそれぞれが定義する複数の別個のエクストラクタを、複数のユーザから受け取るステップと、
前記エクストラクタをリポジトリに記憶するステップと、
前記エクストラクタのそれぞれにより定義された前記パターンを、対応するパターン照合エンジンへと処理するステップと、
サブスクライブするユーザによるサブスクリプションに対して前記エクストラクタを利用可能にするステップと、
第1のエクストラクタにサブスクライブする第1のユーザからのサブスクリプションを受け取るステップと、
添付された第2の文書を有する前記第1のユーザの第1の文書に関する抽出要求を、提示プログラムから受け取るステップと、
前記抽出要求の受取りに応じて、前記第1の文書に、前記添付された第2の文書を第1のエンティティとして識別する、前記第1のエクストラクタに対応する前記パターン照合エンジンを適用し、かつ前記第1のエンティティを、前記ユーザに前記第1のエンティティに関係する情報を提示する第1のソフトウェアガジェットに提供するステップと
を含む動作を、前記コンピュータに実施させるシステム。
【請求項３９】
前記添付文書がメディアファイルを含み、また前記第1のソフトウェアガジェットが、前記メディアファイルに対するプレーヤを含む、請求項38に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、実用特許出願であり、2008年11月26日に出願された米国出願第12/324,737号に対する優先権を主張し、その内容の全体を、参照により本明細書に組み込む。
【０００２】
本発明は、エクストラクタにより定義されるパターンに従って抽出されたエンティティに基づいてコンテンツを生成するガジェットをユーザに提供することに関する。
【背景技術】
【０００３】
いくつかのウェブベースのアプリケーション、および他のアプリケーションは、検索クエリまたは文書から抽出されたエンティティに基づいてコンテンツを生成するガジェットをユーザに提供する。例えば、いくつかのアプリケーションは、検索クエリから抽出されたエンティティに基づいてコンテンツを示すガジェットを提示する。これらのエンティティは、通常、クエリ中のキーワードに基づいて、または複雑なパターンではなくクエリ全体にマッチする必要のあるパターンに基づいて抽出される。いくつかのアプリケーションは、文書から抽出されたエンティティに基づいてコンテンツを示すガジェットを提示する。これらのエンティティは、通常、文書中のキーワードに基づいて抽出される。いくつかのアプリケーションは、テキストのより複雑なパターンを認識できるが、それらは、文書が表示されたときにのみ認識するのであって、文書が変更されたときには認識しない。
【発明の概要】
【課題を解決するための手段】
【０００４】
本開示は、エクストラクタにより定義されたパターンに従って抽出されたエンティティに基づいてコンテンツを生成するガジェットをユーザに提供するための技法を実施する方法、コンピュータプログラム製品、およびシステムを提供する。
【０００５】
概して、本明細書で述べる主題の一態様は、複数のユーザから複数の別個のエクストラクタを受け取るステップを含む方法で実施することができる。各エクストラクタは、テキスト中のエンティティを識別するためのパターンを定義する。エクストラクタはリポジトリに記憶される。各エクストラクタにより定義されたパターンは、対応するパターン照合エンジンへと処理される。エクストラクタは、サブスクライブするユーザによるサブスクリプションに対して利用可能になる。第1のエクストラクタにサブスクライブする第1のユーザからのサブスクリプションが受け取られる。第1のユーザの第1の文書に関する構成プログラムからの変更指示が受け取られ、その変更指示の受取りに応じて、第1のエクストラクタに対応するパターン照合エンジンが第1の文書に適用される。パターン照合エンジンは、第1の文書における第1のエンティティを識別する。第1のエンティティは、第1のエンティティに関係する情報をユーザに提示する第1のソフトウェアガジェットに提供される。本発明の他の実施形態は、対応するシステム、装置、およびコンピュータプログラム製品を含む。
【０００６】
これらの、および他の実施形態は、任意選択で、1つまたは複数の以下の特徴を含むことができる。第1のソフトウェアガジェットはクライアント上にあり、第1のエクストラクタはサーバ上に存在することができる。第1のエクストラクタにより定義されるパターンは、第1の文書におけるフィールドを利用することができる。第1のユーザからのサブスクリプションは、ファイルまたはフィードに対するものとすることができる。
【０００７】
エクストラクタを処理するステップは、各エクストラクタを別個のパターン照合エンジンへと処理するステップ、または複数のエクストラクタを同じパターン照合エンジンへと処理するステップを含むことができる。
【０００８】
第1の文書は添付文書とすることができ、またパターン照合エンジンは、添付文書中で第1のエンティティを識別することができる。
【０００９】
第1のユーザ、第1のエクストラクタ、および第1のガジェットの間で、関連(association)を作成することができる。第1のガジェットに対するサブスクリプションを第1のユーザから受け取ることができる。
【００１０】
サブスクリプションを、第2のエクストラクタにサブスクライブする第2のユーザから受け取ることができる。第2のユーザの第2の文書に関する抽出要求は、提示プログラムから受け取ることができる。抽出要求の受取りに応じて、第2のエクストラクタに対応するパターン照合エンジンを第2の文書に適用することができる。パターン照合エンジンは、第2文書中の第2のエンティティを識別することができる。第2のエンティティは、第2のエンティティに関係する情報をユーザに提示する第2のソフトウェアガジェットに提供されうる。
【００１１】
コンテキスト情報を構成プログラムから受け取り、パターン照合エンジンに提供することができる。
【００１２】
概して、本明細書で述べる主題の他の態様は、複数のユーザから、複数の別個のエクストラクタを受け取るステップを含む方法で実施することができる。各エクストラクタは、テキスト中のエンティティを識別するためのパターンを定義する。エクストラクタはリポジトリに記憶される。エクストラクタのそれぞれにより定義されるパターンは、対応するパターン照合エンジンへと処理される。サブスクライブするユーザによるサブスクリプションに対してエクストラクタが利用可能になる。第1のエクストラクタにサブスクライブする第1のユーザからのサブスクリプションが受け取られる。抽出要求は、添付された第2の文書を有する第1のユーザの第1の文書に関して、提示プログラムから受け取られ、また抽出要求の受取りに応じて、第1のエクストラクタに対応するパターン照合エンジンが、第1の文書に適用される。パターン照合エンジンは、添付された第2の文書を第1のエンティティとして識別する。第1のエンティティは、第1のエンティティに関係する情報をユーザに提示する第1のソフトウェアガジェットに提供される。この態様の他の実施形態は、対応するシステム、装置、およびコンピュータプログラム製品を含む。
【００１３】
これらの、および他の実施形態は、任意選択で以下の特徴を含むことができる。添付文書はメディアファイルとすることができ、また第1のソフトウェアガジェットは、メディアファイルに対するプレーヤとすることができる。
【発明の効果】
【００１４】
本明細書で述べる主題の特定の実施形態は、1つまたは複数の以下の利点を実現するように実施できる。本発明は、所望の抽出機能を提供するエクストラクタおよびガジェットにサブスクライブすることにより、ユーザが、アプリケーションとの自分の体験をカスタマイズすることを可能にする。本発明は、ユーザが自分の文書からどのエンティティを抽出するかを指定することを可能にする。本発明は、ユーザに、多数の開発者により開発された広範囲なエクストラクタおよびガジェットから選択することを可能にする。
【００１５】
本発明の1つまたは複数の実施形態の詳細は、添付の図面および以下の記述で述べられる。本発明の他の特徴、目的、および利点は、その記述および図面から、また特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１６】
【図１Ａ】文書を表示している例示的なオンラインの電子メールアプリケーションと、抽出された電話番号をユーザのアドレス帳に追加する選択肢をユーザに与える関連のガジェットとに対するグラフィカルユーザインターフェースを示す図である。
【図１Ｂ】文書を表示している例示的なオンラインの電子メールアプリケーションと、抽出されたURLに対応するオンラインビデオを再生する関連のガジェットに対するグラフィカルユーザインターフェースを示す図である。
【図１Ｃ】文書を表示している例示的なオンラインの電子メールアプリケーションと、抽出された銘柄記号に関連する株価のグラフを表示する関連のガジェットとに対するグラフィカルユーザインターフェースを示す図である。
【図２】複数のユーザからエクストラクタを受け取り、ユーザの文書にエクストラクタを適用するための例示的な技法を示す図である。
【図３】システムの例示的なアーキテクチャを示す図である。
【図４】システムを通る例示的な情報の流れを示す図である。
【図５】汎用コンピュータシステムの概略図である。
【発明を実施するための形態】
【００１７】
図1Aは、文書102を表示する例示的なオンラインの電子メールアプリケーションと、関連するガジェットの出力104とのグラフィカルユーザインターフェースを示している。概して、ガジェットは、パターン照合エンジンにより文書から収集されたエンティティに基づいて、または部分的に基づいて、ユーザに提示するための出力を生成する。ガジェットは、複数の異なるパターン照合エンジンからエンティティを受け入れることができる。ガジェットは、通常、ウェブベースのアプリケーションと関連しているが、任意のアプリケーション、例えば、個々のユーザのコンピュータ上のアプリケーションと関連させることもできる。様々な実施形態では、アプリケーションは、コンピュータプログラムである。
【００１８】
例として、ウェブベースのアプリケーションと関連するガジェットは、サーバコンピュータ上で実行し、またガジェットからの出力は、クライアントコンピュータ上のウェブブラウザ、例えば、カリフォルニア州マウンテンビューのGoogle Inc.(グーグル社)から入手可能なGoogle Chrome(商標)、またはカリフォルニア州マウンテンビューのMozilla Project(モジラプロジェクト)から入手可能なFirefox(商標)に、インターネットを介して送信される。個々のユーザのコンピュータ上のアプリケーションに関連するガジェットは、一般に、ユーザのコンピュータ上で実行されるが、サーバコンピュータ上で実行することも可能であり、あるいは一部を個々のユーザのコンピュータ上で、かつ一部をサーバコンピュータ上で実行することも可能である。様々な実施形態では、ユーザは、どのパターン照合エンジンおよびガジェットが、所与のアプリケーションと関連しているかを選択することができる。いくつかの実施形態では、ユーザは、自動的に所与のアプリケーションと関連付けられ、またユーザには、その関連付けに参加しないようにする選択肢を与えることもできる。
【００１９】
概して、エクストラクタは、文書中のテキストを識別する、文書型を認識する、またはその両方のための1つまたは複数のパターンを定義する。文書にエクストラクタを適用することにより、エクストラクタのパターンを満たす文書の1つまたは複数の部分など、ゼロまたはそれ以上のエンティティを生ずる。いくつかの実施形態では、エクストラクタはパターン照合エンジンへと処理され、パターン照合エンジンは文書を処理する。文書中で識別されたエンティティはガジェットに提供される。ガジェットは、これらのエンティティを使用して、文書ベースのコンテンツ、または他のコンテンツをユーザに示す。
【００２０】
例として、コンタクト情報(例えば、ある人物の住所または電話番号)を抽出するエクストラクタと、抽出された電話番号をユーザのアドレス帳に追加する選択肢をユーザに与えるガジェット104とは、ユーザの電子メールアプリケーションと関連付けられる。ユーザの電子メールアプリケーションは、送信者106のコンタクト情報を含む電子メール文書102を表示する。電子メール文書102が表示される前に、表示されるときに、または表示された後に、電子メール送信者のコンタクト情報がガジェット104により抽出され、提示される。ガジェット104は、ユーザに、抽出された情報を自分のアドレス帳に加えることを可能にする。
【００２１】
図1Bは、異なるエクストラクタと関連付けられた異なるガジェットを有する同様のオンライン電子メールプログラムを示している。図1Bでは、オンラインビデオの位置を指定するURLを抽出するエクストラクタと、オンラインビデオ114および116を再生するガジェットとが、ユーザの電子メールアプリケーションと関連付けられている。URL、すなわち、uniform resource locatorは、インターネット上のファイルまたは資源の位置を指定するアドレスである。オンラインビデオは、インターネットを介して流すことのできるビデオである。オンラインビデオは、個々のユーザにより、または、例えば、YouTubeなどの特殊化したウェブサイトによりホストされうる。
【００２２】
ユーザの電子メールプログラムは、2つの電子メール文書110および112を表示する。最近受信した電子メール文書112は、古い電子メール文書110の下に表示される。最近の電子文書112は、オンラインビデオに対するURL120を含む。オンラインの電子メールプログラム中に、最近の電子メール文書112が表示される前に、表示されるときに、または表示された後に、URLが抽出されてガジェット116に渡され、ガジェット116は、そのURLに相当するオンラインビデオをオンラインビデオプレーヤへとロードする。古い電子メール110はまた、オンラインビデオに対するURL118を含む。古い電子メールが、最近の電子メールと共にオンライン電子メールプログラムで表示される場合、オンラインビデオに対するURL118が抽出されて、ユーザに表示するためにガジェット114に渡される。他のガジェット116が、すでにビデオを表示しているため、第2のガジェット114は、抽出されたURLに対応するビデオを表示しないが、ユーザが再生ボタン115をクリックしたときオンラインビデオをロードする準備をしている。他の実施形態では、両方のガジェットが、同時にその対応するオンラインビデオを再生する。
【００２３】
図1Cは、異なるガジェットと関連付けられ、さらに異なるエクストラクタと関連付けられた同様のオンライン電子メールプログラムを示している。ここでは、エクストラクタは、電子メールメッセージから、証券取引所で取引された株と関連付けられた銘柄記号を抽出し、またガジェット120は、抽出された銘柄記号と関連する株の株価のグラフを表示する。ユーザの電子メールアプリケーションは、Elephant Shoesに対する銘柄記号「STK:EPSH」124と、Kitty Cat Shoeに対する銘柄記号「STK:KCSW」126を含む、ユーザにより書き込まれた電子メール文書122を表示している。電子メール文書122が変更される前に、変更されるときに、またはその後に、銘柄記号情報が抽出されてガジェット120に送られる。ガジェット120は、抽出された銘柄記号に対応する株価のグラフを表示する。
【００２４】
ガジェットは、上記の例に限定されず、文書から収集されたエンティティに基づき、ユーザに提示するために任意のコンテンツを生成することができる。例えば、ガジェットは、文書中の参照に基づき、リポジトリに記憶されたソフトウェアコードのバージョンにリンクすることができ、あるいは文書中のユーザ名に基づき、ユーザのプロファイルへのリンクを生成することができる。ガジェットの提示は、例えば、出力を表示装置上に表示すること、音を送信すること、または触覚的フィードバックを提供することを含むことができる。
【００２５】
文書は電子メール文書に限定されない。例えば、文書は、ウェブページ、電子メール、ワードプロセッシング文書、スプレッドシート、ユーザプロファイル、ブログのエントリ、またはテキストのセクションとすることができる。他の型の文書も可能である。さらに、文書は、必ずしもファイルに対応していない。文書は、他の文書を保持するファイルの一部に、問題の文書に専用の単一のファイルに、または複数の協調するファイルに記憶することができる。さらに、文書は、最初にファイル中に記憶されることなくメモリに記憶することもできる。
【００２６】
図2は、ユーザからエクストラクタを受け取り、かつエクストラクタを文書に適用するための例示的な技法200を示している。この方法は、例えば、1つまたは複数のサーバコンピュータ上のプラットフォームプロバイダにより実行することができる。様々な実施形態では、プラットフォームプロバイダは、エクストラクタにサブスクライブし、かつエクストラクタに対応するパターン照合エンジンをユーザ文書に対して動作させるためのシステムを提供する。
【００２７】
ステップ202で、複数のユーザから、複数のエクストラクタが(例えば、プラットフォームプロバイダにより)受け取られる。エクストラクタは、文書コンテンツまたは型を識別するために、テキストまたはパターンにおけるエンティティを識別するためのパターンを定義する。エンティティとは、例えば、テキストの部分、文書の部分、文書全体、または文書の型のことである。様々な実施形態では、エクストラクタは、XML(拡張可能なマーク付け言語)コードで記述されるが、エクストラクタは、任意のマーク付け言語、またはコンピュータにより解釈可能な任意の他の形式とすることができる。いくつかの実施形態では、エクストラクタはまた、抽出を支援する、または実施するコード、または他のエクストラクタへの参照を含む。いくつかの実施形態では、エクストラクタは、例えば、Unix(登録商標)コンピュータで利用可能なLexなど、字句解析プログラム生成装置を用いて定義することができる。
【００２８】
いくつかの実施形態では、テキスト中のエンティティを識別するエクストラクタは、エンティティを識別するためのパターンを定義するために正規表現を使用する。正規表現は、所与のテキストから1つまたは複数のストリングを抽出するためのパターンを定義するテキストのストリングである。テキストの抽出されるストリングは、エンティティとして識別される。テキスト中でエンティティを識別するエクストラクタはまた、エンティティを抽出するためのパターンを定義する場合、ストリングのリポジトリを使用することもできる。ストリングのリポジトリは、名前と関連付けられた1組のストリングである。1組のストリングは、いくつかの方法で記憶することができる。リポジトリに対応する名前は、手動で、すべてのストリングを一覧にするのではなく、正規表現で使用することができる。例えば、エクストラクタは、そのパターンのあらゆる映画のタイトルを一覧にするのではなく、映画タイトルのリポジトリを参照することにより、ある映画タイトルを含むストリングを抽出するためのパターンを定義することもできる。いくつかの実施形態では、ストリングの各リポジトリは、一意の名前を有する。
【００２９】
ここに、カリフォルニア州マウンテンビューのGoogle Inc.(グーグル社)により維持されるPicasa(商標)写真共有サイトへの参照を抽出するXMLエクストラクタのための例示的なコードがある。例えば、パターンは、プライベートアルバムへのリンク(http://picasaweb.google.com/user1/myTrip?など)、プライベートアルバム中の写真へのリンク(http://picasaweb.google.com/user1/myTrip?1543268902454325423など)、プライベートアルバム中のビデオへのリンク(http://picasaweb.google.com/user2/funParty?1432515542123455683など)、パブリックアルバムへのリンク(http://picasaweb.google.com/user3/PublicPhotos#など)、パブリックアルバム中の写真へのリンク(http://picasaweb.google.com/user3/PublicPhotos#4687922など)、注目される写真へのリンク(http://picasaweb.google.com/user4/BestPhotos?feat=featured#4598654578913456753など)、注目されるアルバムへのリンク(http://picasaweb.google.com/user4/BestPhotos?feat=featured#など)、タグ付けされた写真ストリームへのリンク(http://picasaweb.google.com/user5/view?feat=tags&amp;psc=G&amp;filter=1&amp;tags=trip#など)、単一のタグ付けされた写真へのリンク(http://picasaweb.google.com/user5/view?feat=tags&amp;psc=G&amp;filter=1&amp;tags=trip#1456774123112234789など)、あるいは最近の写真へのリンク(http://picasaweb.google.com/user6/Holidays2008?feat=recent#4245768123788746512など)にマッチすることになる。
【００３０】
<?xml version=“1.0” encoding=“ISO-8859-1”?> <ExtractorData
id=“PicasaWebExtractor”>
<AuthorInfo
description=“Picasa extractor”
author=“Mr. Author”
author_email=“author@extractorsgalore.com”
author_affiliation=“Extractors Galore”
author_location=“Mountain View, CA, USA”
/>
<ExtractorSpec id=“PicasaWebExtractorEnglish” platform=“gmail”
language=“en”>
<Search>
<Pattern>(?x)
＼b(?:http://)?(?:www＼.)?picasaweb＼.(?: google＼.)?com/
(?&lt;userid&gt;[＼d＼w＼. ]+)/
(?&lt;albumid&gt;[＼d＼w_]+)
?:＼?(?&lt;query_params&gt;[＼w＼d＼-_=&amp;]+))?
(?:#(?&lt;photoid&gt;[＼d]+)?)?
(/|＼b)
(?-x)</Pattern>
</Search>
<Response platform=“application2” format=“cardgadget”>
<Output name=“userid”>{@userid}</Output>
<Output name=“albumid”>{@albumid}</Output>
<Output name=“query_params”>{@query_params}</Output>
<Output name=“photoid”>{@photoid}</Output>
</Response>
</ExtractorSpec>
</ExtractorData>
【００３１】
ここに、ユーザ名を抽出するエクストラクタで定義された例示的なパターンがある。名前「user_names」は、システムの各ユーザのユーザ名に対するストリングを有するストリングのリポジトリと関連付けられる。この識別子がエクストラクタ中で参照された場合、それは、ストリングのuser_namesリポジトリにおけるすべてのストリングに対するプレースホルダとして使用される。
<Pattern>(?x)
＼b(?&lt;username&gt;(?M=user_names))＼b
(?-x)</Pattern>
【００３２】
テキスト中でエンティティを識別するエクストラクタはまた、処理される文書中のいくつかのフィールドを利用することができる。例えば、ある人から他の人への電子メールメッセージは、電子メールをやりとりする相手を指定する「to(宛先)」フィールドおよび「from(発信元)」フィールドを有することもできる。電子メールメッセージを処理するためのエクストラクタは、次いで、電子メールの「to(宛先)」フィールドまたは「from(発信元)」フィールド中の特定のテキストを探すこともできる。エクストラクタは、例えば、文書を表示するアプリケーションにより提供される文書に関する情報を利用することにより、文書のフィールド中のテキストを識別することができる。
【００３３】
テキスト中でエンティティを識別するエクストラクタは、上記で述べた機能に限定されることなく、任意の数の方法で、テキスト中でエンティティを識別するためのパターンを定義することができる。
【００３４】
テキスト中でエンティティを識別するエクストラクタはまた、文書を表示するアプリケーションにより提供されるコンテキスト情報を利用することもできる。コンテキスト情報は、アプリケーションの設定、またはアプリケーションの使用に関する情報である。例えば、文書を表示するアプリケーションは、ユーザのアドレス帳にだれが存在するかに関する情報を提供することもできる。エクストラクタは、この情報を受け取り、ユーザのアドレス帳に載せられていない個人に関するコンタクト情報だけを抽出することができる。
【００３５】
文書コンテンツの型を識別するエクストラクタは、文書コンテンツの1つまたは複数の特定の型を識別する。文書コンテンツとは、どのような型のコンテンツが文書中に格納されているかを指す。例えば、ピクチャファイルは、ピクチャ文書コンテンツを有することになる。映画ファイルは、映画文書コンテンツを有することになる。文書は、文書に関連する複数のコンテンツ型を有することができる。例えば、文書は、テキストおよびピクチャを共に格納することができ、したがって、テキストおよびピクチャコンテンツを共に有することも可能である。文書コンテンツの型を識別するエクストラクタは、いくつかの実施形態では、ファイルの構成、ファイルのヘッダタイプ、またはファイル名を解析することを含むいくつかの方法で識別することができる。例えば、エクストラクタは、ファイル名がピクチャファイルと関連する拡張子(.JPG、.bmp、.gif、.tff、および以下同様のものなど)で終わるかどうかを識別することにより、ピクチャファイルを識別することもできる。これらのファイルを抽出し、ピクチャをユーザに表示するガジェットへと渡すことができる。文書コンテンツの型を識別するエクストラクタは、上記で与えられた例に限定されることはなく、任意の数の方法で、文書コンテンツの型を識別するためのパターンを定義することができる。
【００３６】
いくつかの実施形態では、エクストラクタは、ユーザが自分のエクストラクタをアップロードするウェブページのユーザインターフェースから受け取られる。ウェブページは、例えば、ユーザが前にアップロードしたエクストラクタを一覧にする、ユーザにリポジトリから仕様ファイルを削除できるようにする、ユーザに仕様ファイルを変更できるようにする、ユーザに仕様ファイルをリポジトリからダウンロードできるようにする、かつユーザに共用エクストラクタとプライベートエクストラクタとの間を区別できるようにするなど、さらなる機能を提供することができる。共用エクストラクタとは、ユーザが、他のユーザによるサブスクリプションに対して利用可能にしたいと望むエクストラクタのことである。プライベートエクストラクタとは、ユーザが、他のユーザによるサブスクリプションに対して利用可能にすることを望まないエクストラクタのことである。ウェブページは、例えば、他のユーザが、エクストラクタをアップロードしたユーザと関係がある場合、そのエクストラクタをアップロードしたユーザ以外のユーザに、そのエクストラクタを編集または削除することを可能にできる。ウェブページはさらに、ユーザに、自分のエクストラクタにサブスクライブできるユーザの特定のグループを指定できるようにすることも可能である。例えば、ユーザは、特定のドメイン、組織、またはグループ内のユーザだけに、自分のエクストラクタにサブスクライブできるようにすることも可能である。ウェブページはまた、エクストラクタが処理されたかどうか、またそのプロセスが成功したか、それとも失敗したかを含む、ユーザのエクストラクタのパターン照合エンジンへの処理状況をユーザが閲覧できるようにすることも可能である。ウェブページはまた、どれだけ多くのガジェットがエクストラクタを使用しているか、またはどれだけ多くの文書をエクストラクタが処理したかなど、エクストラクタに関する統計量を提供することができる。他の実施形態では、エクストラクタは、以前から存在するエクストラクタのデータベースから、またはエクストラクタを生成できるプロセスから得られる。エクストラクタを得るための他の技法も考えられる。
【００３７】
一実施形態では、ユーザは、エクストラクタをアップロードする前に、自分の識別を検証することが必要である。識別の検証は、ユーザにユーザ名およびパスワードを入力させることを含むことができる。
【００３８】
エクストラクタが受け取られると、任意選択で、それをテストすることができる。このテストは、エクストラクタが整形式(well-formed)であることの妥当性の検査を含むことができる。整形式のエクストラクタとは、何らかの構文誤りを有していないエクストラクタのことである。概して、構文誤りは、エクストラクタが記述される方法における誤りであり、それは、エクストラクタを、作業を行うパターン照合エンジンへと処理できないことを意味する。
【００３９】
ステップ204で、エクストラクタは、(例えば、プラットフォームプロバイダにより)リポジトリに記憶される。リポジトリは、1つまたは複数の機械可読の記憶装置に記憶されたエクストラクタの集合体である。例えば、1つまたは複数のエクストラクタに対応するパターン照合エンジン、エクストラクタに関する情報、ユーザとエクストラクタの間の関連、およびガジェットを含む、他のデータ、プログラム、およびファイルをリポジトリに含めることができる。リポジトリは、機械可読の記憶装置上で隣接したセクションに存在する必要はなく、あるいはリポジトリは、完全に同じ機械可読の記憶装置上に記憶される必要もない。様々な実施形態では、リポジトリは、プラットフォームプロバイダのサーバ上に記憶される。代替の実施形態では、リポジトリは、少なくとも部分的に、1つまたは複数のクライアントマシン上に記憶される。
【００４０】
プラットフォームプロバイダはまた、ユーザからガジェットを受け取ることもでき、それは、いくつかの実施形態では、エクストラクタがリポジトリに記憶されているのと同じように、リポジトリに記憶される。いくつかの実施形態では、ガジェットおよびエクストラクタは、単一のファイルまたはフィードで定義される。
【００４１】
ステップ206で、各エクストラクタにより定義されるパターンは、(例えば、プラットフォームプロバイダにより)対応するパターン照合エンジンへと処理される。いくつかの実施形態では、各エクストラクタにより定義されるパターンをパターン照合エンジンへと処理することは、文書を処理し、かつパターン照合エンジンにより定義されたパターンにマッチするエンティティを文書から抽出するように、パターン照合エンジンで定義されたパターンを文書に適用することができるコンピュータプログラムを生成することを含む。例えば、パターン照合エンジンは、エクストラクタにより定義されるパターンに対応するパーサとすることもできる。概して、パーサは、文書中のテキストストリングを処理して、パターンに対応するエンティティを認識する。いくつかの実施形態では、各エクストラクタにより定義されたパターンをパターン照合エンジンへと処理することは、エクストラクタをパターン照合エンジンとして識別することを含む。
【００４２】
エクストラクタをパターン照合エンジンへと処理することは、いくつかの実施形態では、エクストラクタにおける1つまたは複数の参照を、ストリングリポジトリへと分解することを含むことができる。エクストラクタを処理している間のストリングリポジトリに対する何らかの参照は、ストリングリポジトリ中の実際のストリングで置き換えられる。
【００４３】
いくつかの実施形態では、エクストラクタは、エクストラクタに対応するパターン照合エンジンが、文書に適用される前に処理される。例えば、エクストラクタは、ユーザが、エクストラクタをプラットフォームプロバイダに送った時点で処理することができる。未処理のエクストラクタはまた、例えば、5分ごとに、周期的に処理することもできる。いくつかの実施形態では、エクストラクタは、ユーザがエクストラクタにサブスクライブした時点で処理される。さらに、他の実施形態では、エクストラクタは、パターン照合エンジンが文書に適用される直前にパターン照合エンジンへと処理される。エクストラクタを処理することは、他の時間でも同様に行うことができる。
【００４４】
一実施形態では、各エクストラクタは、別個のパターン照合エンジンへと処理される。別個のパターン照合エンジンは、その対応するエクストラクタにより定義された1つまたは複数のパターンにマッチするエンティティを抽出するだけである。代替の実施形態では、複数のエクストラクタが、同じパターン照合エンジンへと処理される。複数のエクストラクタが同じパターン照合エンジンへと処理される場合、パターン照合エンジンは、その対応するエクストラクタのいずれかにより定義されたいずれかのパターンにマッチするいずれかのエンティティを抽出する。
【００４５】
複数のエクストラクタを同じパターン照合エンジンへと組み合わせることは、プラットフォームプロバイダのサーバが1組のパターンを文書に対して同時に適用できるようにすることにより、効率を上げることができる。
【００４６】
エクストラクタがパターン照合エンジンへと処理された後、エクストラクタに対応するパターン照合エンジンは、任意選択で、エクストラクタの効率を推定するために、(例えば、プラットフォームプロバイダにより)テストすることができる。エクストラクタの効率を推定することは、エクストラクタを1組のサンプル文書上で動作させ、エクストラクタに対応するパターン照合エンジンが、文書を処理するのに要する時間を測定し、かつエクストラクタに対応するパターン照合エンジンが、文書を処理するのに要した時間に基づいて、エクストラクタの効率を推定することを含むことができる。対応するパターン照合エンジンが、所定の閾値よりも長くかかるエクストラクタは、非効率的であると見なすことができる。エクストラクタに対応するパターン照合エンジンが、閾値により指定された時間よりも長く動作する場合、プラットフォームプロバイダのサーバは、パターン照合エンジンの動作を停止し、そのエクストラクタは非効率的であると見なすことができる。閾値は、パターン照合エンジンからの結果を妥当なユーザが待つことになる時間を選択することにより、決定することができる。
【００４７】
ステップ208で、エクストラクタを、サブスクライブするユーザによるサブスクリプションに対して(例えば、プラットフォームプロバイダにより)利用可能にする。これは、例えば、ユーザが利用可能なエクストラクタの名前を閲覧し、かつユーザがサブスクライブすることを望むエクストラクタを選択できるウェブページユーザインターフェース、あるいはエクストラクタによる抽出を要求するアプリケーションにより提供されるインターフェースからなどを含むいくつかの方法で行うことができる。ユーザが利用可能なエクストラクタを閲覧した場合、ユーザはまた、エクストラクタの説明、またはエクストラクタの作者など、エクストラクタに関するさらなる情報を閲覧することができる。いくつかの実施形態では、エクストラクタは、エクストラクタが適用される文書を閲覧、または変更するために使用されるアプリケーションにより提供されるインターフェースを介するサブスクリプションに対して利用可能である。
【００４８】
エクストラクタへのサブスクリプションは、ファイルへのサブスクリプション、またはフィードへのサブスクリプションとすることができる。ファイルは、例えば、プラットフォームプロバイダ、ユーザ、またはサードパーティのデータ処理装置上に記憶することができる。フィードは、増分的にデータ転送を行うことを可能にするプロトコルに従って、一方のデータ処理装置から他方へと転送されるファイルである。フィードプロトコルの例には、Atomフィード、RSSフィード、およびGDataフィードが含まれる。
【００４９】
代替の実施形態では、ガジェットを、ユーザによるサブスクリプションに対して利用可能にすることができる。ガジェットを、エクストラクタとは別に、サブスクライブすることができる、あるいはエクストラクタと共にサブスクライブすることができる。いくつかの実施形態では、サブスクリプションに対してエクストラクタが利用可能にされるのと同じように、サブスクリプションに対してガジェットを利用可能にすることもできる。
【００５０】
ステップ210で、エクストラクタにサブスクライブする第1のユーザからのサブスクリプションが(例えばプラットフォームプロバイダにより)受け取られる。このサブスクリプションは、例えば、ウェブページインターフェースを介するなどを含む、いくつかの方法で受け取ることができる。いくつかの実施形態では、サブスクリプションは、エクストラクタが適用される文書を閲覧する、または変更するために使用されるアプリケーションにより提供されるインターフェースを介して受け取られる。
【００５１】
選択されたエクストラクタへのサブスクリプションが受け取られたとき、または他の時間に、ユーザ、選択されたエクストラクタ、およびガジェットの間で関連を(例えば、プラットフォームプロバイダにより)作成することができる。この関連は、ユーザが文書を閲覧したとき、選択されたエクストラクタに対応するパターン照合エンジンを文書に適用すべきであり、いずれの得られたエンティティも、ガジェットに渡されるべきであることを示している。
【００５２】
いくつかの実施形態では、1つまたは複数のガジェットへのサブスクリプションはまた、(例えば、プラットフォームプロバイダにより)ユーザから受け取ることもできる。このサブスクリプションは、ウェブページを介することを含めて、エクストラクタへのサブスクリプションが受け取られるのと同様な方法で受け取ることができる。ユーザが、ガジェットおよびエクストラクタの両方にサブスクライブする場合、関連が、(例えば、プラットフォームプロバイダにより)エクストラクタとガジェットの間で作成される。関連は、エクストラクタに対応するパターン照合エンジンにより抽出されたエンティティが、ガジェットに渡されるべきであることを示している。いくつかの実施形態では、エクストラクタはガジェットに関連付けられており、またユーザがエクストラクタにサブスクライブしたとき、ユーザは、自動的にその関連するガジェットにもサブスクライブする。いくつかの実施形態では、ガジェットは、エクストラクタに関連付けられており、またユーザがガジェットにサブスクライブすると、ユーザは、自動的にその関連するエクストラクタにもサブスクライブする。
【００５３】
ステップ212で、第1のユーザの第1の文書に関する変更指示が、(例えば、プラットフォームプロバイダにより)構成プログラムから受け取られる。変更指示は、例えば、ユーザが、テキストを追加または削除することなどにより、文書を作成または変更していることを示すことができる。いくつかの実施形態では、変更指示は、例えば、スペルチェックプログラムが自動的に、文書中のつづりを誤ったテキストを自動的に訂正することなど、プロセスが文書を作成または変更していることを示す。文書の作成または変更を期待して、要求を送ることもできる。いくつかの実施形態では、変更指示は、文書の変更が完了したこと、または一時的に停止したことを示している。
【００５４】
構成プログラムは、文書を表示し、かつユーザに文書を作成または編集できるようにするコンピュータプログラムである。構成プログラムは、例えば、オンラインの文書閲覧プログラム、オンラインの社会的ネットワーキングプログラム、またはインターネットを介してアクセス可能な任意の他のプログラムなど、ウェブベースのアプリケーションとすることができる。ウェブベースのアプリケーションは、例えば、ウェブブラウザ中で動作するJava(登録商標)Script(ジャバスクリプト)またはActionScript(アクションスクリプト)とすることができる。しかし、構成プログラムは、例えば、ワードプロセッサ、インターネットブラウザ、またはユーザのコンピュータ上で動作する任意の他のアプリケーションなど、個々のユーザのコンピュータ上のアプリケーションなどの任意のアプリケーションとすることができる。いくつかの実施形態では、構成プログラムはまた、ガジェットにより生成されたコンテンツを表示し、またはガジェットの提示コンポーネントを表示する。
【００５５】
いくつかの実施形態では、抽出要求が提示プログラムから受け取られる。提示プログラムは、例えば、オンラインの文書閲覧プログラム、オンラインの社会的ネットワーキングプログラム、またはインターネットを介してアクセス可能な任意の他のプログラムなど、ウェブベースのアプリケーションとすることができる。ウェブベースのアプリケーションは、例えば、ウェブブラウザ中で動作するJava(登録商標)ScriptまたはActionScriptプログラムとすることができる。しかし、提示プログラムは、例えば、ワードプロセッサ、インターネットブラウザ、またはユーザのコンピュータ上で動作する任意の他のアプリケーションなど、個々のユーザのコンピュータ上のアプリケーションなどの任意のアプリケーションとすることができる。いくつかの実施形態では、提示プログラムはまた、ガジェットにより生成されたコンテンツを表示し、またはガジェットの提示コンポーネントを表示する。提示プログラムは、構成プログラムとすることができる。
【００５６】
抽出要求は、例えば、ユーザが文書を閲覧していることを示すことができるが、あるいはユーザが文書を閲覧することを期待して送ることもできる。文書を閲覧することは、文書を選択すること、期待して文書をロードすること、文書がすでに表示されているウィンドウを選択すること、または文書を、部分的に、または全体的にユーザに提示させるようにする任意の他のアクションを含むことができる。いくつかの実施形態では、提示プログラムは、複数の文書から複数のエンティティを抽出して、例えば、抽出されたエンティティのインデックスを生成するように要求することができる。抽出要求は、クライアントコンピュータから、例えば、ハードウェアのインターフェース、ソフトウェアのインターフェースを介して、またはコンピュータネットワークを介して、サーバに送信される。
【００５７】
ステップ214で、ユーザのエクストラクタに対応するパターン照合エンジンが、(例えば、プラットフォームプロバイダにより)文書に適用される。ユーザがどのエクストラクタにサブスクライブしたかを示すデータが記憶され、したがって、適切なパターン照合エンジンを識別することができる。ユーザが、複数のエクストラクタにサブスクライブした場合、ユーザがサブスクライブしたすべてのエクストラクタに対応するパターン照合エンジンを適用することができる。
【００５８】
ユーザのエクストラクタに対応するパターン照合エンジンを適用することは、文書に対してパターン照合エンジンを動作させ、かつパターン照合エンジンにより抽出されたエンティティを収集することを含む。パターン照合エンジンにより抽出されたエンティティは、文書からの何らかのものであり、文書それ自体、文書に添付された第2の文書、文書からのテキストの1つまたは複数の部分、または文書中に組み込まれた1つまたは複数の画像を含むことができる。例えば、エンティティは、文書に添付されたメディアファイルとすることもできる。メディアファイルは、例えば、音楽ファイル、ビデオファイル、または画像ファイルとすることができる。いくつかの実施形態では、エンティティはまた、文書中のその位置も含む。
【００５９】
いくつかの実施形態では、パターン照合エンジンは、変更指示または抽出要求が受け取られたすぐ後に適用されるのではなく、後で適用される。例えば、ユーザが、絶えず文書を変更している場合、頻度の高すぎる抽出を回避するために、パターン照合エンジンは、変更指示の間の不連続な間隔で適用することができる。
【００６０】
いくつかの実施形態では、パターン照合エンジンは、閲覧されている文書上ではなく、ユーザにより閲覧される文書に添付された文書上で動作する。
【００６１】
いくつかの実施形態では、パターン照合エンジンの適用は、パターン照合エンジンが、最大の閾値により指定された時間期間内に最初のエンティティを識別しなかった場合、停止される。最大の閾値は、例えば、妥当なユーザがパターン照合エンジンからの結果を待つことになる時間を選択することにより、決定することができる。
【００６２】
ステップ216では、パターン照合エンジンにより識別された1つまたは複数のエンティティが、(例えば、プラットフォームプロバイダにより)ガジェットに提供される。
【００６３】
様々な実施形態では、ガジェットは、文書から抽出されたエンティティに、少なくとも部分的に基づいて、ユーザに対して表示するためのコンテンツを生成する。次いで、ガジェットは、このコンテンツをユーザに提示する。ガジェットは、(文書を表示している方の)構成プログラムまたは提示プログラムとは独立して、並列に、またはその中で、コンテンツをユーザに提示する。
【００６４】
いくつかの実施形態では、ガジェットは、ユーザに対して提示するためのコンテンツを生成するが、コンテンツをユーザに提示するために、構成プログラムまたは提示プログラムを利用する。これらの実施形態では、ガジェットはサーバ上で動作することができ、その場合、エンティティは、例えば、ハードウェアもしくはソフトウェアのインターフェースを介して、またはネットワークを介してガジェットに提供されるが、あるいはクライアント上で動作することもでき、その場合、エンティティは、例えば、ネットワークを介してガジェットに提供される。ハードウェアまたはソフトウェアのインターフェースは、マシン上の2つのプログラムに、例えば、システムバス、またはAPI(application programming interface)で指定されるコマンドを伝達させるインターフェースである。ガジェットは、1つまたは複数のエンティティを受け取り、かつその1つまたは複数のエンティティを使用して、文書ベースのコンテンツを生成する。
【００６５】
いくつかの実施形態では、ガジェットは、2つの部分、すなわち、ユーザに提示するためのコンテンツを生成するバックエンドコンポーネントと、コンテンツをユーザに提示し、任意選択でユーザと対話する提示コンポーネントとを有する。提示コンポーネントは、構成プログラムもしくは提示プログラム中で、または構成プログラムもしくは提示プログラムと並列に動作する。
【００６６】
いくつかの実施形態では、バックエンドコンポーネントおよび提示コンポーネントは共に、クライアントマシン上で動作する。これらの実施形態では、エンティティは、例えば、コンピュータネットワークを介して、ガジェットに渡される。
【００６７】
代替的な実施形態では、バックエンドコンポーネントはサーバ上で動作し、また提示コンポーネントはクライアントマシン上で動作する。これらの実施形態では、エンティティは、例えば、サーバ上のハードウェアもしくはソフトウェアのインターフェースを介して、ガジェットに渡され、ガジェットのバックエンドコンポーネントは、例えば、ネットワークを介して、コンテンツを、表示するためにクライアントマシン上の提示コンポーネントへと渡す。いくつかの実施形態では、バックエンドコンポーネントは、プラットフォームプロバイダのサーバ以外のサードパーティのサーバ上で動作する。これらの実施形態では、エンティティは、例えば、ネットワークを介してガジェットに渡され、またガジェットは、コンテンツを、例えば、ネットワークを介して表示するためにクライアントマシン上の提示コンポーネントへと渡す。
【００６８】
図3は、システムの例示的なアーキテクチャを示している。システムは、概して、サーバ302と、サーバにエクストラクタをアップロードするために使用される複数のクライアントコンピュータ320および322と、エクストラクタにサブスクライブし、かつ提示プログラムおよびガジェットを動作させるために使用されるクライアントコンピュータ326とからなり、すべてがネットワーク324を介して接続されている。
【００６９】
いくつかの実施形態では、クライアントコンピュータ326はまた、クライアントコンピュータ320および322のアーキテクチャを有する。いくつかの実施形態では、クライアントコンピュータ320および322はまた、クライアントコンピュータ326のアーキテクチャを有する。
【００７０】
プラットフォームプロバイダのサーバ302はデータ処理装置である。図3で、1つのデータ処理装置だけが示されているが、複数のデータ処理装置を使用してもよい。
【００７１】
様々な実施形態では、プラットフォームプロバイダのサーバ302は、エクストラクタプロセッサプログラム304、およびパターン照合エンジンアプライヤプログラム306を動作させる。プログラムを動作させることは、例えば、プログラムのコピーをインスタンス化すること、システム資源をプログラムに提供すること、および、例えば、APIで指定されたコマンドを介するなど、ソフトウェアまたはハードウェアのインターフェースを介して、プログラムと通信することを含む。
【００７２】
エクストラクタプロセッサ304は、エクストラクタを、対応するパターン照合エンジンへと処理する。概して、パターン照合エンジンは、文書を処理してエンティティを抽出するコンピュータプログラムである。いくつかの実施形態では、各エクストラクタは、別個のパターン照合エンジンへと処理される。別個のパターン照合エンジンは、その対応するエクストラクタにより定義された1つまたは複数のパターンにマッチするエンティティを抽出するだけである。代替の実施形態では、複数のエクストラクタが同じパターン照合エンジンへと処理される。複数のエクストラクタが同じパターン照合エンジンへと処理される場合、パターン照合エンジンは、その対応するエクストラクタのいずれかにより定義されたいずれかのパターンにマッチするいずれかのエンティティを抽出する。
【００７３】
パターン照合エンジンアプライヤ306は、パターン照合エンジンを文書に適用する。これは、パターン照合エンジンに、文書を処理してエンティティを抽出させることを含む。例えば、パターン照合エンジンが、コンピュータで実行可能な2進プログラムである場合、パターン照合エンジンアプライヤは、パターン照合エンジンを、データ処理装置により動作させる。パターン照合エンジンが、コンパイルする必要のあるソフトウェアコードである場合、パターン照合エンジンアプライヤは、そのソフトウェアコードを、コンピュータで実行可能な2進プログラムへとコンパイルし、その2進プログラムを、データ処理装置により動作させる。パターン照合エンジンを解釈する必要のある場合、パターン照合エンジンアプライヤは、パターン照合エンジンを解釈する。
【００７４】
他の形のパターン照合エンジン、およびパターン照合エンジンを適用する方法も考えられる。
【００７５】
いくつかの実施形態では、プラットフォームプロバイダのサーバ302はまた、ガジェットプログラム308を動作させる。
【００７６】
いくつかの実施形態では、ガジェットプログラム308は、ユーザに表示するためのコンテンツを生成するだけである。これらの実施形態では、ガジェット308は、例えば、ハードウェアまたはソフトウェアのインターフェースを介して、抽出されたエンティティをサーバ302から受け取る。ガジェット308は、次いで、ユーザに提示するためのコンテンツを生成する。コンテンツは、例えば、ネットワーク324を介して、クライアントコンピュータ326上の構成プログラム330または提示プログラム328に送られる。
【００７７】
いくつかの実施形態では、ガジェット308は、2つのコンポーネント、すなわち、バックエンドコンポーネントおよび提示コンポーネントを有する。これらの実施形態では、サーバ302は、ガジェット308のバックエンドコンポーネントを動作させ、またガジェット332の提示コンポーネントは、クライアントコンピュータ326上で動作する。ガジェットのバックエンドコンポーネントは、例えば、ハードウェアまたはソフトウェアのインターフェースを介して、データ処理装置から抽出されたエンティティを受け取る。バックエンドコンポーネントは、次いで、ユーザに提示するためのコンテンツを生成し、そのコンテンツを、ユーザに提示するために、例えば、ネットワーク324を介して、クライアントコンピュータ326上のガジェット332の提示コンポーネントに送る。
【００７８】
他の実施形態も考えられる。例えば、いくつかの実施形態では、プラットフォームプロバイダのサーバ302は、エクストラクタプロセッサプログラム304だけを動作させる。これらの実施形態では、パターン照合エンジンアプライヤプログラム334、およびガジェットプログラム332は、クライアントコンピュータ326上で動作する。いくつかの実施形態では、プラットフォームプロバイダのサーバ302は、エクストラクタプロセッサプログラム304およびガジェットプログラム308を動作する。これらの実施形態では、パターン照合エンジンアプライヤプログラム334は、クライアントコンピュータ326上で動作する。
【００７９】
いくつかの実施形態では、サーバ302はまた、エクストラクタのリポジトリを記憶する。リポジトリは、パターン照合エンジンおよびガジェットを含む、他のプログラム、ファイル、およびデータを含むことができる。いくつかの実施形態では、リポジトリは、コンピュータ可読媒体314に記憶される。いくつかの実施形態では、リポジトリは、例えば、ハードドライブなど、1つまたは複数の付加的装置312に記憶される。
【００８０】
サーバ302はまた、1つまたは複数のプロセッサ310、1つまたは複数の付加的装置312、コンピュータ可読媒体314、および1つまたは複数のユーザインターフェース装置318を含むハードウェアまたはソフトウェア装置を有する。ユーザインターフェース装置318は、例えば、ディスプレイ、カメラ、スピーカ、マイクロフォン、または触覚的フィードバック装置を含む。
【００８１】
サーバ302は、ネットワーク324を介して、複数のクライアントコンピュータ320、322、および326と通信するために、その通信インターフェース316を使用する。
【００８２】
複数のクライアントコンピュータ320および322は、ネットワークを介してプラットフォームプロバイダのサーバ302に接続される。ユーザは、これらのコンピュータを動作させ、これらのコンピュータを用いてエクストラクタを記述することができる。エクストラクタを記述することは、例えば、ソフトウェア開発プログラムで、またはクライアントコンピュータにより動作するテキストエディタで、エクストラクタに対応するソフトウェアコードを記述することを含むことができる。クライアントコンピュータ320および322は、例えば、ネットワーク324を介して、完了したエクストラクタをプラットフォームプロバイダのサーバ302にアップロードする。
【００８３】
ユーザ1は、データ処理装置であるクライアントコンピュータ326を動作させる。様々な実施形態では、クライアントコンピュータ326は、構成プログラム330およびガジェットプログラム332を動作させる。
【００８４】
構成プログラム330は、文書をユーザに提示し、かつユーザが、例えば、テキストを文書に追加または文書から除去することにより文書を作成し、かつ変更することを可能にする。構成プログラムは、プラットフォームプロバイダのサーバ302、またはクライアントコンピュータ326(パターン照合エンジンアプライヤを動作させている方)に変更指示を送る。この変更指示は、例えば、ユーザが、自分のコンピュータ326上の構成プログラム330における文書を更新する、または作成することに応じたものとすることができる。
【００８５】
いくつかの実施形態では、ガジェットプログラム332は、ユーザに表示するためのコンテンツを生成するだけである。これらの実施形態では、ガジェット332は、例えば、ネットワーク324を介して、サーバ302から1つまたは複数の抽出されたエンティティを受け取る。ガジェット332は、少なくとも部分的に、抽出されたエンティティに基づいて、ユーザに表示するためのコンテンツを生成する。ガジェット332は、次いで、ユーザに提示するために、このコンテンツを、構成プログラム330、または提示プログラム328に提示する。
【００８６】
いくつかの実施形態では、ガジェット332は、2つのコンポーネント、すなわち、バックエンドコンポーネントおよび提示コンポーネントを有しており、その両方がクライアントコンピュータ326上で動作する。これらの実施形態では、ガジェット332は、プラットフォームプロバイダのサーバ302から1つまたは複数の抽出されたエンティティを受け取る。ガジェットのバックエンドコンポーネントは、少なくとも部分的に抽出されたエンティティに基づいて、ユーザに提示するための表示を生成する。ガジェットの提示コンポーネントは、バックエンドコンポーネントにより生成されたコンテンツを提示し、かつ任意選択で提示プログラムを介してユーザと対話することができる。提示コンポーネントは、例えば、コンテンツを、構成プログラム330または提示プログラム328(文書を表示している方)とは独立して、並列に、またはその中で提示するJava(登録商標)ScriptまたはActiveScriptプログラムとすることができる。いくつかの実施形態では、ガジェットの提示コンポーネントは、ユーザと対話することなく、単に、提示プログラムにより、コンテンツをどのように提示するかを制御する。
【００８７】
いくつかの実施形態では、ガジェットは、2つのコンポーネント、すなわち、バックエンドコンポーネントおよび提示コンポーネントを有しており、ガジェット332の提示コンポーネントは、クライアントコンピュータ326上で動作し、また、ガジェット308のバックエンドコンポーネントは、プラットフォームプロバイダのサーバ302上で動作する。この実施形態では、サーバは、抽出されたエンティティを、例えば、ハードウェアまたはソフトウェアのインターフェースを介して、ガジェット308のバックエンドコンポーネントに送る。ガジェット308のバックエンドコンポーネントは、ユーザに表示するためのコンテンツを生成する。このコンテンツは、例えば、ネットワーク324を介して、ガジェット332の提示コンポーネントに送られる。ガジェット332の提示コンポーネントは、生成されたコンテンツを提示し、かつ任意選択で、構成プログラム330または提示プログラム328(文書を表示している方)とは独立して、並列に、またはその中でユーザと対話する。いくつかの実施形態では、ガジェットの提示コンポーネントは、ユーザと対話することなく、単に、提示プログラムにより、コンテンツをどのように提示するかを制御する。
【００８８】
いくつかの実施形態では、ガジェットは、2つのコンポーネント、すなわち、バックエンドコンポーネントおよび提示コンポーネントを有しており、ガジェット332の提示コンポーネントは、クライアントコンピュータ326上で動作し、また、ガジェットのバックエンドコンポーネントは、サードパーティのコンピュータ上で動作する。この実施形態では、サーバは、抽出されたエンティティを、例えば、ネットワークを介して、ガジェットのバックエンドコンポーネントに送る。ガジェットのバックエンドコンポーネントは、ユーザに表示するためのコンテンツを生成する。このコンテンツは、例えば、ネットワークを介して、ガジェット332の提示コンポーネントに送られる。ガジェット332の提示コンポーネントは、生成されたコンテンツを提示し、かつ任意選択で、構成プログラム330または提示プログラム328(文書を表示している方)とは独立して、並列に、またはその中でユーザと対話する。いくつかの実施形態では、ガジェットの提示コンポーネントは、ユーザと対話することなく、単に、提示プログラムにより、コンテンツをどのように提示するかを制御する。
【００８９】
いくつかの実施形態では、クライアントコンピュータ326はまた、パターン照合エンジンアプライヤプログラム334も動作させる。クライアントコンピュータ326は、他の実施形態において、プラットフォームプロバイダのサーバ302が、パターン照合エンジンアプライヤ306を動作させるのと同様な方法で、パターン照合エンジンアプライヤ334を動作させる。
【００９０】
いくつかの実施形態では、クライアントコンピュータ326は、構成プログラム330に加えて、またはそれに代えて提示プログラム328を動作させる。提示プログラム328は、構成プログラム330の一部とすることができるが、あるいは別個のプログラムとすることもできる。提示プログラム328は、1つまたは複数の文書をユーザに提示する。提示プログラムはまた、1つまたは複数の文書に関するユーザ入力を受け取り、ユーザ入力に基づいて、1つまたは複数の文書、または1つまたは複数の文書の提示を更新することができる。提示プログラムは、例えば、ユーザが文書を閲覧するとき、プラットフォームプロバイダのサーバ302またはクライアントコンピュータ326に(パターン照合アプライヤを動作させている方に)抽出要求を送る。
【００９１】
他の実施形態もまた考えられる。例えば、いくつかの実施形態では、構成プログラム330だけが、クライアントコンピュータ326上で動作する。これらの実施形態では、ガジェットプログラム308およびパターン照合エンジンアプライヤプログラム306はサーバ302上で動作する。いくつかの実施形態では、提示プログラム328だけが、クライアントコンピュータ326上で動作する。これらの実施形態では、ガジェットプログラム308およびパターン照合エンジンアプライヤプログラム306は、サーバ302上で動作する。いくつかの実施形態では、提示プログラム328および構成プログラム330だけが、クライアントコンピュータ326上で動作する。これらの実施形態では、ガジェットプログラム308およびパターン照合エンジンアプライヤプログラム306がサーバ302上で動作する。いくつかの実施形態では、構成プログラム330およびパターン照合エンジンアプライヤプログラム334だけが、クライアントコンピュータ326上で動作する。これらの実施形態では、ガジェットプログラム308がサーバ302上で動作する。いくつかの実施形態では、提示プログラム328およびパターン照合エンジンアプライヤプログラム334だけが、クライアントコンピュータ326上で動作する。これらの実施形態では、ガジェットプログラム308は、サーバ302上で動作する。いくつかの実施形態では、提示プログラム328、構成プログラム330、およびパターン照合エンジンアプライヤプログラム334だけが、クライアントコンピュータ326上で動作する。これらの実施形態では、ガジェットプログラム308は、サーバ302上で動作する。
【００９２】
いくつかの実施形態では、クライアントコンピュータ326はまた、エクストラクタのリポジトリを記憶する。リポジトリは、パターン照合エンジンおよびガジェットを含む、他のプログラム、ファイル、およびデータを含むことができる。いくつかの実施形態では、リポジトリは、コンピュータ可読媒体に記憶される。いくつかの実施形態では、リポジトリは、例えば、ハードドライブなど、付加的装置に記憶される。いくつかの実施形態では、リポジトリの一部がサーバ302に記憶され、またリポジトリの一部がクライアントコンピュータ326に記憶される。
【００９３】
図4は、様々な実施形態における、システムを通る情報の流れを示している。図4では、1つのプラットフォームプロバイダのサーバだけ示されているが、複数のサーバもまた使用することができる。
【００９４】
様々な実施形態では、複数のユーザコンピュータ402および404が、ネットワーク412を介して、プラットフォームプロバイダのサーバ414に記憶されたリポジトリ416に、エクストラクタをアップロードする。エクストラクタは、エクストラクタプロセッサ418により、パターン照合エンジンへと処理される。完了したパターン照合エンジンは、リポジトリ416に記憶される。いくつかの実施形態では、ガジェットもまた、ネットワーク412を介してアップロードされ、リポジトリに記憶される。いくつかの実施形態では、リポジトリは、少なくとも部分的に、クライアントコンピュータに記憶される。この実施形態では、サーバ414は、パターン照合エンジンへとエクストラクタを処理して、エクストラクタ、またはパターン照合エンジンを、クライアントコンピュータ上のリポジトリに送る。いくつかの実施形態では、エクストラクタはガジェットと関連付けられる。いくつかの実施形態では、ガジェットは、エクストラクタと共にアップロードされる。
【００９５】
様々な実施形態では、ユーザは、クライアントコンピュータ406を使用して、エクストラクタへのサブスクリプションをネットワーク412を介して、プラットフォームプロバイダのサーバ414に送る。プラットフォームプロバイダのサーバ414は、次いで、サブスクライブされたエクストラクタ、またはその対応するパターン照合エンジンをユーザと関連付ける。いくつかの実施形態では、ユーザはまた、ネットワーク412を介して、ガジェットへのサブスクリプションを、プラットフォームプロバイダのサーバ414に送る。プラットフォームプロバイダのサーバ414は、次いで、ガジェットをユーザと関連付ける。
【００９６】
様々な実施形態では、ユーザが、クライアントコンピュータ406上の構成プログラム408で文書を変更する場合、クライアントコンピュータは、ネットワーク412を介して、変更指示をプラットフォームプロバイダのサーバ414に送る。パターン照合エンジンアプライヤ420は、次いで、サブスクライブされたエクストラクタに対応するパターン照合エンジンを文書に適用し、第1のエンティティを抽出する。プラットフォームプロバイダのサーバ414は、次いで、ネットワーク412を介して、第1のエンティティをクライアントコンピュータ406上のガジェット410に送る。いくつかの実施形態では、提示プログラムが、クライアントコンピュータ406上で動作しており、ネットワーク412を介して抽出要求を送る。いくつかの実施形態では、パターン照合エンジンアプライヤは、クライアントコンピュータ406上で動作する。これらの実施形態では、通知は、サーバ414ではなく、クライアントコンピュータ406に送られる。パターン照合エンジンおよびガジェットが、同じマシン上で動作する場合、エンティティは、例えば、ハードウェアまたはソフトウェアのインターフェースなど、他の手段によりガジェットに送ることができる。
【００９７】
様々な実施形態では、ガジェット410はクライアントコンピュータ406で動作し、第1のエンティティに関係するコンテンツを生成し、かつそれを、構成プログラム408とは独立して、並列に、またはその中でユーザに提示する。コンテンツは、例えば、第1のエンティティに関連するテキスト、第1のエンティティに付随するアクション、第1のエンティティに関連する音、第1のエンティティに関連する触覚的なフィードバック、または第1のエンティティに関連するデータの提示を定義するJava(登録商標)ScriptもしくはActiveScriptコードを含む、ユーザに提示できる任意のものを含むことができる。いくつかの実施形態では、コンテンツは、ユーザに対して、構成プログラム408に代えた提示プログラムとは独立して、並列に、またはその中で提示される。いくつかの実施形態では、ガジェット410は、バックエンドコンポーネントおよび提示コンポーネントからなり、それは共に、クライアントコンピュータ406上で動作する。バックエンドコンポーネントは、サーバ414からエンティティを受け取り、表示するためにコンテンツを生成する。バックエンドコンポーネントは、次いで、コンテンツを提示コンポーネントに送り、それは、コンテンツをユーザに表示し、かつ任意選択でユーザとの対話に基づいて提示を更新する。いくつかの実施形態では、ガジェットは、完全にサーバ上で動作する。これらの実施形態では、ガジェットは、抽出されたエンティティに基づいて表示するためのコンテンツを生成し、かつネットワークを介して、このコンテンツをクライアントコンピュータ406に送る。いくつかの実施形態では、ガジェットは、バックエンドコンポーネントおよび提示コンポーネントからなり、またバックエンドコンポーネントは、サーバ414上で動作するが、提示コンポーネントは、クライアントマシン406上で動作する。これらの実施形態では、バックエンドコンポーネントは、少なくとも部分的に、抽出されたエンティティに基づいてコンテンツを生成し、かつコンテンツを、ネットワーク412を介して、クライアントマシン406上のガジェットの提示コンポーネントに送る。ガジェットの提示コンポーネントは、コンテンツをユーザに提示させ、また任意選択でユーザとの対話に基づき、その提示を更新する。いくつかの実施形態では、ガジェットは、バックエンドコンポーネントおよび提示コンポーネントからなり、またバックエンドコンポーネントは、サードパーティのコンピュータ上で動作するが、提示コンポーネントは、クライアントマシン406上で動作する。これらの実施形態では、バックエンドコンポーネントは、例えば、ネットワークを介して、サーバ414からエンティティを受け取り、また少なくとも部分的に、抽出されたエンティティに基づきコンテンツを生成する。コンテンツは、次いで、ネットワーク412を介して、クライアントマシン406上のガジェットの提示コンポーネントに送られる。ガジェットの提示コンポーネントは、コンテンツをユーザに提示させ、また任意選択で、ユーザとの対話に基づき、その提示を更新する。
【００９８】
本発明の趣旨に沿ったさらなる情報の流れも考えられる。
【００９９】
図5は、汎用コンピュータシステム500の例の概略図である。システム500は、一実施形態による方法200と関連して述べられた動作に対して使用することができる。例えば、システム500は、ユーザAのクライアントコンピュータ320、ユーザBのクライアントコンピュータ322、ユーザ1のクライアントコンピュータ326、およびサーバ302のいずれか、またはすべてに含むことができる。
【０１００】
システム500は、プロセッサ510、メモリ520、記憶装置530、および入力/出力装置540を含む。各コンポーネント510、520、530、および540は、システムバス550を用いて相互接続される。上記で述べた方法と関連する動作を実施する命令は、メモリ520に、または記憶装置530に記憶することができる。プロセッサ510は、システム500内で実行するための命令を処理することができる。一実施形態では、プロセッサ510は、シングルスレッドのプロセッサである。他の実施形態では、プロセッサ510は、多重スレッドのプロセッサである。プロセッサ510は、ユーザインターフェースに対するグラフィカルな情報を入力/出力装置540上で表示するために、メモリ520または記憶装置530に記憶された命令を処理することができる。
【０１０１】
メモリ520は、プログラム命令を含むシステム500内の情報を記憶する。一実施形態では、メモリ520はコンピュータ可読媒体である。一実施形態では、メモリ520は揮発性の記憶ユニットである。他の実施形態では、メモリ520は不揮発性の記憶ユニットである。
【０１０２】
記憶装置530は、システム500に対して、大容量記憶を提供することができる。一実施形態では、記憶装置530は、コンピュータ可読媒体である。様々な異なる実施形態では、記憶装置530は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、またはテープ装置とすることができる。記憶装置は、エクストラクタ、パターン照合エンジン、ガジェット、マシン、およびプログラムを記憶することができる。
【０１０３】
入力/出力装置540は、システム500に対する入力/出力動作を提供する。一実施形態では、入力/出力装置540は、キーボードおよび/またはポインティング装置を含む。他の実施形態では、入力/出力装置540は、グラフィカルユーザインターフェースを表示するための表示ユニットを含む。
【０１０４】
上記で述べた特徴は、デジタル電子回路、集積回路、特別に設計されたASIC(特定用途向けIC)、コンピュータハードウェア、ファームウェア、ソフトウェア、および/またはそれらの組合せで実施することができる。様々な実施形態は、記憶装置、少なくとも1つの入力装置、および少なくとも1つの出力装置からデータおよび命令を受け取り、かつそれに対してデータおよび命令を送信するように結合された、専用または汎用とすることのできる少なくとも1つのプログラム可能なプロセッサを含むプログラム可能なシステム上で実行可能であり、かつ/または解釈可能である1つまたは複数のコンピュータプログラムでの実施を含むことができる。
【０１０５】
これらのコンピュータプログラム(プログラム、ソフトウェア、ソフトウェアアプリケーション、またはコードとしても知られている)は、プログラム可能なプロセッサのための機械語命令を含み、また高水準の手続き形および/またはオブジェクト指向のプログラミング言語で、かつ/またはアセンブリ言語/機械語で実装することができる。本明細書で使用する場合、用語「機械可読媒体」または「コンピュータ可読媒体」は、機械可読信号として機械語命令を受け取る機械可読媒体を含む、プログラム可能なプロセッサに機械語命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置、および/またはデバイス(例えば、磁気ディスク、光ディスク、メモリ、PLD(プログラム可能な論理デバイス)など)を指す。用語「機械可読信号」は、機械語命令および/またはデータをプログラム可能なプロセッサに提供するために使用される任意の信号を指す。
【０１０６】
命令のプログラムを実行するために適切なプロセッサは、例として、汎用および専用のマイクロプロセッサ、ならびに任意の種類のコンピュータの単独のプロセッサ、または複数プロセッサのうちの1つを含む。概して、プロセッサは、読取り専用メモリ、またはランダムアクセスメモリ、またはその両方から命令およびデータを受け取ることになる。コンピュータの基本要素は、命令を実行するためのプロセッサと、命令およびデータを記憶するための1つまたは複数のメモリである。概して、コンピュータはまた、データファイルを記憶するための1つまたは複数の大容量記憶装置を含み、あるいはそれと通信するように動作可能に結合されるが、このような装置は、内部のハードディスクおよび取外し可能なディスクなどの磁気ディスク、光磁気ディスク、および光ディスクを含む。データベースを含む、コンピュータプログラム命令およびデータを有形に実施するのに適切な記憶装置は、例として、EPROM、EEPROM、およびフラッシュメモリ装置などの半導体記憶装置、内部のハードディスクおよび取外し可能なディスクなどの磁気ディスク、光磁気ディスク、ならびにCD-ROMおよびDVD-ROMディスクを含む不揮発性メモリのすべての形態を含む。プロセッサおよびメモリは、ASIC(特定用途向けIC)により補足され、またはそれに組み込むことができる。
【０１０７】
ユーザとの対話を提供するために、本明細書で述べるシステムおよび技法は、情報をユーザに表示するための表示装置(例えば、CRT(陰極線管)またはLCD(液晶表示装置)モニタ)、およびにユーザがコンピュータへの入力を行うことができるキーボードおよびポインティング装置(例えば、マウスまたはトラックボール)を有するコンピュータで実施することができる。他の種類の装置もユーザとの対話を行うために、同様に使用することができる。例えば、ユーザに提供されるフィードバックは、任意の形の感覚的フィードバック(例えば、視覚的フィードバック、聴覚的フィードバック、または触覚的フィードバック)とすることができ、またユーザからの入力は、音響、音声、または触覚的入力を含む任意の形で受け取ることができる。
【０１０８】
本明細書で述べられるシステムおよび技法は、(例えば、データサーバとして)バックエンドコンポーネントを含むコンピューティングシステムで、またはミドルウェアコンポーネント(例えば、アプリケーションサーバ)を含むコンピューティングシステムで、またはフロントエンドコンポーネント(例えば、ユーザが、本明細書で述べるシステムおよび技法の実施形態とそれを介して対話できるグラフィカルユーザインターフェース、またはウェブブラウザを有するクライアントコンピュータ)を含むコンピューティングシステムで、あるいはこのようなバックエンド、ミドルウェアウェア、もしくはフロントエンドコンポーネントの任意の組合せを含むコンピューティングシステムで実施することができる。システムのコンポーネントは、デジタルデータ通信の任意の形態もしくは媒体(例えば、通信ネットワーク)により相互接続することができる。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、広域ネットワーク(「WAN」)、およびインターネットを含む。
【０１０９】
コンピュータシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般に、互いに遠隔にあり、また、通常、前述のものなど、ネットワークを介して対話する。クライアントとサーバの関係は、各コンピュータ上で動作し、かつクライアント/サーバの関係を互いに有するコンピュータプログラムにより生ずる。
【０１１０】
いくつかの実施形態が上記で詳細に述べられてきたが、他の変更形態も可能である。例えば、ユーザAのクライアントコンピュータ320、およびサーバ302は、同じコンピュータシステム内で実施することもできる。
【０１１１】
さらに、諸図で示した論理的な流れは、所望の結果を達成するために、示された特定の順序で、またはその順序で順次に行われることを必要としていない。さらに、前述の流れに他のステップを加えることも、ステップを除外することも可能であり、また前述のシステムに他のコンポーネントを追加することも、コンポーネントを除外することも可能である。したがって、他の実施形態も、添付の特許請求の範囲に含まれる。
【０１１２】
本発明のいくつかの実施形態が述べられてきた。そうではあるが、本発明の趣旨および範囲を逸脱することなく、様々な変更を加えうることが理解されよう。したがって、他の諸実施形態も、添付の特許請求の範囲に含まれる。
【符号の説明】
【０１１３】
102  文書
104  ガジェットの出力、ガジェット
106  送信者
110  電子メール文書
112  電子メール文書
114  オンラインビデオ、ガジェット
115  再生ボタン
116  オンラインビデオ、ガジェット
118  URL
120  URL、ガジェット
122  電子メール文書
124  銘柄記号「STK:EPSH」
126  銘柄記号「STK:KCSW」
302  サーバ
304  エクストラクタプロセッサプログラム
306  パターン照合エンジンアプライヤプログラム
308  ガジェットプログラム
310  プロセッサ
312  付加的装置
314  コンピュータ可読媒体
316  通信インターフェース
318  ユーザインターフェース装置
320  クライアントコンピュータ
322  クライアントコンピュータ
324  ネットワーク
326  クライアントコンピュータ
328  提示プログラム
330  構成プログラム
332  ガジェットプログラム
334  パターン照合エンジンアプライヤプログラム
402  ユーザコンピュータ
404  ユーザコンピュータ
406  クライアントコンピュータ、クライアントマシン
408  構成プログラム
410  ガジェット
412  ネットワーク
414  サーバ
416  リポジトリ
418  エクストラクタプロセッサ
420  パターン照合エンジンアプライヤ
500  汎用コンピュータシステム
510  プロセッサ
520  メモリ
530  記憶装置
540  入力/出力装置
550  システムバス
【図１Ａ】
2012510129.tif 000003
【図１Ｂ】
2012510129.tif 000004
【図１Ｃ】
2012510129.tif 000005
【図２】
2012510129.tif 000006
【図３】
2012510129.tif 000007
【図４】
2012510129.tif 000008
【図５】
2012510129.tif 000009
【国際調査報告】
2012510129.tif 000010
2012510129.tif 000011
2012510129.tif 000012
2012510129.tif 000013
2012510129.tif 000014