(57)【特許請求の範囲】
【請求項１】
閲覧用コンピュータと、複数のウェブサービス装置と、を有する閲覧システムであって、
（ａ）前記閲覧用コンピュータは、ブラウザプログラムを実行することにより、
ＵＲＬ（Universal Resource Locator）を指定するＵＲＬ指示入力を受け付けるＵＲＬ受付部、
前記受け付けられた指示入力に指定されるＵＲＬに配置されるウェブ文書を取得する文書取得部、
前記取得されたウェブ文書のＤＯＭ（Document Object Model）ツリーに基づいて、当該ウェブ文書を画面に描画して表示する表示部
として機能し、
（ｂ）前記複数のウェブサービス装置のそれぞれは、
処理対象データを指定するウェブサービス要求を受信するサービス要求受信部、
前記受信されたウェブサービス要求に指定される処理対象データに所定のウェブサービス処理を施すサービス処理部、
前記所定の処理を施して得られた処理結果データを指定するウェブサービス応答を、当該ウェブサービス要求の送信元に送信するサービス応答送信部
を備える閲覧システムにおいて、
当該閲覧システムは、さらに紹介装置を有し、
（ｃ）前記紹介装置は、
テキストを指定する紹介要求を受信する紹介要求受信部、
前記受信された紹介要求に指定されるテキストを処理可能なウェブサービス装置を、前記複数のウェブサービス装置から選択するサービス選択部、
前記選択されたウェブサービス装置を指定する紹介応答を当該紹介要求の送信元へ送信する紹介応答送信部
を備え、
（ｄ）前記閲覧用コンピュータは、当該ブラウザプログラムが実行されている環境で、プラグインプログラムを実行することにより、
前記表示されたウェブ文書の文書内の位置を指定する位置指示入力を受け付ける位置受付部、
前記表示されたウェブ文書のＤＯＭツリーのうち、前記受け付けられた位置指示入力に指定される位置に表示されるテキストを取得するテキスト取得部、
前記取得されたテキストを指定する紹介要求を、前記紹介装置に送信する紹介要求送信部、
前記紹介装置から送信された紹介応答を受信する紹介応答受信部、
前記紹介応答が受信されると、
（１）前記紹介応答に指定されるウェブサービス装置のいずれか一つに対応付けられる埋込用要素ノードであって、前記取得されたテキストを処理対象データとして指定するウェブサービス要求を送信することによって当該ウェブサービス装置から送信されるウェブサービス応答に指定される処理結果データが埋め込まれるべき埋込用要素ノードと、
（２）前記紹介応答に指定される他のウェブサービス装置のそれぞれと対応付けられる問い合わせ用要素ノードであって、前記受け付けられた位置指示入力に指定される位置に当該問い合わせ用要素ノードが表示されている場合、当該問い合わせ用要素ノードに対応付けられるウェブサービス装置に前記取得されたテキストを処理対象データとして指定するウェブサービス要求を送信することによって当該ウェブサービス装置から送信されるウェブサービス応答に指定される処理結果データが埋め込まれるべき問い合わせ用要素ノードと、
を、前記表示されたウェブ文書のＤＯＭツリーのうち、前記取得されたテキストの近傍に挿入する要素挿入部、
前記表示されたウェブ文書のＤＯＭツリーに要素ノードが挿入され、もしくは、ウェブサービス応答が受信され、当該ウェブサービス応答に指定される処理結果データが埋込用要素ノードもしくはサービス要求要素ノードに埋め込まれると、前記表示部に当該変更されたウェブ文書を再描画させて当該画面に表示させる表示制御部
としてさらに機能する
ことを特徴とする閲覧システム。
【請求項２】
請求項１に記載の閲覧システムであって、
前記テキスト取得部は、前記受け付けられた位置指示入力に指定される位置を含む要素ノードのうち、あらかじめ定められた種類の要素ノードであって、最小の要素ノードを、前記表示されたウェブ文書のＤＯＭツリーから検索し、当該検索された最小の要素ノードの子孫であるテキストノードのテキストが
（１）取得されていなければ、当該テキストを、当該取得された結果のテキストとし、
（２）過去に取得済みであれば、テキストは取得できなかったものとし、
前記要素挿入部は、インラインフレーム要素、オブジェクト要素、もしくは、スクリプト要素のノードを当該埋込用要素ノードとして用いる
ことを特徴とする閲覧システム。
【請求項３】
請求項２に記載の閲覧システムであって、
当該あらかじめ定められた種類の要素ノードには、アンカー要素ノードが含まれ、
前記取得された最小の要素ノードがアンカー要素ノードである場合、既に、当該アンカー要素ノードの子孫であるテキストノードのテキストが過去に取得済みであれば、前記ＵＲＬ受付部は、当該アンカー要素ノードに指定されるＵＲＬを、ＵＲＬ指示入力に指定されるものとして受け付ける
ことを特徴とする閲覧システム。
【請求項４】
請求項１に記載の閲覧システムであって、
前記紹介装置において、前記サービス選択部は、当該複数のウェブサービス装置の前記受信された紹介要求に指定されるテキストに対する適合度をそれぞれ計算し、当該適合度が、所定の閾値以上であるウェブサービス装置を選択し、当該ウェブサービス装置が複数選択された場合、前記紹介応答送信部は、当該選択されたウェブサービス装置について計算された適合度の順をさらに紹介応答に指定し、
当該ブラウザプログラムが実行されている環境で、当該プラグインプログラムを実行する前記閲覧用コンピュータにおいて、前記要素挿入部は、前記受信された紹介応答にウェブサービス装置が複数指定されている場合、
（１）前記埋込用要素ノードに、当該適合度が最大のウェブサービス装置を対応付け、
（２）前記問い合わせ用要素ノードのそれぞれに、当該適合度が２位以下のウェブサービス装置のそれぞれを対応付け、
前記閲覧用コンピュータは、当該ブラウザプログラムが実行されている環境で、当該プラグインプログラムを実行することにより、前記受け付けられた位置指示入力に指定される位置を含む要素ノードが、当該問合せ用要素ノードのいずれかである場合、当該問合せ用要素ノードに対するウェブサービス装置に対する埋込用要素ノードを、当該問合せ用要素ノードの位置に挿入し、当該問合せ用要素ノードを非表示もしくは削除することにより、当該問合せ用要素ノードと当該埋込用要素ノードで置換するノード置換部としてさらに機能する
ことを特徴とする閲覧システム。
【請求項５】
請求項４に記載の閲覧システムであって、
前記紹介装置において、前記サービス選択部は、当該ウェブサービス装置の適合度を、当該テキストが含まれていたウェブ文書の文字コードおよび当該テキストに含まれる文字の出現頻度に基づいて計算する
ことを特徴とする閲覧システム。
【請求項６】
請求項４または５に記載の閲覧システムであって、
前記閲覧用コンピュータは、当該ブラウザプログラムが実行されている環境で、当該プラグインプログラムを実行することにより、前記ノード置換部により、当該問合せ用要素ノードが当該埋込用ノードに置換されると、当該置換された問合せ用要素ノードに対するウェブサービス装置のウェブサービス要求がされた旨を指定する要求報告を、前記紹介装置に送信する報告送信部としてさらに機能し、
前記紹介装置は、
ウェブサービス装置のウェブサービス要求がされた旨を指定する要求報告を受信する報告受信部、
当該複数のウェブサービス装置のそれぞれが、前記受信された要求報告に指定されていた回数を積算する回数積算部
をさらに備え、
前記サービス選択部は、当該ウェブサービス装置の適合度を、前記積算された回数に基づいて計算する
ことを特徴とする閲覧システム。
【請求項７】
請求項６に記載の閲覧システムであって、
前記報告送信部は、当該ウェブサービス要求がされるごとにその旨を蓄積し、当該紹介要求に当該蓄積された情報に基づいて当該ウェブサービス要求がされた旨を指定することにより、当該要求報告を送信し、
前記報告受信部は、前記紹介要求受信部が当該紹介要求を受信するごとに、当該紹介要求に指定されているウェブサービス要求を取得することにより、当該要求報告を受信する
ことを特徴とする閲覧システム。
【請求項８】
請求項１から７のいずれか１項に記載の閲覧システムであって、
ユーザが当該ブラウザプログラムに登録したブックマークレットを、当該ウェブ文書が表示された後に、当該ユーザが選択すると、当該ブックマークレットのプログラムが、当該閲覧用コンピュータを、前記紹介装置から当該プラグインプログラムをロードして実行するように機能させる
ことを特徴とする閲覧システム。
【請求項９】
請求項１から８のいずれか１項に記載の閲覧システムの閲覧用コンピュータにより実行されるプラグインプログラム。
【請求項１０】
紹介用コンピュータを、請求項１から８のいずれか１項に記載の閲覧システムの紹介装置の各部として機能させる紹介プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ブラウザで閲覧中のウェブ文書に含まれるテキストに対して、ユーザが希望するウェブサービスを適用しやすくし、その結果をユーザが確認しやすくするのに好適な、閲覧システム、当該ブラウザで実行されるプラグインプログラム、ならびに、当該プラグインプログラムと共働する紹介装置を実現するための紹介プログラムに関する。
【背景技術】
【０００２】
従来から、インターネット内に配置された文書を、ユーザの端末装置から閲覧するＷＷＷ（World Wide Web）システムが提供されている。このようなウェブ文書を閲覧するためのアプリケーションはブラウザと呼ばれ、各種のブラウザが各社から提案されている。
【０００３】
ブラウザを経由して利用できるサービスには、外国語で作成されたウェブ文書をユーザの母国語に飜訳するものがある。たとえば、あるシステムでは、ユーザが飜訳を希望するウェブ文書のＵＲＬ（Universal Resource Locater）を、ＣＧＩ（Common Gateway Interface）を用いて飜訳サーバに知らせ、飜訳サーバが当該ウェブ文書を取得した後に飜訳を行い、飜訳後の文書をユーザのブラウザに提供して表示させることとしている。
【０００４】
このように、各種の飜訳、辞書検索、辞典検索、商品検索、地図検索など、ユーザが指定したテキスト等を処理対象データとし、これに対して所定の処理を施して、その結果を、処理結果データとして、当該ユーザに提供するウェブサービスが、各種提供されており、関連技術が以下の文献に開示されている。
【特許文献１】特許第３４２２８９７号公報
【非特許文献１】周安平、田中久美子「Omniget: 第三者情報を提示するブラウザ内ブラウザ」言語処理学会  第１４回年次大会  発表論文集  ｐ.７１７−７２０
【０００５】
ここで、[特許文献１]には、ブラウザが動作するオペレーティング・システムのシステムコールにフックをかけてマウスカーソルの近傍に表示される文字列を取得し、当該文字列の飜訳結果をポップアップ表示する技術が開示されている。
【０００６】
また、[非特許文献１]には、ユーザがあるウェブ文書の閲覧を希望する場合に、ユーザ本人でも、ウェブ文書提供者でもない、第三者の意見を聞きたい場合を考慮し、たとえば上記の飜訳サービスを「第三者の意見」として当該ウェブ文書の飜訳文が提供される場合に、ポップアップ表示により当該翻訳文を提示する技術が開示されている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、ポップアップ表示による手法では、ユーザが注目する位置の近傍にポップアップ表示がなされることから、ポップアップ表示によって元のウェブ文書が隠され、ユーザが元のウェブ文書を閲覧しにくくなってしまう、という問題が生じる。また、「第三者の意見」として複数のウェブサービスが使用できる場合に、ユーザが望む情報を、通信負荷を抑制しつつ、適切に提示する技術が望まれている。
【０００８】
本発明は、このような課題を解決するためになされたもので、ブラウザで閲覧中のウェブ文書に含まれるテキストに対して、ユーザが希望するウェブサービスを適用しやすくし、その結果をユーザが確認しやすくするのに好適な、閲覧システム、当該ブラウザで実行されるプラグインプログラム、ならびに、当該プラグインプログラムと共働する紹介装置を実現するための紹介プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
以上の目的を達成するため、本発明の原理にしたがって、下記の発明を開示する。
【００１０】
本発明の第１の観点に係る閲覧システムは、閲覧用コンピュータと、複数のウェブサービス装置と、紹介装置と、を有し、以下のように構成する。
【００１１】
すなわち、閲覧用コンピュータは、ブラウザプログラムを実行することにより、ＵＲＬ受付部、文書取得部、表示部として機能する。
【００１２】
ここで、ＵＲＬ受付部は、ＵＲＬ（Universal Resource Locator）を指定するＵＲＬ指示入力を受け付ける。
【００１３】
一方、文書取得部は、受け付けられた指示入力に指定されるＵＲＬに配置されるウェブ文書を取得する。
【００１４】
さらに、表示部は、取得されたウェブ文書のＤＯＭ（Document Object Model）ツリーに基づいて、当該ウェブ文書を画面に描画して表示する。
【００１５】
一方、複数のウェブサービス装置のそれぞれは、サービス要求受信部、サービス処理部、サービス応答送信部を備える。
【００１６】
ここで、サービス要求受信部は、処理対象データを指定するウェブサービス要求を受信する。
【００１７】
一方、サービス処理部は、受信されたウェブサービス要求に指定される処理対象データに所定のウェブサービス処理を施す。
【００１８】
さらに、サービス応答送信部は、所定の処理を施して得られた処理結果データを指定するウェブサービス応答を、当該ウェブサービス要求の送信元に送信する。
【００１９】
さらに、紹介装置は、紹介要求受信部、サービス選択部、紹介応答送信部を備える。
【００２０】
ここで、紹介要求受信部は、テキストを指定する紹介要求を受信する。
【００２１】
一方、サービス選択部は、受信された紹介要求に指定されるテキストを処理可能なウェブサービス装置を、複数のウェブサービス装置から選択する。
【００２２】
さらに、紹介応答送信部は、選択されたウェブサービス装置を指定する紹介応答を当該紹介要求の送信元へ送信する。
【００２３】
そして、閲覧用コンピュータは、当該ブラウザプログラムが実行されている環境で、プラグインプログラムを実行することにより、位置受付部、テキスト取得部、紹介要求送信部、紹介応答受信部、要素挿入部、表示制御部として機能する。
【００２４】
ここで、位置受付部は、表示されたウェブ文書の文書内の位置を指定する位置指示入力を受け付ける。
【００２５】
一方、テキスト取得部は、表示されたウェブ文書のＤＯＭツリーのうち、受け付けられた位置指示入力に指定される位置に表示されるテキストを取得する。
【００２６】
さらに、紹介要求送信部は、取得されたテキストを指定する紹介要求を、紹介装置に送信する。
【００２７】
そして、紹介応答受信部は、紹介装置から送信された紹介応答を受信する。
【００２８】
一方、要素挿入部は、受信された紹介応答に指定されるウェブサービス装置に、取得されたテキストを処理対象データとして指定するウェブサービス要求を送信することによって当該ウェブサービス装置から送信されるウェブサービス応答に指定される処理結果データが埋め込まれるべき埋込用要素ノードを、表示されたウェブ文書のＤＯＭツリーのうち、取得されたテキストの近傍に挿入する。
【００２９】
さらに、表示制御部は、表示されたウェブ文書のＤＯＭツリーに要素ノードが挿入され、もしくは、ウェブサービス応答が受信され、当該ウェブサービス応答に指定される処理結果データが埋込用要素ノードに埋め込まれると、表示部に当該変更されたウェブ文書を再描画させて当該画面に表示させる。
【００３０】
また、本発明の閲覧システムは、以下のように構成することができる。
【００３１】
すなわち、当該ブラウザプログラムが実行されている環境で、当該プラグインプログラムを実行する閲覧用コンピュータにおいて、テキスト取得部は、受け付けられた位置指示入力に指定される位置を含む要素ノードのうち、あらかじめ定められた種類の要素ノードであって、最小の要素ノードを、表示されたウェブ文書のＤＯＭツリーから検索し、当該検索された最小の要素ノードの子孫であるテキストノードのテキストが
（１）取得されていなければ、当該テキストを、当該取得された結果のテキストとし、
（２）過去に取得済みであれば、テキストは取得できなかったものとする。
【００３２】
一方、要素挿入部は、インラインフレーム要素、オブジェクト要素、もしくは、スクリプト要素のノードを当該埋込用要素ノードとして用いる。
【００３３】
また、本発明の閲覧システムは、以下のように構成することができる。
【００３４】
すなわち、当該ブラウザプログラムが実行されている環境で、当該プラグインプログラムを実行する閲覧用コンピュータにおいて、当該あらかじめ定められた種類の要素ノードには、アンカー要素ノードが含まれ、取得された最小の要素ノードがアンカー要素ノードである場合、既に、当該アンカー要素ノードの子孫であるテキストノードのテキストが過去に取得済みであれば、ＵＲＬ受付部は、当該アンカー要素ノードに指定されるＵＲＬを、ＵＲＬ指示入力に指定されるものとして受け付ける。
【００３５】
また、本発明の閲覧システムは、以下のように構成することができる。
【００３６】
すなわち、紹介装置において、サービス選択部は、当該複数のウェブサービス装置の受信された紹介要求に指定されるテキストに対する適合度をそれぞれ計算し、当該適合度が、所定の閾値以上であるウェブサービス装置を選択し、当該ウェブサービス装置が複数選択された場合、紹介応答送信部は、当該選択されたウェブサービス装置について計算された適合度の順をさらに紹介応答に指定する。
【００３７】
一方、当該ブラウザプログラムが実行されている環境で、当該プラグインプログラムを実行する閲覧用コンピュータにおいて、要素挿入部は、受信された紹介応答にウェブサービス装置が複数指定されている場合、当該指定された複数のウェブサービス装置のうち、当該適合度が最大のウェブサービス装置に対する当該埋込用要素ノードと、当該適合度が２位以下のウェブサービス装置のそれぞれに対する問合せ用要素ノードと、を、表示されたウェブ文書のＤＯＭツリーのうち、取得されたテキストの近傍に挿入する。
【００３８】
さらに、閲覧用コンピュータは、当該ブラウザプログラムが実行されている環境で、当該プラグインプログラムを実行することにより、ノード置換部としてさらに機能する。
【００３９】
ここで、受け付けられた位置指示入力に指定される位置を含む要素ノードが、当該問合せ用要素ノードのいずれかである場合、ノード置換部は、当該問合せ用要素ノードに対するウェブサービス装置に対する埋込用要素ノードを、当該問合せ用要素ノードの位置に挿入し、当該問合せ用要素ノードを非表示もしくは削除することにより、当該問合せ用要素ノードと当該埋込用要素ノードで置換する。
【００４０】
また、本発明の閲覧システムは、以下のように構成することができる。
【００４１】
すなわち、紹介装置において、サービス選択部は、当該ウェブサービス装置の適合度を、当該テキストが含まれていたウェブ文書の文字コードおよび当該テキストに含まれる文字の出現頻度に基づいて計算する。
【００４２】
また、本発明の閲覧システムにおいて、閲覧用コンピュータは、当該ブラウザプログラムが実行されている環境で、当該プラグインプログラムを実行することにより、報告送信部としてさらに機能する。
【００４３】
ここで、ノード置換部により、当該問合せ用要素ノードが当該埋込用ノードに置換されると、報告送信部は、当該置換された問合せ用要素ノードに対するウェブサービス装置のウェブサービス要求がされた旨を指定する要求報告を、紹介装置に送信する。
【００４４】
一方、紹介装置は、報告受信部、回数積算部としてさらに機能する。
【００４５】
ここで、報告受信部は、ウェブサービス装置のウェブサービス要求がされた旨を指定する要求報告を受信する。
【００４６】
一方、回数積算部は、当該複数のウェブサービス装置のそれぞれが、受信された要求報告に指定されていた回数を積算する。
【００４７】
さらに、サービス選択部は、当該ウェブサービス装置の適合度を、積算された回数に基づいて計算する。
【００４８】
また、本発明の閲覧システムにおいて、報告送信部は、当該ウェブサービス要求がされるごとにその旨を蓄積し、当該紹介要求に当該蓄積された情報に基づいて当該ウェブサービス要求がされた旨を指定することにより、当該要求報告を送信し、報告受信部は、紹介要求受信部が当該紹介要求を受信するごとに、当該紹介要求に指定されているウェブサービス要求を取得することにより、当該要求報告を受信するように構成することができる。
【００４９】
また、本発明の閲覧システムは、ユーザが当該ブラウザプログラムに登録したブックマークレットを、当該ウェブ文書が表示された後に、当該ユーザが選択すると、当該ブックマークレットのプログラムが、当該閲覧用コンピュータを、紹介装置から当該プラグインプログラムをロードして実行するように機能させるように構成することができる。
【００５０】
本発明のその他の観点に係るプログラムは、上記閲覧システムにおいて、ブラウザプログラムが実行されている環境で閲覧用コンピュータにより実行されるべきプラグインプログラムである。
【００５１】
本発明のその他の観点に係るプログラムは、紹介用コンピュータを、上記の閲覧システムの紹介装置の各部として機能させる紹介プログラムである。
【００５２】
本発明のプログラムは、コンパクトディスク、フレキシブルディスク、ハードディスク、光磁気ディスク、ディジタルビデオディスク、磁気テープ、半導体メモリ等のコンピュータ読取可能な情報記録媒体に記録することができる。
【００５３】
上記プログラムは、当該プログラムが実行されるコンピュータとは独立して、コンピュータ通信網を介して配布・販売することができる。また、上記情報記録媒体は、当該コンピュータとは独立して配布・販売することができる。
【発明の効果】
【００５４】
本発明によれば、ブラウザで閲覧中のウェブ文書に含まれるテキストに対して、ユーザが希望するウェブサービスを適用しやすくし、その結果をユーザが確認しやすくするのに好適な、閲覧システム、当該ブラウザで実行されるプラグインプログラム、ならびに、当該プラグインプログラムと共働する紹介装置を実現するための紹介プログラムを提供することができる。
【発明を実施するための最良の形態】
【００５５】
以下に本発明の実施形態を説明する。以下では、理解を容易にするため、一般的な情報処理装置に本発明が適用される実施形態を説明するが、各種のゲーム装置、ＰＤＡ、携帯電話などの情報処理装置においても同様に本発明を適用することができる。すなわち、以下に説明する実施形態は説明のためのものであり、本願発明の範囲を制限するものではない。したがって、当業者であればこれらの各要素または全要素をこれと均等なものに置換した実施形態を採用することが可能であるが、これらの実施形態も本発明の範囲に含まれる。
【実施例１】
【００５６】
図１は、本発明の閲覧システムの実施形態の１つに係るウェブサービス装置、紹介装置、閲覧用コンピュータが実現される典型的な情報処理装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００５７】
情報処理装置１０１は、ＣＰＵ（Central Processing Unit；中央処理ユニット）１０２によって制御される。情報処理装置１０１に電源を投入すると、ＣＰＵ  １０２は、ＲＯＭ  １０３に記憶されたＩＰＬ（Initial Program Loader；初期プログラムローダ）を実行する。
【００５８】
ＩＰＬは、ハードディスク１０４、ＦＤドライブ１１０に装着されたＦＤ、ＣＤ−ＲＯＭドライブ（ＣＤＤ）１１１に装着されたＣＤ−ＲＯＭなどの記録媒体に記憶されたＯＳ（Operating System；オペレーティング・システム）プログラムを読み出して実行するプログラムである。
【００５９】
ＯＳを起動した後、ＣＰＵ  １０２は、キーボード１０５やマウス１０６などにより入力されたユーザの指示にしたがって、あるいは、ハードディスクなどにあらかじめ記述された設定ファイルの内容にしたがって、ハードディスクなどに記憶されたアプリケーションプログラムを実行する。
【００６０】
ここで、本実施形態におけるウェブサービス装置や紹介装置を構成するサーバ用コンピュータでは、サーバ用プログラムがアプリケーションプログラムに相当し、閲覧装置用コンピュータでは、ブラウザプログラムおよび当該ブラウザプログラムの機能を付加するプラグインプログラムがアプリケーションプログラムに相当する。
【００６１】
キーボード１０５や、マウス１０６などを操作することによって、各種の情報が入力される。ハードディスク１０４、ＦＤドライブ１１０に装着されたＦＤ、ＣＤ−ＲＯＭドライブ１１１に装着されたＣＤ−ＲＯＭなどの記憶媒体に、各種の情報が記録されることになる。
【００６２】
ＣＰＵ  １０２は、プログラムの実行の際に、ＲＡＭ  １０７を一時的な作業用記憶領域として用いる。このほか、一時的な作業用記憶領域として、ＣＰＵ  １０２内に設けられたレジスタやキャッシュ（図示せず）が使われる。
【００６３】
プログラムの実行に伴ない、途中経過を見せるため、ＣＰＵ  １０２は、液晶ディスプレイやＣＲＴ（Cathode Ray Tube）などの表示装置１０８に当該情報を表示することができる。マウス１０６による指示操作では、マウス１０６を移動することにより、画面に表示されたカーソルが移動し、マウス１０６をクリックすることにより、カーソルが指すメニュー項目を選択することができる。
【００６４】
情報処理装置１０１は、ＮＩＣ（Network Interface Card）やモデムなどのインターフェース１０９を介してインターネットなどのコンピュータ通信網と通信を行うことができる。インターフェース１０９を介して受信した字画入力を処理の対象としたり、出力された文字をインターフェース１０９を介して送信したり、インターフェース１０９を介して受信したプログラムを実行したり、などができる。
【００６５】
閲覧用コンピュータにて、一般的なブラウザプログラムが動作している状況下では、画面にウェブ文書が表示されていると、他のウェブ文書に対するアンカーが画面に表示される。
【００６６】
ブラウザプログラムの既定の動作、すなわち、プラグインプログラムを導入していないときの動作では、ユーザがマウス１０６を利用してアンカーをシングルクリックすると、インターネット内でアンカーのＵＲＬに配置されたウェブ文書が取得され、取得されたウェブ文書のＤＯＭツリーがＲＡＭ  １０７内に構築されて、当該ＤＯＭツリーにしたがって、ウェブ文書の内容が画面に表示される。
【００６７】
ここで、他のウェブ文書に対するアンカーは、アンカー要素、すなわち、href属性に当該ウェブ文書のＵＲＬが指定されるa要素によって表現され、画面には、a要素の開始タグと終了タグに挟まれたテキストが表示され、このテキストをマウスでクリックすることにより、リンクされたウェブ文書が画面に表示される。
【００６８】
以下、この処理を繰り返すことにより、ユーザは、ＵＲＬを指定するアンカーで連結されたウェブ文書を次々と閲覧することができる。
【００６９】
なお、携帯電話などの携帯端末を閲覧用コンピュータとして使用する場合には、表示されているウェブ文書の上下のスクロールを矢印キーで行うと、アンカーが順次強調表示されて現在注目している旨がユーザに提示され、ユーザが、所望のアンカーが強調表示されているときに、決定キーを押すと、そのアンカーに対するウェブ文書の取得が開始される。
【００７０】
以下では、理解を容易にするため、マウス１０６を利用した操作体系を中心に説明するが、本実施形態は、必ずしもマウス１０６を必須とするものではなく、ウェブ文書を閲覧するためのブラウザ一般に適用可能である。
【００７１】
図２は、ブラウザプログラムを実行している閲覧用コンピュータの概要構成を示す模式図である。以下、本図を参照して説明する。
【００７２】
すなわち、閲覧用コンピュータ２０１は、ブラウザプログラムを実行することにより、ＵＲＬ受付部２０２、文書取得部２０３、表示部２０４として機能する。
【００７３】
ここで、ＵＲＬ受付部２０２は、ＵＲＬ（Universal Resource Locator）を指定するＵＲＬ指示入力を受け付ける。たとえば、ＵＲＬ指示入力は、マウス１０６を用いたアンカーのクリックによって生じることになる。
【００７４】
一方、文書取得部２０３は、受け付けられた指示入力に指定されるＵＲＬに配置されるウェブ文書を取得する。すなわち、ＣＰＵ  １０１の制御の元、インターフェース１０９を介してウェブ文書が取得される。
【００７５】
さらに、表示部２０４は、取得されたウェブ文書のＤＯＭ（Document Object Model）ツリーに基づいて、当該ウェブ文書を画面に描画して表示する。取得されたウェブ文書のＤＯＭツリーは、ＲＡＭ  １０７内に展開され、ＤＯＭツリーにしたがって、表示装置１０８にウェブ文書の内容が表示される。
【００７６】
このようなブラウザプログラムが動作する環境においては、JavaScript、JScript、ECMAScriptなどのプログラミング言語で記述されたスクリプトを実行することができる。本実施形態におけるプラグインプログラムは、このようなスクリプトにより実現され、ウェブ文書の表示の際に実行される。
【００７７】
プラグインプログラムを指定する手法には、以下のようなものがある。すなわち、ウェブ文書内に直接埋め込む手法、ウェブ文書内にプラグインプログラムが配置されているＵＲＬを埋め込む手法などである。
【００７８】
このほか、ウェブ文書がすでに画面に表示されている状態で、ブックマークレットを選択することによって、当該表示済みウェブ文書に対して、プラグインプログラムを実行することもできる。
【００７９】
ここで、ブックマークレットとは、JavaScript等で記述されたプログラム断片をユーザの「お気に入り」などのリンク集に登録したものをいう。当該プログラム断片には、プラグインプログラムを所定のＵＲＬからロードして、現在表示されているウェブ文書に対して処理を行う旨が記述されているのである。
【００８０】
ブックマークレットは、ブラウザに用意されているメニューを選択したり、ツールバーのボタンをクリックしたりすることで、実行が可能である。
【００８１】
また、ブックマークレットに相当する機能は、あらかじめ、ブラウザプログラムに組み込むことも可能である。この場合、プラグインプログラムは、ブラウザプログラムによって実行されるライブラリ関数に相当するものとなり、プラグインプログラムが動的リンク可能なライブラリである場合には、両者を分離することができるが、静的にリンクされたライブラリである場合には、プラグインプログラムは、ブラウザプログラムと一体に構成されることになる。この場合に、ウェブ文書が取得されるごとに、所定のブックマークレットが実行する機能と同じ処理を自動的に実行することとしても良い。
【００８２】
さて、以下では、理解を容易にするため、まず、ウェブサービス装置および紹介装置について説明し、ついで、ブラウザプログラムが動作する環境でプラグインプログラムが動作する閲覧用コンピュータについて説明することとする。
【００８３】
（ウェブサービス装置）
図３は、本実施形態の閲覧システムが有するウェブサービス装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００８４】
本実施形態のウェブサービス装置３０１は、サービス要求受信部３０２、サービス処理部３０３、サービス応答送信部３０４を備える。
【００８５】
ここで、サービス要求受信部３０２は、処理対象データを指定するウェブサービス要求を受信する。
【００８６】
ウェブサービス要求は、ＨＴＴＰ（Hyper Text Transfer Protocol）プロトコルに基づくＧＥＴメソッドやＰＯＳＴメソッド、あるいは、ＸＭＬ（eXtensible Markup Language）／ＨＴＴＰをベースとしたＳＯＡＰ（Simple Object Access Protocol）プロトコルなどを用いるのが、典型的である。
【００８７】
たとえば、処理対象データとしてテキスト「text」を指定するウェブサービス要求は、GETメソッドによる場合には、以下の例のようなＵＲＬに対するウェブ文書の取得要求として実現される。
http://xxx.yyy.com/query.cgi?q=text
【００８８】
ここで、「xxx.yyy.com」は、当該ウェブサービス装置に割り当てられるＩＰ（Internet Protocol）アドレスに対応付けられるホスト名であり、「query.cgi」は、当該ウェブサービスを実行するＣＧＩスクリプト名である。また、「q=text」は、パラメータ名「q」のパラメータの値として「text」を渡す、の意味である。
【００８９】
このようにして、ウェブサービス要求が指定されると、サービス処理部３０３は、受信されたウェブサービス要求に指定される処理対象データに所定のウェブサービス処理を施す。
【００９０】
上記の例において、検索エンジンをウェブサービスとする場合には、「text」を含む文書を検索して、当該文書へのアンカーを含むウェブ文書が処理結果データとして生成される。
【００９１】
英日飜訳をウェブサービスとする場合には、「text」に対する飜訳結果「１.文書、文字列。２.本文、原文。３.教科書。」のような、飜訳結果を含むウェブ文書が処理結果データとして生成される。
【００９２】
一方、日英飜訳をウェブサービスとする場合には、「text」に対する飜訳はできない。したがって、飜訳できない旨を表すウェブ文書が処理結果データとして生成されることになるが、後述する紹介装置により、このようなウェブサービス要求をできるだけ生じないようにすることも可能である。
【００９３】
また、地図検索による場合にも、「text」に合致する地名は存在しないが、略称や発音や綴りが類似する「テキサス州（Tex.）」「テト川（Thet river）」「テキストサルトTexto Salto」などの地名が候補としてあげるとともに、その中で最も尤度が高いテキサス州の地図の画像を含むようなウェブ文書が処理結果データとして生成される。
【００９４】
商品検索を行う場合には、「text」に関連する商品（たとえば、文字列textを題名に含む書籍やＤＶＤ等。）を紹介するウェブ文書が処理結果データとして生成される。
【００９５】
サービス応答送信部３０４は、このようにして得られた所定の処理を施して得られた処理結果データを指定するウェブサービス応答を、当該ウェブサービス要求の送信元に送信する。
【００９６】
したがって、任意のウェブサーバが、URLを指定するウェブサービス要求を受け付けて、当該ウェブ文書をウェブサービス応答として返すウェブサービス装置と考えることも可能であり、本実施形態においては、ウェブサービス装置は、１台としても良いし、複数台とすることも可能である。
【００９７】
ウェブサービス装置が複数台ある場合には、各ウェブサービス装置は、異なるウェブサービス会社によって運営されるのが一般的である。本実施形態は、このような、異なる運営元による異なるウェブサービスをユーザが受ける際に、統一的なインターフェースで、ユーザに理解しやすく提示しようとするものである。
【００９８】
（紹介装置）
図４は、本実施形態に係る紹介装置の概要構成を示す模式図である。以下、本図を参照して説明する。
【００９９】
上記のように、紹介装置は、ウェブサービスを受けるのに先立って、処理対象データがウェブサービスを受けるのに適合しているか否かを判定し、当該処理対象データが受けられるウェブサービスをあらかじめ紹介するものである。
【０１００】
本実施形態に係る紹介装置４０１は、紹介要求受信部４０２、サービス選択部４０３、紹介応答送信部４０４を備える。なお、後述する実施形態において説明するように、報告受信部４０５、回数積算部４０６を備えることとしても良い。
【０１０１】
ここで、紹介要求受信部４０２は、テキストを指定する紹介要求を受信する。紹介要求に指定されるテキストは、ウェブサービス要求に指定されるテキストと同じもの（上記の例では、「text」に相当する。）とするのが一般的である。
【０１０２】
一方、サービス選択部４０３は、受信された紹介要求に指定されるテキストを処理可能なウェブサービス装置３０１を、複数のウェブサービス装置３０１から選択する。
【０１０３】
各社からさまざまなウェブサービスが提供されている現在、紹介装置４０１において、各種の既存のウェブサービスを集中管理し、各ウェブサービスが、当該テキストに対して適用可能か否かを判定して、適用可能なものを選択する。
【０１０４】
上記の例では、紹介要求に指定されるテキストは、「text」であるから、検索エンジン、英日飜訳、商品検索、地図検索が適用可能であり、これらのウェブサービスを提供するウェブサービス装置が、選択の対象となる。一方、日英飜訳は、適用できないから、選択の対象とならない。
【０１０５】
テキストに対してウェブサービスが適用可能か否かは、以下のような各種の基準によって定めることができる。
（１）紹介要求を送信した閲覧用コンピュータを操作するユーザがあらかじめ設定したウェブサービスのみを選択する。たとえば、英日飜訳のみを利用したい場合に、ユーザがその旨を設定しておくと、紹介装置４０１のサービス選択部は、英日飜訳を提供するウェブサービス装置３０１を一つ選択することになる。
（２）テキストを表現する文字の文字コードや出現頻度を元に判断する。紹介要求に指定されるテキストは、後述するように、現在ユーザが閲覧中のウェブ文書から抽出されたものであるのが一般的である。したがって、当該閲覧中のウェブ文書を記述する文字コード（たとえば、ＡＳＣＩＩコードか、Ｓｈｉｆｔ_ＪＩＳコードか、等。）に基づけば、英日飜訳が適用可能か、日英飜訳が適用可能か、等を求めることができる。
【０１０６】
また、ウェブ文書から抽出したテキストをＵＮＩＣＯＤＥなどの所定の文字コードに変換した上で、紹介要求に指定する場合には、当該テキストに含まれる文字の出現頻度に基づいて、英文字のみであれば英日飜訳が可能、ひらがな、かたかな、漢字が含まれていれば日英飜訳が可能、等のような判断が可能である。
（３）ユーザの過去のサービス利用履歴に基づいてウェブサービスの適合度を定める。過去に頻繁に利用したウェブサービスほど、選択の対象となる可能性を高くするものである。
（４）上記（１）〜（３）等の基準を適宜組み合わせる。たとえば、上記（１）〜（３）のそれぞれの結果に所定の係数を乗じて積算してスコアを得て、そのスコアが閾値より高いか否かに基づいて判断を行う手法である。詳細については後述する。
【０１０７】
以下では、理解を容易にするため、特記しない限りウェブサービス装置３０１は一つだけ選択されるものとして説明する。
【０１０８】
さらに、紹介応答送信部４０４は、選択されたウェブサービス装置３０１を指定する紹介応答を当該紹介要求の送信元へ送信する。
【０１０９】
紹介応答には、選択されたウェブサービス装置３０１を指定する手法として、問合せ用のＵＲＬやＸＭＬのテンプレートなどを、紹介応答に指定することとするのが典型的である。たとえば、上記のＵＲＬにより特定されるウェブサービスが選択された場合には、紹介応答には、以下の文字列
http://xxx.yyy.com/query.cgi?q=text
あるいは、以下の文字列
http://xxx.yyy.com/query.cgi?q=
が指定される。
【０１１０】
前者の場合には、閲覧用コンピュータでは、当該文字列をそのまま利用すれば、ウェブサービスを受けることができ、「text」の長さが短い場合や、紹介要求に指定されるテキストの一部のみを抽出してウェブサービスを受ける場合等に適している。また、ウェブサービスが処理可能な文字コードが限定されている場合には、紹介装置４０１にて、指定されたテキストを当該ウェブサービス用の文字コードに変換して、文字列内に指定すると、閲覧用コンピュータ側で各種の文字コード変換が不要になる利点がある。
【０１１１】
後者の場合には、閲覧用コンピュータ側で、紹介応答に指定される文字列に、抽出されたテキストを連結してから、ウェブサービスを受けることになり、テキストの長さが長い場合等に適している。
【０１１２】
後者のバリエーションとしては、紹介応答に指定される文字列中において、抽出されたテキストを埋め込む場所を、特定の予約文字列で表記しておき、閲覧用コンピュータ側では、紹介応答に指定される文字列の中の予約文字列を抽出されたテキストで置換してからウェブサービスを受ける手法がありうる。この手法は、ＸＭＬ形式など、入れ子になった構造によって通信を行うプロトコルに適している。
【０１１３】
紹介要求／紹介応答の送受には、ウェブサービス要求／ウェブサービス応答の送受と同様に、HTTPプロトコルのＧＥＴ／ＰＯＳＴメソッドや、ＳＯＡＰプロトコル等を適用することができる。
【０１１４】
紹介装置４０１は、複数のウェブサービスから１つを選択することとしても良いし、いずれか複数のウェブサービスを選択することとしても良い。後者の場合には、どのウェブサービスがユーザの望むものであるか、を推測した適合度（上記の「スコア」に相当する値。）が、各サービスごとに得られる。
【０１１５】
したがって、各ウェブサービスの適合度も紹介応答に指定して、閲覧用コンピュータで利用させることとしても良い。このような実施形態については、後述する。
【０１１６】
（閲覧用コンピュータ）
図５は、当該ブラウザプログラムを実行している環境で、プラグインプログラムを実行する閲覧用コンピュータの概要構成を示す模式図である。以下、本図を参照して説明する。
【０１１７】
上記のように、本実施形態では、表示部２０４にウェブ文書が表示されている状況でユーザがブックマークレットを選択すると、紹介装置４０１からプラグインプログラムがダウンロードされて、現在表示中のウェブ文書を処理対象として、プラグインプログラムが実行される。
【０１１８】
本図に示す閲覧用コンピュータ２０１は、図２に示す要素に加え、位置受付部５０１、テキスト取得部５０２、紹介要求送信部５０３、紹介応答受信部５０４、要素挿入部５０５、表示制御部５０６として機能する。
【０１１９】
ここで、位置受付部５０１は、表示されたウェブ文書の文書内の位置を指定する位置指示入力を受け付ける。
【０１２０】
すなわち、位置受付部５０１は、マウス１０６が表示装置１０７の画面に表示されているウェブ文書のどこをクリックしたかを取得するものであり、ＵＲＬ受付部２０２の処理をフックするものと考えることができる。
【０１２１】
一方、テキスト取得部５０２は、表示されたウェブ文書のＤＯＭツリーのうち、受け付けられた位置指示入力に指定される位置に表示されるテキストを取得する。
【０１２２】
テキスト取得部５０２は、クリックされた要素ノードに囲まれる（当該要素ノードの子ノードの）テキストを取得するのが典型的である。
【０１２３】
さらに、紹介要求送信部５０３は、取得されたテキストを指定する紹介要求を、紹介装置４０１に送信し、紹介応答受信部５０４は、紹介装置４０１から送信された紹介応答を受信する。
【０１２４】
この処理には、JavaScriptのXMLHttpRequest機能を用いるのが典型的である。
【０１２５】
一方、要素挿入部５０５は、受信された紹介応答に指定されるウェブサービス装置３０１に、取得されたテキストを処理対象データとして指定するウェブサービス要求を送信することによって当該ウェブサービス装置３０１から送信されるウェブサービス応答に指定される処理結果データが埋め込まれるべき埋込用要素ノードを、表示されたウェブ文書のＤＯＭツリーのうち、取得されたテキストの近傍に挿入する。
【０１２６】
閲覧用コンピュータ２０１にロードされたプラグインプログラムが実行されると、これら各部の処理を実現するため、以下の処理が実行される。
【０１２７】
（Ａ）まず、ウェブ文書のＤＯＭツリーを構成する要素ノードのうち、所定のタグに相当する要素ノードを順に抽出する。JavaScriptにおいては、document.getElementsByTagName()命令に対して、タグ名を指定すると、要素ノードの配列が得られるため、この配列に順にアクセスすることで、「所定のタグに対応する要素ノード」のオブジェクトが得られる。
【０１２８】
所定のタグとしては、段落を表すp、他のウェブ文書のＵＲＬへのアンカーを表すaなどのほか、div，span，em，strike，b，s，u，i，h1，h2，h3，h4，h5，h6，td，li，dd，dtなど、ある程度まとまったテキストを囲むタグを採用するのが典型的である。いずれのタグを採用するかは、適宜変更が可能である。
【０１２９】
（Ｂ）そして、当該抽出された各要素ノードのオブジェクトのonclick属性に、所定のJavaScriptの手続を、イベントハンドラとして設定する。これにより、位置受付部５０１がウェブ文書をクリックした位置が取得できるようになる。具体的なイベントハンドラ手続の内容の一例は、以下の通りである。以下、イベントハンドラ手続が.onclick属性に設定される要素ノードを「注目要素ノード」と呼ぶ。
【０１３０】
（１）まず、当該注目要素ノードの子孫であるテキストノードを連結して、当該要素ノードに囲まれるテキストを取得する。たとえば、当該注目要素ノードの.childNodes属性により列挙されるノードの.nodeValue属性を連結することで、当該テキストが得られる。そして、必要があれば、当該テキストを、所定の文字コードに変換する。典型的には、変換先の文字コードにはＵＮＩＣＯＤＥ（ＵＴＦ−８）を用いる。この処理は、テキスト取得部５０２が実行する処理に相当する。
【０１３１】
（２）さらに、当該変換済みテキストのテキストと、必要があれば、元のウェブ文書が作成されている文字コードの種類と、を指定する紹介要求パケットを生成して、所定の紹介装置４０１に送信する。これには、XMLHttpRequestオブジェクトを利用することで実現が可能であり、紹介要求送信部５０３が実行する処理に相当する。
【０１３２】
（３）そして、送信した紹介要求パケットに対して紹介応答を受信し、当該紹介応答に指定されるウェブサービス装置３０１のＵＲＬ等を取得する。すなわち、上記のXMLHttpRequestオブジェクトに含まれる.responseText属性を吟味することになる。これは、紹介応答受信部５０４が実行する処理に相当する。
【０１３３】
（４）紹介応答にウェブサービスを受けるためのＵＲＬが指定されている場合には、当該テキストに対するウェブサービスのＵＲＬを参照先として指定するiframeタグからなるインラインフレーム要素ノードを、埋込用要素ノードとして生成する。さらに、この埋込用要素ノードを、当該注目要素ノードの近傍に追加する。近傍として典型的なのは、子の最後、もしくは、当該注目要素ノードの次の要素ノードであるが、適宜br要素などを挿入することとして、見やすくなるように体裁を整えても良い。これらの処理は、適宜.parentNode属性を参照したり、.appendChild()メソッドを利用したりすることで実現でき、要素挿入部５０５が実行する処理に相当する。
【０１３４】
（５）最後に、当該要素ノードおよびその子孫の.onclick属性から、当該イベントハンドラ手続を削除する。これ以降は、当該要素ノードをクリックしたとしても、紹介装置４０１への問合せ等は生じなくなり、ブラウザプログラムのデフォルトのイベントハンドラが実行されることになる。たとえば、a要素が抽出対象である場合は、当該a要素ノードのテキストを初めてクリックした場合には、紹介装置４０１への問い合わせやインラインフレーム要素の挿入などが実行されるが、２回目のクリックでは、a要素の参照先のウェブ文書を閲覧したい旨の指定入力として処理されることになる。
【０１３５】
上記の（Ａ）（Ｂ）の処理は、処理対象としたいウェブ文書がブラウザプログラムによって表示されている段階で、ブックマークレットを選択することで実行されるが、上記イベントハンドラ（１）〜（５）の処理そのものは、ユーザが要素ノードをクリックするまで実行されない。
【０１３６】
したがって、ブラウザプログラムは、画面の再描画を必要としない。このため、ブックマークレットを選択してプラグインプログラムを実行したとしても、その際のユーザの待ち時間は極めて短かくてすむ。
【０１３７】
ユーザがある要素ノードをクリックして初めて、表示中のウェブ文書のＤＯＭツリーに、新たな要素ノード（インラインフレーム要素）の挿入が行われ、ウェブサービス装置３０１との通信や、画面の再描画が実行される。
【０１３８】
すなわち、表示制御部５０６は、表示されたウェブ文書のＤＯＭツリーに要素ノードが挿入され、もしくは、ウェブサービス応答が受信され、当該ウェブサービス応答に指定される処理結果データが埋込用要素ノードに埋め込まれると、表示部に当該変更されたウェブ文書を再描画させて当該画面に表示させる。
【０１３９】
なお、表示制御部５０６の機能は、ブラウザプログラムが提供する再描画の機能をそのまま利用するのが典型的であるが、JavaScriptの機能を用いれば、再描画の際に種々の処理を実行させることも可能である。
【０１４０】
上記（Ｂ）および（５）のようにイベントハンドラを設定することにより、テキスト取得部５０２は、受け付けられた位置指示入力に指定される位置を含む要素ノードのうち、あらかじめ定められた種類の要素ノードであって、最小の要素ノードを、表示されたウェブ文書のＤＯＭツリーから検索し、その.onclick属性に指定されたイベントを実行する。
【０１４１】
したがって、当該検索された最小の要素ノードの子孫であるテキストノードのテキストが取得されていなければ、当該テキストを、当該取得された結果のテキストとし、紹介装置４０１への問合せやインラインフレームの挿入が実行される。
【０１４２】
一方、過去に取得済みであれば、イベントハンドラの設定は解除されているので、テキストは取得できなかったことになり、紹介装置４０１への問合せやインラインフレームの挿入は実行されないことになる。
【０１４３】
上記の説明では、インラインフレーム要素を挿入することとしていたが、上記（１）〜（５）に相当するようなイベントハンドラ処理を記述したオブジェクト要素、もしくは、スクリプト要素のノードを当該埋込用要素ノードとして用いることも可能である。オブジェクト要素やスクリプト要素を採用した場合には、ブラウザプログラムに頼らずに、ウェブサービスの返事待ちである旨を表示する処理などを、さらに追加することとしても良い。
【０１４４】
以下では、これらの要素の代表例として、iframeを用いたインラインフレーム要素を採用する例を説明するものとする。
【０１４５】
さらに、当該注目要素ノードの.onfocus属性や.onblur属性に、当該要素ノードを表示する体裁（フォント、表示色、背景色等）を変更するイベントハンドラを適宜設定することとすれば、表示されているウェブ文書内のテキストについてウェブサービスを受けることができるか否かをユーザが容易に知ることができる。
【０１４６】
図６は、本実施形態の閲覧システムにおける通信の様子を示す説明図である。以下、本図を参照して説明する。
【０１４７】
閲覧用コンピュータ２０１においてブラウザプログラムが実行され、ユーザがＵＲＬを指定すると、ウェブサーバ５５１へのウェブ文書要求が生じ（６０１）、当該ＵＲＬを提供するウェブサーバ５５１から、ウェブ文書が入手され（６０２）、当該入手されたウェブ文書が画面に表示される。
【０１４８】
図７は、本実施形態の閲覧用コンピュータのこの時点における画面の表示例を示す説明図である。
【０１４９】
本図に示すように、ブラウザ７０１のアドレスバー７０２には、ウェブサーバ５５１のＵＲＬが入力・表示されており、文書表示領域７０３には、得られたウェブ文書が表示されている。このほか、ブラウザ７０１のツールバーには、ブックマークレットを実行するボタン７０４も表示されている。
【０１５０】
ユーザがマウスカーソル７０５を移動させてボタン７０４を選択し、ブックマークレットを実行すると、閲覧用コンピュータ２０１は、紹介装置４０１へプラグインプログラムを要求し（６０３）、ダウンロードして（６０４）、表示中のウェブ文書に対して、プラグインプログラムを実行する。
【０１５１】
なお、プラグインプログラムが、閲覧用コンピュータ２０１に既にキャッシュ済みの場合には、ダウンロード要求（６０３）およびその応答（６０４）を実行せず、キャッシュされたプラグインプログラムをそのまま実行することとしても良い。
【０１５２】
プラグインプログラムが実行されると、所定の要素ノードの.onclick，.onfocus，.onblur属性が変更される。
【０１５３】
図８は、本実施形態の閲覧用コンピュータのこの時点における画面の表示例を示す説明図である。以下、本図を参照して説明する。
【０１５４】
本図に示す表示例を図７に示す表示例と比較すると、マウスカーソル７０５の位置が同じであるにもかかわらず、本図の例では、マウスカーソル７０５の近傍のテキスト７０６「This is a pen.」の背景色が変化して、強調表示されていることがわかる。これは、.onfocus属性や.onblur属性がブックマークレットの実行によって書き換えられたことによる。
【０１５５】
ここでユーザが、マウス１０６をクリックすると強調表示されているテキスト７０６を囲む要素ノードについて、.onclickイベントハンドラが起動され、上記（１）〜（５）の処理が実行される。
【０１５６】
すなわち、閲覧用コンピュータ２０１から紹介装置４０１へ紹介要求が送信され（６０５）、紹介装置４０１から閲覧用コンピュータ２０１へ紹介応答が送信される（６０６）。
【０１５７】
すると、閲覧用コンピュータ２０１では、紹介応答に指定されたＵＲＬに基づいて、埋込用要素ノードが生成され、クリックされたテキストの近傍に挿入される。
【０１５８】
この挿入によって、ブラウザプログラムは、再描画を開始するが、埋込用要素ノードの描画の際に、ウェブサービス装置３０１へ、「This is a pen.」に相当するテキストを指定するウェブサービス要求が送信される（６０７）。
【０１５９】
図９は、本実施形態の閲覧用コンピュータのこの時点における画面の表示例を示す説明図である。
【０１６０】
本図に示すように、テキスト７０６の近傍に、インラインフレーム７０７が表示されており、その中には、ブラウザプログラムの機能によってウェブサービス要求に対する返答待ちである旨が表示されている（ブラウザプログラムの種類によっては、何も表示されない場合もある。以下同様。）。
【０１６１】
ウェブサービス装置３０１から送信されたウェブサービス応答（６０８）を閲覧用コンピュータ２０１が受信すると、インラインフレーム７０７の中に、ウェブサービス応答の内容が表示される。
【０１６２】
なお、あるウェブ文書を表示中にブックマークレットを起動すると、当該ブックマークレットによりロードされたスクリプトプログラムに対応付けられるドメインは、紹介装置４０１のドメインではなく、当該表示中のウェブ文書を提供するウェブサーバ５５１のドメインとなる。
【０１６３】
すると、ブラウザの設定によっては、XMLHttpRequestを直接利用してスクリプトプログラムから紹介装置４０１と通信しようとしても、クロスドメイン制限によって、通信が不可能となる場合がある。
【０１６４】
このような場合には、XMLHttpRequestからAdobe Flash（商標）や「Macromedia Flash」（商標）によるファイルを経由する技術を利用することで、スクリプトプログラムと紹介装置４０１との通信を可能とすることができる。
【０１６５】
図１０は、本実施形態の閲覧用コンピュータのこの時点における画面の表示例を示す説明図である。
【０１６６】
本図に示すように、インラインフレーム７０７の中には、テキスト７０６「This is a pen.」の英日飜訳の結果である「これはペンです。」が表示されている。
【０１６７】
このように、本実施形態の技術においては、ユーザが閲覧中のウェブ文書の所望の箇所について、ユーザが指示入力を行うだけで、適切なウェブサービスを受けることができ、しかもその結果が、当該箇所の近傍に挿入されて表示される。
【０１６８】
このため、注目箇所を隠してしまうおそれがあるポップアップ表示とは異なり、注目箇所とウェブサービスの結果とが、ブラウザの表示画面内で並置されて表示される。したがって、ユーザは、２つの内容を簡単に対比して理解することができる。
【０１６９】
また、本技術によれば、ユーザの希望に応じてウェブサービスへの問い合わせを行うため、不必要なネットワーク通信は生じることがなく、軽快な動作が実現できる。
【実施例２】
【０１７０】
上記の例では、紹介装置４０１によって紹介されるウェブサービスは１種類に限られていた。以下では、複数のウェブサービスが紹介される場合について考えるものとする。
【０１７１】
閲覧用コンピュータ２０１から送信された紹介要求に指定されるテキストについて、適用可能なウェブサービスが複数ある場合には、紹介装置４０１は、それらのウェブサービスの適合度を何らかの手法により計算して順位をつける。適合度については、上記のような手法のほか、ユーザが順位をあらかじめ決めて紹介装置４０１に登録しておく手法、後述する実施例における手法など、種々の技術を採用することができる。
【０１７２】
そのようにして、複数のウェブサービスが選択された場合には、紹介応答には、適合度が１位のウェブサービスと、２位以下のウェブサービスと、が指定されることになる。
【０１７３】
すると、閲覧用コンピュータ２０１では、埋込用要素ノードとして、以下の要素ノードの集合体を採用する。
（１）適合度が１位のウェブサービスに対しては、当該テキストに対するウェブサービスのＵＲＬを参照先として指定するiframeタグからなるインラインフレーム要素ノード。
（２）適合度が２位以下のウェブサービスのそれぞれに対しては、.onclick属性にサービス要求イベントハンドラを指定し、ノード値であるテキストに当該ウェブサービスの名称等を採用したdiv要素やspan要素などによるサービス要求要素ノード。
【０１７４】
上記の例のテキスト７０６「This is a pen.」に対して、適用可能なウェブサービスが「英日飜訳」「英仏飜訳」「商品penの検索」「単語penのウェブ検索」の４種類あり、その適合度がこの順序であったとする。
【０１７５】
図１１は、本実施形態における埋込用要素ノードをＤＯＭツリーに挿入した直後における閲覧用コンピュータの画面の表示例を示す説明図である。以下、本図を参照して説明する。
【０１７６】
テキスト７０６の近傍に表示されるインラインフレーム７０７の中には、ブラウザプログラムによって、適合度１位の「英日飜訳」のウェブサービス要求に対する返答待ちである旨が表示されている。
【０１７７】
このほか、テキスト７０６の近傍には、クリック可能なテキスト７０８「英仏飜訳」テキスト７０９「商品penの検索」テキスト７１０「単語penのウェブ検索」が表示されている。
【０１７８】
図１２は、埋込用要素ノードに含まれるインラインフレームの問い合わせが終了した後の画面の表示例を示す説明図である。以下、本図を参照して説明する。
【０１７９】
テキスト７０６の近傍に表示されるインラインフレーム７０７の中に、適合度１位の英日飜訳の結果が表示されている。
【０１８０】
さて、テキスト７０８「英仏飜訳」テキスト７０９「商品penの検索」テキスト７１０「単語penのウェブ検索」等をクリックした場合に起動されるサービス要求イベントハンドラは、起動されると、
（１）当該ウェブサービスのＵＲＬを参照先として指定するiframeタグからなるインラインフレーム要素ノードを生成し、
（２）当該起動されたサービス要求イベントハンドラが.onclick属性に指定された要素ノードを非表示もしくは削除し、当該インラインフレーム要素ノードをそのかわりに表示するように、ＤＯＭツリーに挿入して、要素ノードの置換を行う、
という処理を行う。この処理は、ノード置換部（図示せず。）が、要素挿入部５０５や表示制御部５０６を制御して行う処理に相当する。
【０１８１】
図１３は、テキスト７０８「英仏飜訳」をクリックした直後の画面の表示例を示す説明図である。以下、本図を参照して説明する。
【０１８２】
本図では、前図までに表示されていたテキスト７０８「英仏飜訳」は非表示となって、これに置換されて、インラインフレーム７１１が表示されている。その中には、クリックされた「英仏飜訳」のウェブサービス要求に対する返答待ちである旨が表示されている。
【０１８３】
図１４は、クリックされたウェブサービス要求に対する問い合わせが終了した後の画面の表示例を示す説明図である。以下、本図を参照して説明する。
【０１８４】
インラインフレーム７１１の中には、「This is a pen.」「英仏飜訳」の結果である「C'est un stylo.」が表示されることになる。
【０１８５】
このほか、テキスト７０９「商品penの検索」やテキスト７１０「単語penのウェブ検索」をクリックした場合も同様に、インラインフレームがテキストのかわりに表示され、そのインラインフレームの中に、当該ウェブサービスの問合せ結果が表示されるのである。
【０１８６】
本実施形態によれば、複数のウェブサービスの適用が可能な場合に、ユーザに必要なウェブサービスをできるだけ簡易な操作で迅速に提供することができる。以下の実施例では、ウェブサービスの適合度を求める手法の一つについて説明する。
【実施例３】
【０１８７】
本実施形態は、上記実施例と同様に、紹介装置４０１において、サービス選択部４０３は、当該複数のウェブサービス装置３０１の受信された紹介要求に指定されるテキストに対する適合度をそれぞれ計算し、当該適合度が、所定の閾値以上であるウェブサービス装置３０１を選択し、当該ウェブサービス装置３０１が複数選択された場合、紹介応答送信部４０４は、当該選択されたウェブサービス装置３０１について計算された適合度の順をさらに紹介応答に指定する場合に適用されるものである。
【０１８８】
このとき、サービス要求イベントハンドラは、起動されると、上記実施例における処理（１）（２）のほか、
（３）当該ウェブサービス要求がされた旨を、紹介装置４０１に報告する
処理を実行する。
【０１８９】
この処理（３）は、報告送信部（図示せず。）が実行する処理に対応する。典型的には、この報告には、閲覧用コンピュータを利用しているユーザを識別する情報も指定される。
【０１９０】
紹介装置４０１では、報告受信部４０５が報告を受信すると、回数積算部４０６が、ユーザが積極的に選択することによって各ウェブサービス装置３０１を利用した回数を積算して記録する。すなわち、報告の受信により、報告に指定されるウェブサービス装置３０１を利用した回数を増加させるのである。
【０１９１】
さらに、今後の紹介要求に対して、各ウェブサービスの適合度を計算する場合には、サービス選択部４０３は、当該積算された回数に基づいて、適合度を求める。具体的には、過去の総数を利用することとしても良いし、直近で利用している割合が高いウェブサービスの適合度を高くすることとしても良い。
【０１９２】
また、適合度２位以下のウェブサービスの利用が報告された場合には、適合度１位のウェブサービスの適合度を低くするように調整することも可能である。
【０１９３】
この適合度の計算は、各ユーザが、どのようなテキストに対して、どのようなウェブサービスを選択するか、を紹介装置４０１が「学習」することに相当する。したがって、この「学習」には、自然言語処理における仮名漢字変換の学習と同様のアルゴリズムを適用することが可能である。
【０１９４】
たとえば、積算された利用回数のみを用いるのではなく、元のウェブ文書の記述に利用されていた文字コードやテキストに出現する文字の出現頻度などの情報と組み合わせて「学習」を行うことにより、ユーザが望むウェブサービスの順位を適切に推測することができるようになるものと考えられる。
【０１９５】
なお、上記の処理（３）では、ウェブサービスが要求されるごとに紹介装置４０１にその旨を報告しているが、これを以下のように変更することも可能である。すなわち、ウェブサービスが要求されるごとに、JavaScriptの配列変数等に、要求したウェブサービスの種類を追加登録していくものとする。
【０１９６】
そして、次回に紹介要求を送信する際に、当該配列変数の中身も紹介要求パケットに入れてから送信し、当該配列変数をクリアするのである。
【０１９７】
一方、紹介装置４０１側では、紹介要求を受信すると、配列変数の中身を抽出して、要求回数の積算を行う。
【０１９８】
この態様では、報告送信部は、紹介要求送信部５０３を利用して報告を送信し、報告受信部４０４は、紹介要求受信部４０１を利用して報告を受信することとなり、閲覧用コンピュータ２０１と紹介装置４０１との間の通信回数を低減することができる。
【産業上の利用可能性】
【０１９９】
上記のように、本発明によれば、ブラウザで閲覧中のウェブ文書に含まれるテキストに対して、ユーザが希望するウェブサービスを適用しやすくし、その結果をユーザが確認しやすくするのに好適な、閲覧システム、当該ブラウザで実行されるプラグインプログラム、ならびに、当該プラグインプログラムと共働する紹介装置を実現するための紹介プログラムを提供することができる。
【図面の簡単な説明】
【０２００】
【図１】本発明の閲覧システムの実施形態の１つに係るウェブサービス装置、紹介装置、閲覧用コンピュータが実現される典型的な情報処理装置の概要構成を示す模式図である。
【図２】ブラウザプログラムを実行する閲覧用コンピュータの概要構成を示す模式図である。
【図３】本実施形態の閲覧システムが有するウェブサービス装置の概要構成を示す模式図である。
【図４】本実施形態に係る紹介装置の概要構成を示す模式図である。
【図５】ブラウザプログラムを実行している環境で、プラグインプログラムを実行する閲覧用コンピュータの概要構成を示す模式図である。
【図６】本実施形態の閲覧システムにおける通信の様子を示す説明図である。
【図７】本実施形態の閲覧用コンピュータの画面の表示例を示す説明図である。
【図８】本実施形態の閲覧用コンピュータの画面の表示例を示す説明図である。
【図９】本実施形態の閲覧用コンピュータの画面の表示例を示す説明図である。
【図１０】本実施形態の閲覧用コンピュータの画面の表示例を示す説明図である。
【図１１】本実施形態の閲覧用コンピュータの画面の表示例を示す説明図である。
【図１２】本実施形態の閲覧用コンピュータの画面の表示例を示す説明図である。
【図１３】本実施形態の閲覧用コンピュータの画面の表示例を示す説明図である。
【図１４】本実施形態の閲覧用コンピュータの画面の表示例を示す説明図である。
【符号の説明】
【０２０１】
１０１  情報処理装置
１０２  ＣＰＵ
１０３  ＲＯＭ
１０４  ＨＤ
１０５  キーボード
１０６  マウス
１０７  ＲＡＭ
１０８  表示装置
１０９  インターフェース
１１０  ＦＤドライブ
１１１  ＣＤ−ＲＯＭドライブ
２０１  閲覧用コンピュータ
２０２  ＵＲＬ受付部
２０３  文書取得部
２０４  表示部
３０１  ウェブサービス装置
３０２  サービス要求受信部
３０３  サービス処理部
３０４  サービス応答送信部
４０１  紹介装置
４０２  紹介要求受信部
４０３  サービス選択部
４０４  紹介応答送信部
４０５  報告受信部
４０６  回数積算部
５０１  位置受付部
５０２  テキスト取得部
５０３  紹介要求送信部
５０４  紹介応答受信部
５０５  要素挿入部
５０６  表示制御部
５５１  ウェブサーバ
７０１  ブラウザ
７０２  アドレスバー
７０３  文書表示領域
７０４  ボタン
７０５  マウスカーソル
７０６  処理対象のテキスト
７０７  インラインフレーム
７０８  クリック可能なテキスト
７０９  クリック可能なテキスト
７１０  クリック可能なテキスト
７１１  インラインフレーム
【図１】
0005276903.tif 000002
【図２】
0005276903.tif 000003
【図３】
0005276903.tif 000004
【図４】
0005276903.tif 000005
【図５】
0005276903.tif 000006
【図６】
0005276903.tif 000007
【図７】
0005276903.tif 000008
【図８】
0005276903.tif 000009
【図９】
0005276903.tif 000010
【図１０】
0005276903.tif 000011
【図１１】
0005276903.tif 000012
【図１２】
0005276903.tif 000013
【図１３】
0005276903.tif 000014
【図１４】
0005276903.tif 000015