(57)【要約】【課題】ユーザによって指定された文書に応じて、サービスを自動的に起動することを可能とする。【解決手段】テキスト文書入力部３１１は、ユーザの操作に応じて文書を入力する。論理構造抽出処理部３１２、形態素解析部３１４および意味クラス解析部３１６は、テキスト文書入力部３１１によって入力された文書を解析する。該当サービス抽出部３２３は、文書の解析結果に基づいて、当該文書に含まれる文字列がルール格納部３２１に格納されているルール情報に含まれる条件に合致するかを判定する。サービス起動部３２６は、該当サービス抽出部３２３によって条件に合致すると判定された文書に含まれる文字列に基づいて、当該条件を含むルール情報に対応するサービスを起動する。サービス処理結果出力部３２８は、サービス起動部３２６によってサービスが起動された結果を出力する。【選択図】図２
2011128717.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを含むサービスに対応するルール情報であって当該サービスを起動するための条件を含むルール情報を予め格納するルール格納手段を有する外部記憶装置と、当該外部記憶装置を利用するコンピュータとから構成されるサービス自動呼出し装置において、前記コンピュータによって実行されるサービス自動呼出しプログラムであって、
前記コンピュータに、
ユーザの操作に応じて、文字列を含む文書を入力するステップと、
前記入力された文書を解析するステップと、
前記解析結果に基づいて、前記入力された文書に含まれる文字列が前記ルール格納手段に格納されているルール情報に含まれる条件に合致するかを判定するステップと、
前記条件に合致すると判定された場合、当該条件に合致すると判定された前記入力された文書に含まれる文字列に基づいて、当該条件を含むルール情報に対応するサービスを起動するステップと、
前記サービスが起動された結果を出力するステップと
を実行させるためのサービス自動呼出しプログラム。
【請求項２】
前記サービス自動呼出し装置を構成する外部記憶装置は、前記ユーザに関するユーザ定義情報を予め格納するユーザ定義情報格納手段を更に有し、
前記サービスを起動するステップにおいて、前記条件に合致すると判定された前記入力された文書に含まれる文字列および前記ユーザ定義情報格納手段に格納されているユーザ定義情報に基づいて、当該条件を含むルール情報に対応するサービスを起動する
ことを特徴とする請求項１記載のサービス自動呼出しプログラム。
【請求項３】
前記解析するステップにおいて、前記入力された文書を解析することにより、前記入力された文書に含まれる文字列の意味を表す意味クラスを当該文字列に付与し、
前記ルール格納手段に格納されているルール情報に含まれる条件は、当該ルール情報に対応するサービスを起動するために必要な文字列の意味を表す意味クラスを含み、
前記判定するステップにおいて、前記ルール格納手段に格納されているルール情報に含まれる条件に含まれる意味クラスが付与された文字列が前記入力された文書に含まれる場合に当該ルール情報に含まれる条件に合致すると判定し、
前記サービスを起動するステップにおいて、前記ルール格納手段に格納されているルール情報に含まれる条件に含まれる意味クラスが付与された前記入力された文書に含まれる文字列に基づいて、当該ルール情報に対応するサービスを起動する
ことを特徴とする請求項１記載のサービス自動呼出しプログラム。
【請求項４】
アプリケーションを含む第１のサービスに対応する第１のルール情報であって当該第１のサービスを起動するための第１の条件を含む第１のルール情報および前記第１のサービスを起動するために必要な補完情報を取得するための第２のサービスに対応する第２のルール情報であって当該第２のサービスを起動するための第２の条件を含む第２のルール情報を予め格納するルール格納手段およびサービス引数補完情報格納手段を有する外部記憶装置と、当該外部記憶装置を利用するコンピュータとから構成されるサービス自動呼出し装置において、前記コンピュータによって実行されるサービス自動呼出しプログラムであって、
前記コンピュータに、
ユーザの操作に応じて、文字列を含む文書を入力するステップと、
前記入力された文書を解析するステップと、
前記解析結果に基づいて、前記入力された文書に含まれる文字列が前記ルール格納手段に格納されている第１のルール情報に含まれる第１の条件に合致するかを判定するステップと、
前記入力された文書に含まれる文字列が前記第１の条件に合致しないと判定された場合、前記解析結果に基づいて、前記入力された文書に含まれる文字列が前記ルール格納手段に格納されている第２のルール情報に含まれる第２の条件に合致するかを判定するステップと、
前記第２の条件に合致すると判定された場合、当該第２の条件に合致すると判定された前記入力された文書に含まれる文字列に基づいて当該第２の条件を含む第２のルール情報に対応する第２のサービスを起動することにより、前記第１のサービスを起動するために必要な補完情報を取得するステップと、
前記取得された補完情報を前記サービス引数補完情報格納手段に格納するステップと、
前記解析結果および前記サービス引数補完情報格納手段に格納された補完情報に基づいて、前記入力された文書に含まれる文字列および当該補完情報が前記ルール格納手段に格納されている第１のルール情報に含まれる第１の条件に合致するかを判定するステップと、
前記入力された文書に含まれる文字列および前記サービス引数補完情報格納手段に格納された補完情報が前記第１の条件に合致すると判定された場合、当該第１の条件に合致すると判定された前記入力された文書に含まれる文字列および前記サービス引数補完情報格納手段に格納された補完情報に基づいて、当該第１の条件を含む第１のルール情報に対応する第１のサービスを起動するステップと、
前記第１のサービスが起動された結果を出力するステップと
を実行させるためのサービス自動呼出しプログラム。
【請求項５】
アプリケーションを含むサービスに対応するルール情報であって当該サービスを起動するための条件を含むルール情報を予め格納するルール格納手段と、
ユーザの操作に応じて、文字列を含む文書を入力する入力手段と、
前記入力された文書を解析する解析手段と、
前記解析手段による解析結果に基づいて、前記入力された文書に含まれる文字列が前記ルール格納手段に格納されているルール情報に含まれる条件に合致するかを判定する判定手段と、
前記条件に合致すると判定された場合、当該条件に合致すると判定された前記入力されて文書に含まれる文字列に基づいて、当該条件を含むルール情報に対応するサービスを起動するサービス起動手段と、
前記サービス起動手段によってサービスが起動された結果を出力する出力手段と
を具備することを特徴とするサービス自動呼出し装置。
【請求項６】
アプリケーションを含む第１のサービスに対応する第１のルール情報であって当該第１のサービスを起動するための第１の条件を含む第１のルール情報および前記第１のサービスを起動するために必要な補完情報を取得するための第２のサービスに対応する第２のルール情報であって当該第２のサービスを起動するための第２の条件を含む第２のルール情報を予め格納するルール格納手段と、
ユーザの操作に応じて、文字列を含む文書を入力する入力手段と、
前記入力された文書を解析する解析手段と、
前記解析結果に基づいて、前記入力された文書に含まれる文字列が前記ルール格納手段に格納されている第１のルール情報に含まれる第１の条件に合致するかを判定する第１の判定手段と、
前記入力された文書に含まれる文字列が前記第１の条件に合致しないと前記第１の判定手段によって判定された場合、前記解析結果に基づいて、前記入力された文書に含まれるも氏列が前記ルール格納手段に格納されている第２のルール情報に含まれる第２の条件に合致するかを判定する第２の判定手段と、
前記第２の条件に合致すると前記第２の判定手段によって判定された場合、当該第２の条件に合致すると判定された前記入力された文書に含まれる文字列に基づいて当該第２の条件を含む第２のルール情報に対応する第２のサービスを起動することにより、前記第１のサービスを起動するために必要な補完情報を取得する第１のサービス起動手段と、
前記取得された補完情報を格納するサービス引数補完情報格納手段と、
前記解析結果および前記サービス引数補完情報格納手段に格納された補完情報に基づいて、前記入力された文書に含まれる文字謁および当該補完情報が前記ルール格納手段に格納されている第１のルール情報に含まれる第１の条件に合致するかを判定する第３の判定手段と、
前記入力された文書に含まれる文字列および前記サービス引数補完情報格納手段に格納された補完情報が前記第１の条件に合致すると前記第３の判定手段によって判定された場合、当該第１の条件に合致すると判定された前記入力された文書に含まれる文字列および前記サービス引数補完情報格納手段に格納された補完情報に基づいて、当該第１の条件を含む第１のルール情報に対応する第１のサービスを起動する第２のサービス起動手段と、
前記第２のサービス起動手段によって第１のサービスが起動された結果を出力する出力手段と
を具備することを特徴とするサービス自動呼出し装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、テキスト情報に関連したサービスを自動的に呼び出すサービス自動呼出しプログラムおよびサービス自動呼出し装置に関する。
【背景技術】
【０００２】
近年、テキスト文書等のテキスト情報を用いてサービス（アプリケーションサービス）を利用する技術が知られている。
【０００３】
このような技術に関連して、例えば文書ファイル中の文字列を検出し、その文字列に関連するサービスとして動作するサーバへのハイパーリンクを自動的に作成する技術（以下、第１の先行技術と表記）が開示されている（例えば、特許文献１を参照）。この第１の先行技術によれば、検出ルールおよび辞書を使って文書ファイル内の文字列を検出し、対応付けルールによって当該文字列とネットワーク上のサービスとが関連付けられる。
【０００４】
また、例えば入力文書データの一部または全部に対する指定の入力を受け付けた場合に、指定された適用範囲に対する適切な処理を決定することで利用者の操作負担を軽減させる技術（以下、第２の先行技術と表記）が開示されている（例えば、特許文献２を参照）。この第２の先行技術によれば、アノテーション（ペン等の入力デバイスによるアンダーラインまたは囲みなどの書き込み）された文字列に対して、当該文字列に対して予め定義された処理が提示される。この第２の先行技術において提示される処理は、文字列の属性（例えば、企業名、人名または日付等）と入力文書の種類とアノテーションの種類とによって関連付けられている。第２の先行技術において、入力文書中の例えば企業名（の文字列）にアンダーラインが引かれた場合には、当該企業の株価または当該企業の概要等を検索するサービスが提示される。一方、入力文書中の例えばイベント情報の部分（文字列）が囲まれた場合には、当該イベント情報のうちの例えば必要な情報をデータベース（ＤＢ）に登録するようなサービスが提示される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−７７２２７号公報
【特許文献２】特開２００８−８３８５６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記した第１および第２の先行技術では、サービスを利用する際に必要な情報がテキスト文書中に存在しない場合には、当該情報を補って当該サービスを利用することはできない。
【０００７】
また、第１および第２の先行技術では、サービスをユーザに提示することは可能であるが、実際に当該サービスを起動することはできない。
【０００８】
そこで、本発明の目的は、ユーザによって指定された文書に応じて、サービスを自動的に起動することが可能なサービス自動呼出しプログラムおよびサービス自動呼出し装置を提供することにある。
【課題を解決するための手段】
【０００９】
本発明の第１の態様によれば、アプリケーションを含むサービスに対応するルール情報であって当該サービスを起動するための条件を含むルール情報を予め格納するルール格納手段を有する外部記憶装置と、当該外部記憶装置を利用するコンピュータとから構成されるサービス自動呼出し装置において、前記コンピュータによって実行されるサービス自動呼出しプログラムであって、前記コンピュータに、ユーザの操作に応じて、文字列を含む文書を入力するステップと、前記入力された文書を解析するステップと、前記解析結果に基づいて、前記入力された文書に含まれる文字列が前記ルール格納手段に格納されているルール情報に含まれる条件に合致するかを判定するステップと、前記条件に合致すると判定された場合、当該条件に合致すると判定された前記入力された文書に含まれる文字列に基づいて、当該条件を含むルール情報に対応するサービスを起動するステップと、前記サービスが起動された結果を出力するステップとを実行させるためのサービス自動呼出しプログラムが提供される。
【００１０】
本発明の第２の態様によれば、アプリケーションを含む第１のサービスに対応する第１のルール情報であって当該第１のサービスを起動するための第１の条件を含む第１のルール情報および前記第１のサービスを起動するために必要な補完情報を取得するための第２のサービスに対応する第２のルール情報であって当該第２のサービスを起動するための第２の条件を含む第２のルール情報を予め格納するルール格納手段およびサービス引数補完情報格納手段を有する外部記憶装置と、当該外記憶装置を利用するコンピュータとから構成されるサービス自動呼出し装置において、前記コンピュータによって実行されるサービス自動呼出しプログラムであって、前記コンピュータに、ユーザの操作に応じて、文字列を含む文書を入力するステップと、前記入力された文書を解析するステップと、前記解析結果に基づいて、前記入力された文書に含まれる文字列が前記ルール格納手段に格納されている第１のルール情報に含まれる第１の条件に合致するかを判定するステップと、前記入力された文書に含まれる文字列が前記第１の条件に合致しないと判定された場合、前記解析結果に基づいて、前記入力された文書に含まれる文字列が前記ルール格納手段に格納されている第２のルール情報に含まれる第２の条件に合致するかを判定するステップと、前記第２の条件に合致すると判定された場合、当該第２の条件に合致すると判定された前記入力された文書に含まれる文字列に基づいて当該第２の条件を含む第２のルール情報に対応する第２のサービスを起動することにより、前記第１のサービスを起動するために必要な補完情報を取得するステップと、前記取得された補完情報を前記サービス引数補完情報格納手段に格納するステップと、前記解析結果および前記サービス引数補完情報格納手段に格納された補完情報に基づいて、前記入力された文書に含まれる文字列および当該補完情報が前記ルール格納手段に格納されている第１のルール情報に含まれる第１の条件に合致するかを判定するステップと、前記入力された文書に含まれる文字列および前記サービス引数補完情報格納手段に格納された補完情報が前記第１の条件に合致すると判定された場合、当該第１の条件に合致すると判定された前記入力された文書に含まれる文字列および前記サービス引数補完情報格納手段に格納された補完情報に基づいて、当該第１の条件を含む第１のルール情報に対応する第１のサービスを起動するステップと、前記第１のサービスが起動された結果を出力するステップとを実行させるためのサービス自動呼出しプログラムが提供される。
【発明の効果】
【００１１】
本発明は、ユーザによって指定された文書に応じて、サービスを自動的に起動することを可能とする。
【図面の簡単な説明】
【００１２】
【図１】本発明の第１の実施形態に係るサービス自動呼出し装置のハードウェア構成を示すブロック図。
【図２】図１に示すサービス自動呼出し装置３０の主として機能構成を示すブロック図。
【図３】図２に示すルール格納部３２１に格納されているルール情報のデータ構造の一例を示す図。
【図４】図２に示すユーザ定義情報格納部３２４に格納されているユーザ定義情報のデータ構造の一例を示す図。
【図５】本実施形態に係るサービス自動呼出し装置３０に含まれるテキスト文書処理部３１の処理手順を示すフローチャート。
【図６】本実施形態に係るサービス自動呼出し装置３０に含まれるサービス起動処理部３２の処理手順を示すフローチャート。
【図７】テキスト文書入力部３１１によって入力されたテキスト文書の一例を示す図。
【図８】図７に示すテキスト文書に対して論理構造解析が実行された結果の一例を示す図。
【図９】図８に示す論理構造抽出結果に対して形態素解析が実行された結果の一例を示す図。
【図１０】図９に示す形態素解析結果に対して意味クラス解析が実行された結果の一例を示す図。
【図１１】複数の単語に対して１つの意味クラスが付与される場合について具体的に説明するための図。
【図１２】サービス引数補完情報格納部３２７に格納される補完情報の一例を示す図。
【図１３】ユーザによって使用されるＧＵＩ画面の一例を示す図。
【図１４】サービスの起動結果が表示された場合の表示画面の一例を示す図。
【図１５】起動されるサービスが存在しない場合に表示される表示画面の一例を示す図。
【図１６】本発明の第２の実施形態におけるルール格納部３２１に格納されているルール情報のデータ構造の一例を示す図。
【図１７】本実施形態におけるユーザ定義情報格納部３２４に格納されているユーザ定義情報のデータ構造の一例を示す図。
【図１８】テキスト文書入力部３１１によって入力されたテキスト文書の一例を示す図。
【図１９】図１８に示すテキスト文書に対して論理構造解析が実行された結果の一例を示す図。
【図２０】図１９に示す論理構造抽出結果に対して形態素解析が実行された結果の一例を示す図。
【図２１】図２０に示す形態素解析結果に対して意味クラス解析が実行された結果の一例を示す図。
【図２２】サービスが途中まで起動された場合の結果が表示された場合の表示画面の一例を示す図。
【発明を実施するための形態】
【００１３】
以下、図面を参照して、本発明の各実施形態について説明する。
【００１４】
［第１の実施形態］
まず、図１および図２を参照して、本発明の第１の実施形態について説明する。図１は、本実施形態に係るサービス自動呼出し装置のハードウェア構成を示すブロック図である。図１に示すように、コンピュータ１０は、例えばハードディスクドライブ（ＨＤＤ：Hard Disk Drive）のような外部記憶装置２０と接続されている。この外部記憶装置２０は、コンピュータ１０によって実行されるプログラム２１を格納する。コンピュータ１０および外部記憶装置２０は、サービス自動呼出し装置３０を構成する。
【００１５】
サービス自動呼出し装置３０は、ユーザによって指定された文書（テキスト文書）に応じてアプリケーションを含むサービスを自動的に起動する機能を有する。
【００１６】
図２は、図１に示すサービス自動呼出し装置３０の主として機能構成を示すブロック図である。図２に示すように、サービス自動呼出し装置３０は、テキスト文書処理部３１およびサービス起動処理部３２を含む。
【００１７】
テキスト文書処理部３１は、テキスト文書入力部３１１、論理構造抽出処理部３１２、形態素解析辞書格納部３１３、形態素解析部３１４、意味クラス辞書格納部３１５、意味クラス解析部３１６およびテキスト解析結果出力部３１７を含む。
【００１８】
サービス起動処理部３２は、ルール格納部３２１、ルール入力部３２２、該当サービス抽出部３２３、ユーザ定義情報格納部３２４、ユーザ定義情報入力部３２５、サービス起動部３２６、サービス引数補完情報格納部３２７およびサービス処理結果出力部３２８を含む。
【００１９】
本実施形態において、テキスト文書入力部３１１、論理構造抽出処理部３１２、形態素解析部３１４、意味クラス解析部３１６、テキスト解析結果出力部３１７、ルール入力部３２２、該当サービス抽出部３２３、ユーザ定義情報入力部３２５、サービス起動部３２６およびサービス処理結果出力部３２８は、図１に示すコンピュータ１０が外部記憶装置２０に格納されているプログラム（サービス自動呼出しプログラム）２１を実行することにより実現されるものとする。このプログラム２１は、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラム２１が例えばネットワークを介してコンピュータ１０にダウンロードされても構わない。
【００２０】
また、本実施形態において、形態素解析辞書格納部３１３、意味クラス辞書格納部３１５、ルール格納部３２１、ユーザ定義情報格納部３２４およびサービス引数補完情報格納部３２７は、例えば外部記憶装置２０に格納される。
【００２１】
テキスト文書入力部３１１は、ユーザの操作に応じて、文字列（段落または章からなる文章）を含むテキスト文書を入力する（読み込む）。
【００２２】
論理構造抽出処理部３１２は、テキスト文書入力部３１１によって入力されたテキスト文書を解析することによって、当該テキスト文書における論理構造を抽出する。具体的には、論理構造抽出処理部３１２は、テキスト文書中の段落または章を抽出し、当該抽出された段落内または章内の文章を例えばＸＭＬ（eXtensible Markup Language）におけるタグで囲む。
【００２３】
形態素解析辞書格納部３１３には、単語（形態素）の品詞等の情報（品詞情報）を保持する形態素解析辞書が予め格納されている。この形態素解析辞書格納部３１３に格納されている形態素解析辞書は、形態素解析部３１４による形態素解析処理において用いられる。
【００２４】
形態素解析部３１４は、論理構造抽出処理部３１２によって抽出された論理構造（ＸＭＬのタグで囲まれた各文章）に対して、形態素解析処理を実行する。このとき、形態素解析部３１４は、形態素解析辞書格納部３１３に格納されている形態素解析辞書を用いて形態素解析処理を実行する。形態素解析部３１４による形態素解析処理によれば、テキスト文書に含まれる文字列に対して当該文字列の品詞を属性とするタグが付与される。
【００２５】
意味クラス辞書格納部３１５には、単語の意味を表す意味クラス等の情報（意味クラス情報）を保持する意味クラス辞書が予め格納されている。なお、意味クラスとは、単語の意味による分類を示すものである。意味クラスには、例えば日付クラス、地名クラスおよび製品名クラス等が含まれる。意味クラス辞書格納部３１５に格納されている意味クラス辞書は、意味クラス解析部３１６による意味クラス解析処理において用いられる。
【００２６】
意味クラス解析部３１６は、論理構造抽出部３１２によって抽出された論理構造（ＸＭＬのタグで囲まれた各文章）に対して、意味クラス解析処理を実行する。このとき、意味クラス解析部３１６は、形態素解析部３１４による形態素解析結果および意味クラス辞書格納部３１５に格納されている意味クラス辞書を用いて意味クラス解析処理を実行する。意味クラス解析部３１６による意味クラス解析処理によれば、テキスト文書に含まれる文字列に対して当該文字列の意味を表す意味クラスを属性とするタグが付与される。
【００２７】
テキスト解析結果出力部３１７は、テキスト文書の解析結果（テキスト解析結果）をサービス起動処理部３２に出力する。
【００２８】
ルール格納部３２１には、例えばアプリケーションを含むサービス（サービス自動呼出し装置３０において起動されるサービス）に対応するルール情報が予め格納されている。ルール格納部３２１に格納されているルール情報には、当該ルール情報に対応するサービスを起動するための条件が含まれる。このルール情報に含まれる条件には、例えば当該ルール情報に対応するサービスを起動するために必要な文字列（情報）の意味を表す意味クラス等が含まれる。
【００２９】
なお、ルール格納部３２１には、サービス自動呼出し装置３０において起動されるサービスの各々に対応するルール情報が格納される。つまり、ルール格納部３２１に格納されるルール情報は、サービス自動呼出し装置３０において起動されるサービス毎に用意されている。
【００３０】
ルール格納部３２１には、例えば第１のサービスに対応する第１のルール情報および第２のサービスに対応する第２のルール情報が格納されているものとする。第１のルール情報に対応する第１のサービスは例えば結果をユーザに対して提示（出力）するためのサービスであり、当該第１のルール情報には、当該第１のサービスを起動するための条件（第１の条件）が含まれている。第２のルール情報に対応する第２のサービスは例えば第１のサービスを起動するために必要な情報（補完情報）を取得するためのサービスであり、当該第２のルール情報には、当該第２のサービスを起動するための条件（第２の条件）が含まれている。
【００３１】
ルール入力部３２２は、ルール格納部３２１に格納されているルール情報を、当該ルール格納部３２１から入力する（読み込む）。
【００３２】
該当サービス抽出部３２３は、テキスト解析結果出力部３１７によって出力されたテキスト文書の解析結果に対してルール入力部３２２によって入力されたルール情報を照らし合わせることにより、サービス自動呼出し装置３０によって自動的に起動されるサービス（以下、起動対象サービスと表記）を決定（抽出）する。
【００３３】
該当サービス抽出部３２３は、テキスト解析結果出力部３１７によって出力されたテキスト文書の解析結果に基づいて、テキスト文書に含まれる文字列がルール入力部３２２によって入力されたルール情報に含まれる条件に合致するか否かを判定する。該当サービス抽出部３２３は、例えばルール入力部３２２によって入力されたルール情報に含まれる条件に含まれる意味クラスが付与された文字列がテキスト文書に含まれる（当該テキスト文書中に出現する）場合には、当該テキスト文書に含まれる文字列が当該サービスを起動するための条件に合致すると判定する。
【００３４】
該当サービス抽出部３２３は、テキスト文書に含まれる文字列がルール情報に含まれる条件に合致すると判定された場合、当該ルール情報に対応するサービスを起動対象サービスとして決定する。
【００３５】
ユーザ定義情報格納部３２４には、例えばサービスを起動する際に必要となるユーザに関する情報（以下、ユーザ定義情報と表記）が予め格納されている。このユーザ定義情報には、例えばユーザを識別するためのユーザＩＤ（ユーザ名）およびパスワード等が含まれる。
【００３６】
ユーザ定義情報入力部３２５は、ユーザ定義情報格納部３２４に格納されているユーザ定義情報を、当該ユーザ定義情報格納部３２４から入力する（読み込む）。
【００３７】
サービス起動部３２６は、該当サービス抽出部３２３によって決定（抽出）されたサービス（起動対象サービス）を起動する。サービス起動部３２６は、起動対象サービスを起動するための条件に合致すると該当サービス抽出部３２３によって判定されたテキスト文書中の文字列（当該テキスト文書に含まれる文字列）およびユーザ定義情報入力部３２５によって入力されたユーザ定義情報に基づいて起動対象サービスを起動する。
【００３８】
なお、サービス起動部３２６によって起動されるサービスは、例えばｗｗｗ（World Wide Web）のようなサービスリポジトリ（図示せず）に配置されているものとする。
【００３９】
サービス起動部３２６は、起動対象サービスが上記した第２のサービスである場合には、当該起動対象サービスを起動することによって補完情報を取得する。この場合、サービス起動部３２６は、取得された補完情報をサービス引数補完情報格納部３２７に格納する。
【００４０】
サービス引数補完情報格納部３２７に格納された補完情報は、後述するように該当サービス抽出部３２３およびサービス起動部３２６において用いられる。
【００４１】
サービス処理結果出力部３２８は、サービス起動部３２６によって起動された起動対象サービスが上記した第１のサービスである場合には、当該起動対象サービスが起動された結果（起動対象サービスの起動結果）、つまり、当該起動されたサービスから得られた情報を出力する。
【００４２】
図３は、図２に示すルール格納部３２１に格納されているルール情報のデータ構造の一例を示す。ルール格納部３２１には、サービス自動呼出し装置３０において起動されるサービス毎に対応するルール情報が予め格納されている。なお、図３に示すように、ルール格納部３２１に格納されているルール情報は、ＸＭＬ形式で表現されるものとする。
【００４３】
以下、図３に示すルール情報の各項目について説明する。図３に示す「rules」要素は、子要素としてサービス自動呼出し装置３０において起動されるサービスの各々に対応するルール情報の一覧を持つ。
【００４４】
「rule」要素の内容は、サービス自動呼出し装置３０において起動される１つのサービスに対応するルール情報を示す。つまり、図３に示す例では、３行目の「rule」要素の内容によって示されるルール情報および２０行目の「rule」要素の内容によって示されるルール情報の２つのルール情報が示されている。この「rule」要素は、対応するサービスに関する情報および当該サービスを起動するための条件等を表す子要素を持つ。なお、「rule」要素の子要素には、例えば「service_name」要素、「service_url」要素、「data」要素、「target_distant」要素および「return_value」要素が含まれる。
【００４５】
「service_name」要素の内容は、起動されるサービスの名称（サービス名）を示す。
【００４６】
「service_url」要素の内容は、起動されるサービスが配置される場所、例えばＵＲＬ（Uniform Resource Locator）を示す。
【００４７】
「data」要素は、起動されるサービスに必要なテキスト文書中の情報（文字列）および当該文字列が割り当てられるサービスの引数を子要素として持つ。このサービスの引数は、例えばＨＴＭＬ（HyperText Markup Language）のフォーム等に入力される。
【００４８】
この「data」要素の子要素は、起動されるサービス（つまり、対応するサービス）によって異なる。図３に示す例えば１つ目のルール情報（図３の３行目の「rule」要素の内容によって示されるルール情報）では、「data」要素の子要素には、「month」要素、「day」要素、「hour」要素、「minute」要素、「station」要素（「user」属性を含む「station」要素）および「station」要素（「class」属性を含む「station」要素）が含まれる。一方、図３に示す例えば２つ目のルール情報（図３の２０行目の「rule」要素の内容によって示されるルール情報）では、「data」要素の子要素には、「place」要素が含まれる。
【００４９】
「data」要素の子要素に付随する（含まれる）「class」属性の値（属性値）は、テキスト文書に含まれる文字列に付与される意味クラス（名）を示す。また、「data」要素の子要素に付随する「user」属性の属性値は、ユーザ定義情報格納部３２４に格納されているユーザ定義情報（に記述された要素名）を示す。なお、図３に示す例では記載されていないが、「data」要素の子要素に付随する「parse」属性の属性値は、テキスト文書に含まれる文字列に付与される品詞（名）を示す。
【００５０】
以下の説明において、「data」要素の子要素に該当する情報とは、当該子要素において指定されている情報をいう。具体的には、図３に示す「data」要素の子要素である例えば「month」要素に該当する情報とは、当該「month」要素に付随する「class」属性の属性値である意味クラス名「月」が付与された情報（文字列）をいう。また、図３に示す「data」要素の子要素である例えば「station」要素に該当する情報とは、ユーザ定義情報における「home_station」（当該「station」要素に付随する「user」属性の属性値）の情報（文字列）をいう。
【００５１】
「data」要素の子要素に付随する「must」属性の属性値は、当該子要素に該当する情報がサービスの起動における必須項目であるか否かを示す。例えば「must」属性の属性値が「true」である場合には、当該「must」属性を含む要素（「data」要素の子要素）に該当する情報がサービスの起動における必須項目であることを示す。一方、「must」属性の属性値が「false」である場合には、当該「must」属性を含む要素（「data」要素の子要素）に該当する情報がサービスの起動における必須項目でないことを示す。
【００５２】
なお、「data」要素の子要素の内容は、当該子要素に該当する情報が入力されるサービスの場所を示す。
【００５３】
「target_distant」要素の内容は、サービスの起動に必要な情報（「data」要素の子要素の各々に該当する情報）同士のテキスト文書中の距離（範囲）を示す。図３に示す１つ目のルール情報の例では、「target_distant」要素の内容は３であるため、サービスの起動に必要な情報（文字列）の全てがテキスト文書中における３行以内に出現（存在）する必要があることを示す。なお、「target_distant」要素の内容がallである場合には、テキスト文書全体が範囲とされる。
【００５４】
上記した「data」要素（の子要素）および「target_distant」要素（の内容）がルール情報に含まれる条件（当該ルール情報に対応するサービスを起動するための条件）に該当する。つまり、図３に示す１つ目のルール情報に含まれる条件は、「data」要素の子要素の各々に該当する情報（当該子要素に付随する「class」属性の属性値である意味クラス（名）が付与された文字列）の全てがテキスト文書中の３行以内に出現することである。また、図３に示す２つ目のルール情報に含まれる条件は、「data」要素の子要素に該当する情報（当該子要素である「place」要素に付随する「class」属性の属性値である意味クラス「住所」が付与された文字列）がテキスト文書中に出現することである。
【００５５】
また、「return_value」要素の内容がある場合はルール情報において戻り値が設定されていることを示し、当該「return_value」要素の内容が空要素であれば当該ルール情報において戻り値が設定されていないことを示す。なお、ルール情報において戻り値が設定されている場合には、当該ルール情報に対応するサービスが起動されることによって上述した補完情報が戻り値として取得され、当該補完情報がサービス引数補完情報格納部３２７に格納される。図３に示す例では、１つ目のルール情報においては戻り値が設定されておらず、２つ目のルール情報においては戻り値が設定されている。
【００５６】
なお、戻り値が設定されている場合には上述したように補完情報がサービス引数補完情報格納部３２７に格納されるが、この場合、当該補完情報は、例えば「return_value」要素の内容を要素名とするＸＭＬ要素の内容としてサービス引数補完情報格納部３２７に格納される。なお、サービス引数補完情報格納部３２７に格納される補完情報の具体例については後述する。
【００５７】
上記したように、図３には、サービス名が「乗り換えサービス」であるサービスに対応するルール情報（１つ目のルール情報）およびサービス名が「stationname」であるサービスに対応するルール情報（２つ目のルール情報）が示されている。このサービス名が「乗り換えサービス」であるサービスは、月、日、時、分、乗車駅および下車駅（の情報）が当該サービスに渡されることによって、当該サービスの結果として当該乗車駅から当該下車駅までの乗り換え案内を提示するサービスである。また、サービス名が「stationname」であるサービスは、住所（の情報）が当該サービスに渡されることによって、当該サービスの結果として当該住所における最寄り駅を返す（つまり、場所から駅を取得する）サービスである。
【００５８】
なお、図３においてはルール格納部３２１に格納されているルール情報はＸＭＬ形式であるものとして説明したが、当該ルール情報のデータ形式はＸＭＬ形式以外であっても構わない。
【００５９】
図４は、図２に示すユーザ定義情報格納部３２４に格納されているユーザ定義情報のデータ構造の一例を示す。ユーザ定義情報格納部３２４には、サービス自動呼出し装置３０を利用するユーザに関するユーザ定義情報が予め格納されている。なお、図４に示すように、ユーザ定義情報格納部３２４に格納されているユーザ定義情報は、ＸＭＬ形式で表現されるものとする。
【００６０】
以下、図４に示すユーザ定義情報の各項目について説明する。図４に示す「user」要素は、子要素としてユーザの情報（ユーザ情報）を持つ。「乗り換えサービス（サービス名）」要素は、当該乗り換えサービス（サービス名が「乗り換えサービス」であるサービス）を起動する際に必要となる情報を子要素として持つ。
【００６１】
図４に示す例では、「乗り換えサービス」要素の子要素としては、「ID」要素、「passwd」要素、「home_station」要素および「company_station」要素が含まれる。「ID」要素の内容は、ユーザを識別するためのユーザＩＤ（ユーザ名）を示す。「passwd」要素の内容は、例えばユーザによって指定されたパスワードを示す。「home_station」要素の内容は、例えばユーザの住所における最寄り駅を示す。「company_station」要素の内容は、例えばユーザの勤務地（当該ユーザの勤務先となる会社の所在地）における最寄り駅を示す。なお、これら以外に必要な情報がある場合には、この「乗り換えサービス」要素の子要素として記述される。
【００６２】
また、「Email」要素の内容は、ユーザのメールアドレスを示す。このメールアドレスは、例えば乗り換えサービスが起動された結果（起動結果）がメールで送信されるような場合に用いられる。
【００６３】
なお、テキスト文書に含まれる情報（文字列）のみでサービスが起動される場合は、ユーザ定義情報を定義する必要はない。
【００６４】
ここでは、ユーザ定義情報格納部３２４に格納されているユーザ定義情報はＸＭＬ形式であるものとして説明したが、当該ユーザ定義情報のデータ形式はＸＭＬ形式以外であっても構わない。
【００６５】
次に、本実施形態に係るサービス自動呼出し装置３０の動作について説明する。サービス自動呼出し装置３０における処理の全体の流れとしては、テキスト文書が解析され、当該テキスト文書の解析結果とサービスを起動するための条件を含むルール情報とを照らし合わせることにより起動されるサービスが決定され、当該サービスが自動的に起動される。
【００６６】
以下、図５および図６のフローチャートを参照して、本実施形態に係るサービス自動呼出し装置３０の処理手順について詳細に説明する。
【００６７】
まず、図５のフローチャートを参照して、本実施形態に係るサービス自動呼出し装置３０に含まれるテキスト文書処理部３１の処理手順について説明する。
【００６８】
テキスト文書処理部３１に含まれるテキスト文書入力部３１１は、ユーザの操作に応じて、当該ユーザによって指定された文字列を含むテキスト文書を入力する（ステップＳ１）。
【００６９】
テキスト文書処理部３１においては、テキスト文書入力部３１１によって入力されたテキスト文書に対して、論理構造解析、形態素解析および意味クラス解析の３段階の解析が実行される。
【００７０】
論理構造抽出処理部３１２は、テキスト文書入力部３１１によって入力されたテキスト文書を論理構造解析することによって、当該テキスト文書における論理構造を抽出する（ステップＳ２）。この論理構造解析では、例えばテキスト文書中の段落または改行等の論理構造が抽出される。この論理構造解析による論理構造の抽出結果（以下、論理構造抽出結果と表記）の詳細については後述する。
【００７１】
形態素解析部３１４は、論理構造抽出結果（論理構造解析が行われたテキスト文書）に対して形態素解析を実行する（ステップＳ３）。形態素解析部３１４は、形態素解析辞書格納部３１３に格納されている形態素解析辞書を参照して形態素解析を実行する。この形態素解析では、テキスト文書に含まれる文字列が単語（形態素）に切り分けられ、当該単語に対して品詞が付与される。
【００７２】
意味クラス解析部３１６は、形態素解析結果を用いて意味クラス解析を実行する（ステップＳ４）。意味クラス解析部３１６は、意味クラス辞書格納部３１５に格納されている意味クラス辞書を参照して意味クラス解析を実行する。この意味クラス解析では、形態素解析結果を用いて単語の意味クラスが判別され、当該判別された意味クラスが当該単語に付与される。上記したように意味クラスとは、単語の意味を表す（分類する）ものである。つまり、意味クラス解析においては、単語の品詞が名詞の場合には当該単語が例えば人名であるのか、企業名であるのか、製品名であるのかが判別される。
【００７３】
テキスト解析結果出力部３１７は、テキスト文書の解析結果（テキスト解析結果）をサービス起動処理部３２に出力する（ステップＳ５）。
【００７４】
次に、図６のフローチャートを参照して、本実施形態に係るサービス自動呼出し装置３０に含まれるサービス起動処理部３２の処理手順について説明する。
【００７５】
まず、ルール入力部３２２は、ルール格納部３２１に格納されているルール情報を、当該ルール格納部３２１から入力する（ステップＳ１１）。ルール格納部３２１に格納されているルール情報には、当該ルール情報に対応するサービスを起動するための条件が記述されている（つまり、当該条件が含まれている）。なお、ルール格納部３２１には、サービス毎に対応するルール情報が格納されている。
【００７６】
該当サービス抽出部３２３は、テキスト解析結果出力部３１７によって出力されたテキスト文書の解析結果およびルール入力部３２２によって入力されたルール情報を照らし合わせることにより、起動対象サービス（サービス自動呼出し装置３０において起動されるサービス）を決定する（ステップＳ１２）。
【００７７】
この場合、該当サービス抽出部３２３は、テキスト文書の解析結果に基づいて、当該テキスト文書に含まれる文字列がルール情報に含まれる条件を満たすか否かを判定する。該当サービス抽出部３２３は、ルール情報に含まれる条件を満たすと判定された場合に、当該ルール情報に対応するサービスを起動対象サービス（該当するサービス）として決定する。図３を用いて具体的に説明すると、当該図３に示す１つ目のルール情報では、テキスト文書中において「target_distant」要素で指定される３行以内に、必須項目として指定されている「data」要素の子要素であって「class」属性を含む当該子要素に該当する文字列（情報）の全てが出現する場合には、当該ルール情報に対応するサービス（サービス名が「乗り換えサービス」であるサービス）が起動対象サービスとして決定される。
【００７８】
なお、ステップＳ１２の処理が実行される場合において、後述するようにサービス引数補完情報格納部３２７に補完情報が格納されている場合には、該当サービス抽出部３２３は、テキスト文書に含まれる文字列および補完情報がルール情報に含まれる条件を満たすか否かを判定する。
【００７９】
ところで、例えばルール入力部３２２によって入力されたルール情報のうちの複数のルール情報に含まれる条件をテキスト文書に含まれる文字列が満たすと判定された場合、つまり、起動対象サービスに該当するサービスが複数存在する場合には、予め定められた優先順位に基づいて起動対象サービスが決定される。
【００８０】
ここで、この優先順位について説明する。なお、起動対象サービスとして決定される場合とは、上記したようにルール情報において必須項目として指定されている「data」要素の子要素であって「class」属性を含む当該子要素に該当する文字列（情報）の全てが、テキスト文書中の「target_distant」要素で指定された範囲内に出現する場合である。
【００８１】
この場合において、ルール情報における「data」要素の子要素の全て（つまり、必須項目として指定されている子要素および必須項目として指定されていない子要素）に該当する文字列がテキスト文書中の「target_distant」要素で指定された範囲内に出現する場合（以下、この条件を優先条件と表記）には、他のサービスに優先して当該ルール情報に対応するサービスが起動対象サービスとして決定される。
【００８２】
つまり、優先順位について簡単に説明すると、サービスを起動することによって当該サービスにおける最終結果を出力できる（つまり、必須項目である情報および必須項目でない情報の全てが存在する）サービスが優先的に起動対象サービスとして決定される。
【００８３】
なお、起動対象サービスに該当する複数のサービスの各々に対応するルール情報の全てが上記した優先条件を満たす、または、満たさない場合には、ルール情報として記述されている順に優先される。
【００８４】
次に、該当サービス抽出部３２３によって起動対象サービスが決定されたか否か、つまり、サービス自動呼出し装置３０において起動すべきサービス（起動対象サービス）があるか否かが判定される（ステップＳ１３）。
【００８５】
サービス自動呼出し装置３０において起動対象サービスがないと判定された場合（ステップＳ１３のＮＯ）、処理は終了される。
【００８６】
一方、サービス自動呼出し装置３０において起動対象サービスがあると判定された場合（ステップＳ１３のＹＥＳ）、ユーザ定義情報入力部３２５は、ユーザ定義情報格納部３２４に格納されているユーザ定義情報を、当該ユーザ定義情報格納部３２４から入力する。ユーザ定義情報入力部３２５によって入力されるユーザ定義情報には、例えばユーザＩＤおよびパスワード等が含まれる。
【００８７】
次に、サービス起動部３２６は、該当サービス抽出部３２３によって決定された起動対象サービスの起動に必要な情報（例えば、文字列）を、テキスト文書（の解析結果）およびユーザ定義情報入力部３２５によって入力されたユーザ定義情報から取得する（ステップＳ１５）。具体的には、サービス起動部３２６は、該当サービス抽出部３２３によって決定された起動対象サービスに対応するルール情報における「data」要素の子要素に該当する文字列を、テキスト文書およびユーザ定義情報から取得する。
【００８８】
なお、ステップＳ１５の処理が実行される場合において、後述するようにサービス引数補完情報格納部３２７に補完情報が格納されている場合には、サービス起動部３２６は、起動対象サービスの起動に必要な文字列を、テキスト文書、ユーザ定義情報および当該補完情報から取得する。
【００８９】
サービス起動部３２６は、取得された文字列を入力として（引数として用いることによって）、該当サービス抽出部３２３によって決定された起動対象サービスを起動する（ステップＳ１６）。なお、サービス起動部３２６によって起動されるサービスは、例えばサービスリポジトリ等に配置されている。
【００９０】
この場合、サービス起動部３２６によって起動された起動対象サービスに対応するルール情報において戻り値が設定されている場合には、サービス起動部３２６は、当該起動対象サービスが起動されることによって当該起動対象サービスとは異なる他のサービスの起動に必要な情報（補完情報）を取得する。一方、サービス起動部３２６によって起動された起動対象サービスに対応するルール情報において戻り値が設定されていない場合には、サービス起動部３２６は、当該起動対象サービスが起動された結果（サービスの起動結果）を取得する。
【００９１】
サービス起動部３２６は、起動された起動対象サービスに対応するルール情報において上述した戻り値が設定されているか否かを判定する（ステップＳ１７）。
【００９２】
戻り値が設定されていると判定された場合（ステップＳ１７のＹＥＳ）、サービス起動部３２６は、起動対象サービスが起動されることによって取得された補完情報をサービス引数補完情報格納部３２７に格納する（ステップＳ１８）。
【００９３】
ステップＳ１８の処理が実行されると、ステップＳ１２に戻って処理が繰り返される。このようにステップＳ１８の処理が実行された後にステップＳ１２に戻って処理が繰り返される場合、ステップＳ１２およびステップＳ１５の処理においては上記したようにサービス引数補完情報格納部３２７に格納された補完情報が用いられる。
【００９４】
一方、戻り値が設定されていないと判定された場合（ステップＳ１７のＮＯ）、サービス起動部３２６は、上記したように取得された起動対象サービスの起動結果をサービス処理結果出力部３２８に渡す。
【００９５】
この場合、サービス処理結果出力部３２８は、サービス起動部３２６から渡された起動対象サービスの起動結果を出力する（ステップＳ１９）。これにより、起動対象サービスの起動結果がユーザに対して提示される。
【００９６】
ステップＳ１９の処理が実行されると、上記したステップＳ１２に戻って処理が繰り返される。
【００９７】
なお、上記したようにステップＳ１８およびステップＳ１９の処理が実行された場合、ステップＳ１２に戻って処理が繰り返されるが、ステップＳ１６において起動されたサービス（起動対象サービス）が再度起動されることはない。つまり、１つのルール情報に対応するサービスは、一度しか起動されない。
【００９８】
以下、本実施形態に係るサービス自動呼出し装置３０の動作について具体的に説明する。ここでは、ルール格納部３２１には、上述した図３に示すルール情報が格納されているものとする。また、ユーザ定義情報格納部３２４には、上述した図４に示すユーザ定義情報が格納されているものとする。また、サービス引数補完情報格納部３２７には、補完情報は格納されていないものとする。
【００９９】
まず、テキスト文書入力部３１１は、ユーザの操作に応じてテキスト文書を入力する。ここでは、テキスト文書入力部３１１によって図７に示すテキスト文書が入力されたものとする。
【０１００】
次に、論理構造抽出処理部３１２は、テキスト文書入力部３１１によって入力されたテキスト文書を論理構造解析する。これにより、テキスト文書中の段落または改行等の論理構造が抽出される。
【０１０１】
ここで、図８は、図７に示すテキスト文書に対して論理構造解析が実行された結果（論理構造抽出結果）の一例を示す。
【０１０２】
図７に示すテキスト文書に対して論理構造解析が実行された場合、図８に示すように、当該テキスト文書の改行または空行（の情報）を使用して、当該テキスト文書中において例えば１文とみなされるものに「para」要素（ＸＭＬにおけるタグ）が付与される。
【０１０３】
なお、「para」要素に付随する「id」属性の属性値は、テキスト文書の上から順に自動的に付与される。
【０１０４】
上記したように論理構造抽出処理部３１２によって論理構造解析が実行されると、形態素解析部３１４は、形態素解析辞書格納部３１３に格納されている形態素解析辞書を参照して、テキスト文書に対する論理構造抽出結果に対して形態素解析を実行する。これにより、論理構造抽出結果に含まれる文字列（テキスト文書中の文字列）が単語に切り分けられ（分割され）、当該単語に対して品詞が付与される。
【０１０５】
ここで、図９は、図８に示す論理構造抽出結果に対して形態素解析が実行された結果（形態素解析結果）の一例を示す。
【０１０６】
図８に示す論理構造抽出結果に対して形態素解析が実行された場合には、図９に示すように、当該論理構造抽出結果における「para」要素の内容（中身）に対して形態素解析が行われ、その結果として得られる形態素（単語）を識別する要素が付与される。
【０１０７】
ここでは、論理構造抽出結果における「para」要素の内容に対して形態素解析が行われることによって、各単語の品詞名がＸＭＬ要素（「tag」要素）に付随する属性（「parse」属性）の属性値として当該単語に付与されている。
【０１０８】
図９に示す例では、図８に示す論理構造抽出結果における例えば「id」属性の属性値が１である「para」要素の内容「名称：○×コンファレンス２００９」に対して形態素解析が行われることによって、例えば単語「名称」には「tag」要素に付随する「parse」属性の属性値として品詞名「名詞」が付与されている。また、例えば単語「：」には「tag」要素に付随する「parse」属性の属性値として品詞名「記号」が付与されている。同様に、例えば単語「○×」には「tag」要素に付随する「parse」属性の属性値として品詞名「名詞」が付与されている。更に、例えば単語「カンファレンス」には「tag」要素に付随する「parse」属性の属性値として品詞名「名詞」が付与されている。また、例えば単語「２００９」には「tag」要素に付随する「parse」属性の属性値として品詞名「数詞」が付与されている。
【０１０９】
ここでは、図８に示す論理構造抽出結果における例えば「id」属性の属性値が１である「para」要素の内容に対して形態素解析が行われた場合について説明したが、他の「para」要素の内容について形態素解析が行われた場合についても同様であるため、その詳しい説明を省略する。
【０１１０】
次に、意味クラス解析部３１６は、意味クラス辞書格納部３１５に格納されている意味クラス辞書を参照して、形態素解析部３１４による形態素解析結果に対して意味クラス解析を実行する。これにより、形態素解析結果に含まれる単語（テキスト文書中の文字列）に対して当該単語の意味を表す意味クラスが付与される。
【０１１１】
ここで、図１０は、図９に示す形態素解析結果に対して意味クラス解析が実行された結果（意味クラス解析結果）の一例を示す。
【０１１２】
図９に示す形態素解析結果に対して意味クラス解析が実行された場合には、図１０に示すように、当該形態素解析結果におけるＸＭＬ要素（「tag」要素）の内容（単語）の意味を表す意味クラスが当該「tag」要素に付随する属性（「class」属性）の属性値として付与されている。
【０１１３】
図１０に示す例では、図９に示す形態素解析結果における例えば「id」属性の属性値が２である「para」要素の内容が形態素解析されることによって分割された例えば単語「２」を内容とする「tag」要素に付随する「class」属性の属性値として、当該単語「２」の意味を表す意味クラス「月」が付与されている。
【０１１４】
ここでは、図９に示す形態素解析結果における単語「２」を内容とする「tag」要素に付随する「class」属性の属性値（つまり、当該単語「２」の意味を表す意味クラス）について説明したが、他の単語についても同様であるため、その詳しい説明を省略する。
【０１１５】
なお、形態素解析によって分割された１つの単語に対して１つの意味クラスが付与される場合には、上記したように当該単語を内容とする「tag」要素に「class」属性（およびその属性値である意味クラス）が付与される。一方、形態素解析によって分割された複数の単語（の組み合わせ）に対して１つの意味クラスが付与される場合には、それらの単語の親要素として「tag」要素を更に付与し、当該「tag」要素に「class」属性（およびその属性値である意味クラス）が付与される。
【０１１６】
ここで、図１１を参照して、複数の単語に対して１つの意味クラスが付与される場合について具体的に説明する。ここでは、例えば「id」属性の属性値が１である「para」要素の内容が形態素解析されることによって分割された単語「○×」および単語「カンファレンス」の２つの単語に対して１つの意味クラス「イベント名」が付与される場合について説明する。
【０１１７】
この場合には、意味クラス解析が実行されることによって、図１１に示すように意味クラス付与前の「<tag parse=”名詞”>○×</tag><tag parse=”名詞”>カンファレンス</tag>」の記述は、意味クラス付与後には「<tag class=”イベント名”><tag parse=”名詞”>○×</tag><tag parse=”名詞”>カンファレンス</tag></tag>」と記述される。
【０１１８】
これにより、単語「○×」および単語「カンファレンス」の２つの単語の意味を表す１つの意味クラス「イベント名」が、「tag」要素に付随する「class」属性の属性値として付与される。
【０１１９】
上記したように意味クラス解析部３１６によって意味クラス解析が実行されると、テキスト解析結果出力部３１７は、当該意味クラス解析結果（テキスト文書の解析結果）をサービス起動処理部３２に対して出力する。
【０１２０】
次に、ルール入力部３２２は、ルール格納部３２１に格納されているルール情報を、当該ルール格納部３２１から入力する（読み込む）。この場合、ルール入力部３２２は、上述した図３に示すルール情報を入力する。具体的には、ルール入力部３２２は、サービス名が「乗り換えサービス」であるサービスに対応するルール情報（つまり、図３に示す１つ目のルール情報）およびサービス名が「stationname」であるサービスに対応するルール情報（つまり、図３に示す２つ目のルール情報）を入力する。
【０１２１】
以下の説明においては、ルール入力部３２２によって入力されたサービス名が「乗り換えサービス」であるサービス（第１のサービス）に対応するルール情報を第１のルール情報、サービス名が「stationname」であるサービス（第２のサービス）に対応するルール情報を第２のルール情報と称する。また、第１のルール情報に対応するサービス（第１のサービス）を乗り換えサービス、第２のルール情報に対応するサービス（第２のサービス）をstationnameサービスと称する。
【０１２２】
該当サービス抽出部３２３は、テキスト解析結果出力部３１７によって出力されたテキスト文書の解析結果（ここでは、上記した図１０に示す意味クラス解析結果）とルール入力部３２２によって入力されたルール情報（第１および第２のルール情報）とを照らし合わせることにより、起動対象サービス（サービス自動呼出し装置３０において起動されるサービス）を決定する。
【０１２３】
上記したようにサービス引数補完情報格納部３２７には補完情報が格納されていないため、ここでは、補完情報は用いられない。
【０１２４】
まず、該当サービス抽出部３２３は、テキスト文書の解析結果（に含まれる文字列）が図３に示す第１のルール情報に含まれる条件に合致するか否かを判定する。具体的には、該当サービス抽出部３２３は、図３に示す第１のルール情報において必須項目として指定されている「data」要素の子要素であって「class」属性を含む当該子要素に該当する情報（文字列）の全てがテキスト文書の解析結果（の該当箇所）に出現する（含まれる）か否かを判定する。必須項目として指定されている「data」要素の子要素であって「class」属性を含む当該子要素に該当する情報の全てがテキスト文書の解析結果に出現すると判定された場合には、該当サービス抽出部３２３は、テキスト文書の解析結果が第１のルール情報に含まれる条件に合致すると判定する。
【０１２５】
この場合、図１０に示す意味クラス解析結果においては、図３に示す第１のルール情報における「class」属性の属性値が「駅」である「data」要素の子要素であって、「must」属性の属性値が「true」である（つまり、必須項目として指定されている）「station」要素に該当する文字列、つまり、意味クラス「駅」が付与されている単語（文字列）がテキスト文書中の該当箇所に出現していない。したがって、テキスト文書の解析結果（に含まれる文字列）は、図３に示す第１のルール情報に含まれる条件に合致しないと判定される。
【０１２６】
なお、テキスト文書中の該当箇所とは、第１のルール情報における「target_distant」要素において指定されている範囲内（ここでは、テキスト文書中の３行以内）である。
【０１２７】
テキスト文書の解析結果が第１のルール情報に含まれる条件に合致しないと判定された場合、該当サービス抽出部３２３は、当該テキスト文書の解析結果（に含まれる文字列）が図３に示す第２のルール情報に含まれる条件に合致するか否かを判定する。
【０１２８】
この場合、図１０に示す意味クラス解析結果においては、図３に示す第２のルール情報における「class」属性の属性値が「住所」である「data」要素の子要素であって、「must」属性の属性値が「true」である（つまり、必須項目として指定されている）「place」要素に該当する文字列、つまり、意味クラス「住所」が付与されている単語（文字列）がテキスト文書中の該当箇所（ここでは、「target_distant」要素において指定されているテキスト文書中の全ての範囲内）に出現している。したがって、テキスト文書の解析結果（に含まれる文字列）は、図３に示す第２のルール情報に含まれる条件に合致すると判定される。
【０１２９】
よって、該当サービス抽出部３２３は、図３に示す第２のルール情報に対応するstationnameサービスを起動対象サービスとして決定（抽出）する。
【０１３０】
次に、ユーザ定義情報入力部３２５は、ユーザ定義情報格納部３２４に格納されているユーザ定義情報を、当該ユーザ定義情報格納部３２４から入力する（読み込む）。この場合、ユーザ定義情報入力部３２５は、上述した図４に示すユーザ定義情報を入力する。
【０１３１】
なお、ユーザ定義情報入力部３２５はユーザ定義情報を入力するが、当該ユーザ定義情報が必ず起動対象サービスの起動において用いられるとは限らない。例えば該当サービス抽出部３２３によって起動対象サービスとして決定されたstationnameサービスの起動にはユーザ定義情報は必要ない（つまり、当該第２のルール情報においては「user」属性を含む要素が記述されていない）ため、当該stationnameサービスの起動においては、ユーザ定義情報は使用されない。
【０１３２】
なお、起動対象サービスの起動にユーザ定義情報を必要としない場合には、ユーザ定義情報入力部３２５は、ユーザ定義情報を入力しない構成としても構わない。
【０１３３】
次に、サービス起動部３２６は、該当サービス抽出部３２３によって起動対象サービスとして決定されたstationnameサービスを起動する。
【０１３４】
この場合、サービス起動部３２６は、テキスト文書の解析結果から、第２のルール情報における「data」要素の子要素である「place」要素に付随する「class」属性の属性値である意味クラス「住所」の情報（当該意味クラス「住所」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図１０に示す意味クラス解析結果から、意味クラス「住所」が付与されている文字列として「東京都府中市△△町１２−３４」を取得する。
【０１３５】
サービス起動部３２６は、取得された「東京都府中市△△町１２−３４」を引数として用いることによって第２のルール情報に対応するstationnameサービス（起動対象サービス）を起動する。これにより、サービス起動部３２６は、stationnameサービスの起動結果として、住所「東京都府中市△△町１２−３４」における最寄り駅の情報（例えば、当該最寄り駅の駅名）を受け取る。ここでは、サービス起動部３２６によって「ＸＸ」が受け取られたものとする。
【０１３６】
ここで、stationnameサービスに対応する第２のルール情報（ここでは、起動対象ルールに対応するルール情報）においては戻り値が設定されている（つまり、<return_value>要素が空要素でない）。したがって、サービス起動部３２６は、受け取られた「ＸＸ」を補完情報としてサービス引数補完情報格納部３２７に格納する。
【０１３７】
図１２は、サービス引数補完情報格納部３２７に格納される補完情報の一例を示す。図１２に示すように、サービス引数補完情報格納部３２７に格納される補完情報には、例えばstationnameサービスの起動結果として受け取られた情報および当該stationnameサービスの引数として用いられた情報のテキスト文書中の出現箇所が含まれる。
【０１３８】
図１２に示す例では、サービス引数補完情報格納部３２７に格納される補完情報は、「{station=ＸＸ,para_id=4}」である。この補完情報によれば、図３に示す第２のルール情報において戻り値として設定されているstationの値が「ＸＸ」であり、当該第２のルール情報に対応するstationnameサービスの引数として用いられた情報（ここでは、住所「東京都府中市△△町１２−３４」）が当該テキスト文書の解析結果における「id」属性の属性値が４である「para」要素の内容として出現することが示されている。
【０１３９】
サービス引数補完情報格納部３２７に補完情報が格納されると、該当サービス抽出部３２３は、テキスト文書の解析結果および当該サービス引数補完情報格納部３２７に格納されている補完情報とルール情報とを照らし合わせることにより、起動対象サービス（サービス自動呼出し装置３０において起動されるサービス）を決定する。
【０１４０】
なお、上記したように第２のルール情報に対応するstationnameサービスは一度起動されているため、ここでは当該stationnameサービスは起動対象サービスとしては決定されない。
【０１４１】
この場合、該当サービス抽出部３２３は、テキスト文書の解析結果およびサービス引数補完情報格納部３２７に格納されている補完情報が図３に示す第１のルール情報に含まれる条件に合致するか否かを判定する。
【０１４２】
上記したように、図１０に示す意味クラス解析結果においては、図３に示す第１のルール情報における「class」属性の属性値が「駅」である「data」要素の子要素であって、「must」属性の属性値が「true」である（つまり、必須項目として指定されている）「station」要素に該当する文字列、つまり、意味クラス「駅」が付与されている単語（文字列）がテキスト文書中の該当箇所に出現していないが、当該「station」要素に該当する文字列は、stationの値として補完情報に含まれている。
【０１４３】
換言すれば、第１のルール情報に含まれる条件に合致するために図１０に示す意味クラス解析結果において不足していた情報が、第２のルール情報に対応するstationnameサービスが起動されることによって取得され、サービス引数補完情報格納部３２７に補完情報として格納されている。
【０１４４】
したがって、テキスト文書の解析結果（に含まれる文字列）およびサービス引数補完情報格納部３２７に格納されている補完情報は、図３に示す第１のルール情報に含まれる条件に合致すると判定される。
【０１４５】
なお、補完情報に含まれる情報（第２のルール情報に対応するstationnameサービスが起動されることによって取得された情報）がテキスト文書中の該当箇所に出現しているか否かは、当該補完情報に含まれる当該stationnameサービスの引数として用いられた情報のテキスト文書中の出現箇所に基づいて判定される。
【０１４６】
以上により、該当サービス抽出部３２３は、図３に示す第１のルール情報に対応する乗り換えサービスを起動対象サービスとして決定（抽出）する。
【０１４７】
次に、ユーザ定義情報入力部３２５は、ユーザ定義情報格納部３２４に格納されているユーザ定義情報を、当該ユーザ定義情報格納部３２４から入力する（読み込む）。上記したように、ユーザ定義情報入力部３２５は、上述した図４に示すユーザ定義情報を入力する。
【０１４８】
ユーザ定義情報入力部３２５によってユーザ定義情報が入力されると、サービス起動部３２６は、該当サービス抽出部３２３によって起動対象サービスとして決定された乗り換えサービスを起動する。
【０１４９】
この場合、サービス起動部３２６は、テキスト文書の解析結果、ユーザ定義情報入力部３２５によって入力されたユーザ定義情報およびサービス引数補完情報格納部３２７に格納されている補完情報から、乗り換えサービスの起動に必要な情報（文字列）を取得する。
【０１５０】
まず、サービス起動部３２６は、テキスト文書の解析結果から、第１のルール情報における「data」要素の子要素である「month」要素、「day」要素、「hour」要素および「minute」要素に該当する文字列を取得する。なお、この第１のルール情報における「data」要素の子要素に該当する情報は、当該第１のルール情報における「target_distant」要素において指定されているテキスト文書（の解析結果）の範囲内から取得される。「target_distant」要素において指定されているテキスト文書（の解析結果）の範囲内に該当する文字列が複数存在する場合には、最初に出現する文字列を取得する。
【０１５１】
具体的には、サービス起動部３２６は、テキスト文書の解析結果から、第１のルール情報における「data」要素の子要素である「month」要素に付随する「class」属性の属性値である意味クラス「月」の情報（当該意味クラス「月」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図１０に示す意味クラス解析結果から、意味クラス「月」が付与されている文字列として「２」を取得する。
【０１５２】
また、サービス起動部３２６は、テキスト文書の解析結果から、第１のルール情報における「data」要素の子要素である「day」要素に付随する「class」属性の属性値である意味クラス「日」の情報（当該意味クラス「日」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図１０に示す意味クラス解析結果から、意味クラス「日」が付与されている文字列として「２０」を取得する。
【０１５３】
同様に、サービス起動部３２６は、テキスト文書の解析結果から、第１のルール情報における「data」要素の子要素である「hour」要素に付随する「class」属性の属性値である意味クラス「時」の情報（当該意味クラス「時」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図１０に示す意味クラス解析結果から、最初に出現する意味クラス「時」が付与されている文字列として「９」を取得する。
【０１５４】
また、サービス起動部３２６は、テキスト文書の解析結果から、第１のルール情報における「data」要素の子要素である「minute」要素に付随する「class」属性の属性値である意味クラス「分」の情報（当該意味クラス「分」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図１０に示す意味クラス解析結果から、最初に出現する意味クラス「分」が付与されている文字列として「３０」を取得する。
【０１５５】
次に、サービス起動部３２６は、ユーザ定義情報入力部３２５によって入力されたユーザ定義情報（ここでは、上述した図４に示すユーザ定義情報）から、第１のルール情報における「data」要素の子要素である「station」要素に付随する「user」属性の属性値である「home_station」の情報として、当該ユーザ定義情報に含まれる「home_station」要素の値「府中本町」を取得する。
【０１５６】
また、サービス起動部３２６は、サービス引数補完情報格納部３２７に格納されている補完情報（ここでは、上述した図１２に示す補完情報）から、第１のルール情報における「data」要素の子要素である「station」要素に該当する情報（当該「station」要素に付随する「class」属性の属性値である意味クラス「駅」の情報）として、当該補完情報に含まれるstationの値、つまり、図１２に示す「ＸＸ」を取得する。
【０１５７】
上記したように乗り換えサービスの起動に必要な情報（文字列）が取得されると、サービス起動部３２６は、当該取得された各文字列を引数として用いることによって乗り換えサービスを起動する。
【０１５８】
ここで、乗り換えサービスに対応する第１のルール情報においては、戻り値が設定されていない（つまり、<return_value>要素が空要素である）。このため、サービス起動部３２６によって起動対象サービスである乗り換えサービスが起動されると、サービス処理結果出力部３２８は、当該乗り換えサービスの起動結果を表示（出力）する。
【０１５９】
なお、上記したような処理が実行されると、他に起動されるサービスが存在しないため、サービス自動呼出し装置３０の処理は終了される。
【０１６０】
ここで、上記したサービス自動呼出し装置３０の処理が実行される場合における例えばディスプレイ等（図示せず）の表示画面の遷移について説明する。
【０１６１】
サービス自動呼出し装置３０の処理が実行される場合には、まず、テキスト文書を入力するための画面（テキスト文書入力画面）として例えばＧＵＩ（Graphical User Interface）画面が表示される。ユーザは、このＧＵＩ画面を使用することによってテキスト文書からサービスを自動的に起動させることができる。
【０１６２】
図１３は、ユーザによって使用されるＧＵＩ画面の一例を示す。図１３に示すように、このＧＵＩ画面１００には、テキストエリア１０１およびサービス起動ボタン１０２が設けられている。
【０１６３】
ユーザは、このＧＵＩ画面１００に設けられているテキストエリア１０１に例えばテキスト文書を貼り付け、サービス起動ボタン１０２を押下（指定）することで、当該テキスト文書がサービス自動呼出し装置３０に入力され、上記したように当該テキスト文書の解析が行われた後、ルール情報に従ってサービスが自動起動される。
【０１６４】
なお、図１３に示すＧＵＩ画面１００は、例えばＷｅｂブラウザを利用したものでもよいし、クライアントアプリケーションでもよい。
【０１６５】
ここでは、図１３に示すように画面にボタンを実装することによってテキスト文書からサービスを起動させるものとして説明したが、例えば画面のメニューバーからサービスを起動させるように実装しても構わない。また、ユーザの操作を必要とすることなく、テキスト文書の入力により自動的にサービスが起動される構成であっても構わない。
【０１６６】
また、テキスト文書からサービスを起動する方法としては、上記した方法以外に、例えばテキスト入力画面でテキストの必要な部分をドラッグし、右クリックでメニューを表示させ、そこからサービスを自動的に起動させる方法が考えられる。また、Ｗｅｂブラウザのプラグイン機能として、Ｗｅｂ上のテキスト情報がテキスト文書として入力されても構わない。
【０１６７】
上記したように図１３に示すＧＵＩ画面１００において例えばユーザによってサービスの起動が指示されると、自動的にサービスが起動され、当該サービスの起動結果が表示（出力）される。
【０１６８】
ここで、図１４は、サービスの起動結果が表示された場合の表示画面の一例を示す。ここでは、上記した図３に示す第１のルール情報に対応する乗り換えサービスが起動された場合の結果が表示されたものとする。
【０１６９】
第１のルール情報に対応する乗り換えサービスが起動された場合、図１４に示すように、当該乗り換えサービスの起動における途中画面１１０が表示された後に、当該乗り換えサービスの起動結果が最終画面１２０として表示される。これにより、ユーザは、上記した図７に示すテキスト文書に応じて自動的に起動された乗り換えサービスの起動結果を確認することができる。
【０１７０】
ここでは、図１３に示すＧＵＩ画面１００においてユーザによってサービスの起動が指示されると当該サービスの起動における途中画面１１０が表示された後に当該サービスの起動における最終画面１２０が表示されるものとして説明したが、当該途中画面１１０は表示されず、最終画面１２０のみが表示されても構わない。
【０１７１】
なお、図１３に示すＧＵＩ画面１００においてユーザによってサービスの起動が指示された場合であっても、サービス自動呼出し装置３０において起動されるサービスが存在しない（つまり、テキスト文書が全てのルール情報に含まれる条件に合致しない）場合には、サービスは起動されないため、例えば図１５に示すような表示画面１３０が表示される。この表示画面１３０には、サービスが起動されない旨、例えば「サービスを起動できませんでした。」等のメッセージが表示される。
【０１７２】
また、サービスの起動結果を出力する方法としては、例えば起動されたサービスの画面の全てを出力する、起動されたサービスの画面を１つの画面にマージして出力する、起動されたサービスから必要な情報を抜き取ってテキストで出力する、起動されたサービスから必要な情報を抜き取ってＥｍａｉｌで送信する、または、起動されたサービス画面を印刷して出力する等の方法が考えられる。
【０１７３】
上記したように本実施形態においては、ユーザによって指定されたテキスト文書を解析し、当該解析結果に基づいて当該テキスト文書に含まれる文字列がルール情報に含まれる条件に合致するか否かが判定される。本実施形態においては、テキスト文書に含まれる文字列がルール情報に含まれる条件に合致すると判定された場合、当該条件に合致すると判定されたテキスト文書に含まれる文字列に基づいて当該ルール情報に対応するサービスが自動的に起動され、当該サービスの起動結果が出力される。
【０１７４】
これにより、本実施形態においては、ユーザによって指定されたテキスト文書に応じて、アプリケーションを含むサービスを自動的に起動することが可能となる。
【０１７５】
また、本実施形態においては、例えば第１のサービスに対応する第１のルール情報および当該第１のサービスを起動するために必要な補完情報を取得するための第２のサービスに対応する第２のルール情報がルール格納部３２１に予め用意されている。
【０１７６】
この場合、本実施形態においては、ユーザによって指定されたテキスト文書を解析し、当該解析結果に基づいて当該テキスト文書に含まれる文字列が第１のルール情報に含まれる条件（第１の条件）に合致するかが判定され、当該テキスト文書に含まれる文字列が当該条件に合致しないと判定された場合には、当該テキスト文書に含まれる文字列が第２のルール情報に含まれる条件（第２の条件）に合致するか否かが判定される。本実施形態においては、テキスト文書に含まれる文字列が第２のルール情報に含まれる条件に合致すると判定された場合、当該条件に合致すると判定されたテキスト文書に含まれる文字列に基づいて当該第２のルール情報に対応する第２のサービスを自動的に起動することにより、第１のサービスを起動するために必要な補完情報が取得され、当該補完情報がサービス引数補完情報格納部３２７に格納される。本実施形態においては、テキスト文書の解析結果に基づいて当該テキスト文書に含まれる文字列およびサービス引数補完情報格納部３２７に格納された補完情報が第１のルール情報に含まれる条件に合致するか否かが判定される。本実施形態においては、テキスト文書に含まれる文字列および補完情報が第１のルール情報に含まれる条件に合致すると判定された場合、当該条件に合致すると判定されたテキスト文書に含まれる文字列および当該補完情報に基づいて当該第１のルールに対応する第１のサービスが自動的に起動され、当該第１のサービスの起動結果が出力される。
【０１７７】
これにより、本実施形態においては、第１のサービスを起動する際に必要な情報（文字列）がテキスト文書中に不足しているような場合であっても、第２のサービスを自動的に起動することによって補完情報が取得されるため、当該不足している情報を補って第１のサービスを自動的に起動することが可能となる。
【０１７８】
［第２の実施形態］
次に、本発明の第２の実施形態について説明する。なお、本実施形態に係るサービス自動呼出し装置の構成は、前述した第１の実施形態と同様であるため、適宜、図２を用いて説明する。
【０１７９】
前述した第１の実施形態においては、ルール格納部３２１に格納されているルール情報における「data」要素の子要素に該当する全ての情報がテキスト文書、ユーザ定義情報および補完情報から取得されることにより当該ルール情報に対応するサービス（起動対象サービス）が起動され、その起動結果（最終結果）がユーザに対して提示される場合について説明したが、本実施形態においては、ルール情報における「data」要素の子要素のうち必須項目として指定されていない子要素に該当する情報が取得できない（つまり、当該ルール情報に対応するサービスを起動するための情報が不足している）ために当該サービス（起動対象サービス）の途中結果までがユーザに対して提示される場合について説明する。
【０１８０】
ここで、図１６は、本実施形態におけるルール格納部３２１に格納されているルール情報のデータ構造の一例を示す。前述した第１の実施形態において説明した図３と同様に、ルール格納部３２１に格納されているルール情報は、ＸＭＬ形式で表現されるものとする。
【０１８１】
以下、図１６に示すルール情報の各項目について説明するが、前述した図３において説明した項目と同様の項目についてはその詳しい説明を省略する。
【０１８２】
なお、図１６においては、３行目の「rule」要素の内容によって示される１つのルール情報（サービス名が「スケジュール管理サービス」であるサービスに対応するルール情報）が示されている。以下の説明においては、この図１６に示すルール情報に対応するサービスをスケジュール管理サービスと称する。
【０１８３】
前述したように、「data」要素は、起動されるサービスに必要なテキスト文書中の情報（文字列）および当該文字列が割り当てられるサービスの引数を子要素として持つ。
【０１８４】
図１６に示すルール情報では、「data」要素の子要素には、「month」要素、「day」要素、「hour」要素、「minute」要素、「hour」要素、「minute」要素、「schedule」要素および「place」要素が含まれる。
【０１８５】
「data」要素の子要素に付随する「class」属性および「must」属性については、前述した図３において説明した通りであるためその詳しい説明を省略する。なお、「data」要素の子要素の内容についても同様である。
【０１８６】
前述した図３に示すルール情報と比べると、図１６に示すルール情報においては、「data」要素の子要素の中に「must」属性の属性値が「false」である要素（ここでは、「schedule」要素および「place」要素）が含まれている点が前述した図３に示すルール情報とは異なる。
【０１８７】
上記したように、「must」属性の属性値が「false」である要素は、必須項目でない（必須項目として指定されていない）要素（「data」要素の子要素）である。一方、「must」属性の属性値が「true」である要素は、必須項目である（必須項目として指定されている）要素（「data」要素の子要素）である。
【０１８８】
ルール情報における「must」属性の属性値が「false」である要素（必須項目でない要素）に該当する情報（の一部または全部）が例えばテキスト文書等に出現しない場合であっても、当該「must」属性の属性値が「true」である要素（必須項目である要素）に該当する情報の全てがテキスト文書等に出現する場合には、当該ルール情報に対応するサービスは、途中まで起動されることになる。
【０１８９】
なお、図１６に示すルール情報に対応するサービス（スケジュール管理サービス）は、例えばテキスト文書に記述されているイベントをスケジュールに登録し、スケジュール管理を行うサービスである。
【０１９０】
図１７は、本実施形態におけるユーザ定義情報格納部３２４に格納されているユーザ定義情報のデータ構造の一例を示す。前述した第１の実施形態において説明した図４と同様に、ユーザ定義情報格納部３２４に格納されているユーザ定義情報は、ＸＭＬ形式で表現されるものとする。
【０１９１】
以下、図１７に示すユーザ定義情報の各項目について説明するが、前述した図４において説明した項目と同様の項目についてはその詳しい説明を省略する。
【０１９２】
図１７に示す「スケジュール管理サービス（サービス名）」要素は、当該スケジュール管理サービス（図１６に示すルール情報に対応するスケジュール管理サービス）を起動する際に必要となる情報を子要素として持つ。
【０１９３】
図１７に示す例では、「スケジュール管理サービス」要素の子要素としては、「ID」要素、「passwd」要素および「year」要素が含まれる。「year」要素の内容は、現在の年（西暦）を示す。なお、「ID」要素の内容および「passwd」要素の内容については、前述した図４と同様であるためその詳しい説明を省略する。
【０１９４】
以下、本実施形態に係るサービス自動呼出し装置３０の動作について具体的に説明する。なお、本実施形態に係るサービス自動呼出し装置３０の処理手順については、前述した図５および図６において説明した通りであるためその詳しい説明を省略する。
【０１９５】
ここでは、ルール格納部３２１には、上述した図１６に示すルール情報が格納されているものとする。また、ユーザ定義情報格納部３２４には、上述した図１７に示すユーザ定義情報が格納されているものとする。また、サービス引数補完情報格納部３２７には、補完情報は格納されていないものとする。
【０１９６】
まず、テキスト文書入力部３１１は、ユーザの操作に応じてテキスト文書を入力する。ここでは、テキスト文書入力部３１１によって図１８に示すテキスト文書が入力されたものとする。
【０１９７】
次に、論理構造抽出処理部３１２は、テキスト文書入力部３１１によって入力されたテキスト文書を論理構造解析する。これにより、テキスト文書中の段落または改行等の論理構造が抽出される。
【０１９８】
ここで、図１９は、図１８に示すテキスト文書に対して論理構造解析が実行された結果（論理構造抽出結果）の一例を示す。
【０１９９】
図１８に示すテキスト文書に対して論理構造解析が実行された場合、図１９に示すように、当該テキスト文書の改行または空行（の情報）を使用して、当該テキスト文書中において例えば１文とみなされるものに「para」要素（ＸＭＬにおけるタグ）が付与される。
【０２００】
なお、「para」要素に付随する「id」属性の属性値は、テキスト文書の上から順に自動的に付与される。
【０２０１】
上記したように論理構造抽出処理部３１２によって論理構造解析が実行されると、形態素解析部３１４は、形態素解析辞書格納部３１３に格納されている形態素解析辞書を参照して、テキスト文書に対する論理構造抽出結果に対して形態素解析を実行する。これにより、論理構造抽出結果に含まれる文字列（テキスト文書中の文字列）が単語に切り分けられ（分割され）、当該単語に対して品詞が付与される。
【０２０２】
ここで、図２０は、図１９に示す論理構造抽出結果に対して形態素解析が実行された結果（形態素解析結果）の一例を示す。
【０２０３】
図１９に示す論理構造抽出結果に対して形態素解析が実行された場合には、図２０に示すように、当該論理構造抽出結果における「para」要素の内容（中身）に対して形態素解析が行われることによって、当該「para」要素の内容における各単語の品詞名がＸＭＬ要素（「tag」要素）に付随する属性（「parse」属性）の属性値として当該単語に付与されている。
【０２０４】
図２０に示す例では、図１９に示す論理構造抽出結果における例えば「id」属性の属性値が１である「para」要素の内容「各位」に対して形態素解析が行われることによって、単語「各位」には「tag」要素に付随する「parse」属性の属性値として品詞名「名詞」が付与されている。
【０２０５】
ここでは、図１９に示す論理構造抽出結果における例えば「id」属性の属性値が１である「para」要素の内容に対して形態素解析が行われた場合について説明したが、他の「para」要素の内容について形態素解析が行われた場合についても同様であるため、その詳しい説明を省略する。
【０２０６】
次に、意味クラス解析部３１６は、意味クラス辞書格納部３１５に格納されている意味クラス辞書を参照して、形態素解析部３１４による形態素解析結果に対して意味クラス解析を実行する。これにより、形態素解析結果に含まれる単語（テキスト文書中の文字列）に対して当該単語の意味を表す意味クラスが付与される。
【０２０７】
ここで、図２１は、図２０に示す形態素解析結果に対して意味クラス解析が実行された結果（意味クラス解析結果）の一例を示す。
【０２０８】
図２０に示す形態素解析結果に対して意味クラス解析が実行された場合には、図２１に示すように、当該形態素解析結果におけるＸＭＬ要素（「tag」要素）の内容（単語）の意味を表す意味クラスが当該「tag」要素に付随する属性（「class」属性）の属性値として付与されている。
【０２０９】
図２１に示す例では、図２０に示す形態素解析結果における例えば「id」属性の属性値が２である「para」要素の内容が形態素解析されることによって分割された例えば単語「ＹＹ」を内容とする「tag」要素に付随する「class」属性の属性値として、当該単語「ＹＹ」の意味を表す意味クラス「人名」が付与されている。
【０２１０】
ここでは、図２０に示す形態素解析結果における単語「ＹＹ」を内容とする「tag」要素に付随する「class」属性の属性値（つまり、当該単語「ＹＹ」の意味を表す意味クラス）について説明したが、他の単語についても同様であるため、その詳しい説明を省略する。
【０２１１】
上記したように意味クラス解析部３１６によって意味クラス解析が実行されると、テキスト解析結果出力部３１７は、当該意味クラス解析結果（テキスト文書の解析結果）をサービス起動処理部３２に対して出力する。
【０２１２】
次に、ルール入力部３２２は、ルール格納部３２１に格納されているルール情報を、当該ルール格納部３２１から入力する（読み込む）。この場合、ルール入力部３２２は、上述した図１６に示すルール情報（スケジュール管理サービスに対応するルール情報）を入力する。
【０２１３】
該当サービス抽出部３２３は、テキスト解析結果出力部３１７によって出力されたテキスト文書の解析結果（ここでは、上記した図２１に示す意味クラス解析結果）とルール入力部３２２によって入力されたルール情報とを照らし合わせることにより、起動対象サービス（サービス自動呼出し装置３０において起動されるサービス）を決定する。
【０２１４】
上記したようにサービス引数補完情報格納部３２７には補完情報が格納されていないため、ここでは、補完情報は用いられない。
【０２１５】
まず、該当サービス抽出部３２３は、テキスト文書の解析結果（に含まれる文字列）が図１６に示すルール情報に含まれる条件に合致するか否かを判定する。具体的には、該当サービス抽出部３２３は、図１６に示すルール情報において必須項目として指定されている「data」要素の子要素であって「class」属性を含む当該子要素に該当する情報（文字列）の全てがテキスト文書の解析結果（の該当箇所）に出現するか否かを判定する。必須項目として指定されている「data」要素の子要素であって「class」属性を含む当該子要素に該当する情報の全てがテキスト文書の解析結果に出現すると判定された場合には、該当サービス抽出部３２３は、テキスト文書の解析結果がルール情報に含まれる条件に合致すると判定する。
【０２１６】
ここで、図１６に示すルール情報において、「must」属性の属性値が「true」である要素（つまり、必須項目として指定されている「data」要素の子要素）は、「month」要素、「day」要素、「hour」要素、「minute」要素、「hour」要素および「minute」要素である。この場合、図２１に示す意味クラス解析結果においては、「month」要素、「day」要素、「hour」要素、「minute」要素、「hour」要素および「minute」要素の各要素に該当する情報（文字列）が該当箇所（ここでは、図１６に示すルール情報における「target_distant」要素において指定されている範囲内、つまり、テキスト文書中における１行以内）に出現する。
【０２１７】
具体的には、図２１に示す意味クラス解析結果においては、必須項目として指定されている「month」要素に付随する「class」属性の属性値である意味クラス「月」が付与されている文字列、「day」要素に付随する「class」属性の属性値である意味クラス「日」が付与されている文字列、「hour」要素に付随する「class」属性の属性値である意味クラス「時」が付与されている文字列、「minute」要素に付随する「class」属性の属性値である意味クラス「分」が付与されている文字列、「hour」要素に付随する「class」属性の属性値である意味クラス「時」が付与されている文字列および「minute」要素に付随する「class」属性の属性値である意味クラス「分」が付与されている文字列の全てが該当箇所に出現する。したがって、テキスト文書の解析結果（に含まれる文字列）は、図１６に示すルール情報に含まれる条件に合致すると判定される。
【０２１８】
よって、該当サービス抽出部３２３は、図１６に示すルール情報に対応するスケジュール管理サービスを起動対象サービスとして決定（抽出）する。
【０２１９】
次に、ユーザ定義情報入力部３２５は、ユーザ定義情報格納部３２４に格納されているユーザ定義情報を、当該ユーザ定義情報格納部３２４から入力する（読み込む）。上記したように、ユーザ定義情報入力部３２５は、上述した図１７に示すユーザ定義情報入力する。
【０２２０】
ここで、図１６に示すルール情報においては「data」要素の子要素には「user」属性を含む要素が存在しない。つまり、該当サービス抽出部３２３によって起動対象サービスとして決定されたスケジュール管理サービスの起動にはユーザ定義情報を必要としない。したがって、このスケジュール管理サービスの起動においては、ユーザ定義情報は使用されない。なお、該当サービス抽出部３２３によって起動対象サービスとして決定されたスケジュール管理サービスの起動に例えばユーザＩＤ、パスワードまたは現在の年（西暦）等の情報が必要な場合には、ユーザ定義情報入力部３２５によって入力されたユーザ定義情報が用いられる。
【０２２１】
次に、サービス起動部３２６は、該当サービス抽出部３２３によって起動対象サービスとして決定されたスケジュール管理サービスを起動する。
【０２２２】
この場合、サービス起動部３２６は、テキスト文書の解析結果から、スケジュール管理サービスの起動に必要な情報（文字列）を取得する。サービス起動部３２６は、テキスト文書の解析結果から、図１６に示すルール情報における「data」要素の子要素に該当する情報（文字列）を取得する。なお、この図１６に示すルール情報における「data」要素の子要素に該当する情報は、当該ルール情報における「target_distant」要素において指定されているテキスト文書（の解析結果）の範囲内から取得される。
【０２２３】
具体的には、サービス起動部３２６は、テキスト文書の解析結果から、図１６に示すルール情報における「data」要素の子要素である「month」要素に付随する「class」属性の属性値である意味クラス「月」の情報（当該意味クラス「月」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図２１に示す意味クラス解析結果から、意味クラス「月」が付与されている文字列として「３」を取得する。
【０２２４】
また、サービス起動部３２６は、テキスト文書の解析結果から、「month」要素に付随する「class」属性の属性値である意味クラス「日」の情報（当該意味クラス「日」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図２１に示す意味クラス解析結果から、意味クラス「日」が付与されている文字列として「１９」を取得する。
【０２２５】
同様に、サービス起動部３２６は、テキスト文書の解析結果から、「month」要素に付随する「class」属性の属性値である意味クラス「時」の情報（当該意味クラス「時」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図２１に示す意味クラス解析結果から、意味クラス「時」が付与されている文字列として「１０」を取得する。
【０２２６】
また、サービス起動部３２６は、テキスト文書の解析結果から、「month」要素に付随する「class」属性の属性値である意味クラス「分」の情報（当該意味クラス「分」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図２１に示す意味クラス解析結果から、意味クラス「分」が付与されている文字列として「００」を取得する。
【０２２７】
更に、サービス起動部３２６は、テキスト文書の解析結果から、「month」要素に付随する「class」属性の属性値である意味クラス「時」の情報（当該意味クラス「時」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図２１に示す意味クラス解析結果から、意味クラス「時」が付与されている文字列として「１２」を取得する。
【０２２８】
また、サービス起動部３２６は、テキスト文書の解析結果から、「month」要素に付随する「class」属性の属性値である意味クラス「分」の情報（当該意味クラス「分」が付与されている文字列）を取得する。ここでは、サービス起動部３２６は、図２１に示す意味クラス解析結果から、意味クラス「分」が付与されている文字列として「００」を取得する。
【０２２９】
なお、図２１に示す意味クラス解析結果においては、図１６に示すルール情報における「class」属性の属性値が「イベント名」である「data」要素の子要素であって、「must」属性の属性値が「false」である（つまり必須項目として指定されていない）「schedule」要素および「class」属性の属性値が「部屋名」である「data」要素の子要素であって、「must」属性の属性値が「false」である「place」要素に該当する情報（文字列）はテキスト文書中の該当箇所に出現していない。したがって、この「data」の子要素である「schedule」要素および「place」要素に該当する情報は、テキスト文書の解析結果からは取得されない。
【０２３０】
つまり、サービス起動部３２６は、上記した取得された文字列（つまり、「data」の子要素のうち、「schedule」要素および「place」要素以外の子要素に該当する情報）のみを用いてスケジュール管理サービスを起動する。換言すれば、サービス起動部３２６は、取得された各文字列を引数として用いることによってスケジュール管理サービスを起動する。なお、この場合には、「data」要素の子要素である「schedule」要素および「place」要素に該当する情報が不足しているため、スケジュール管理サービスは途中まで起動される。
【０２３１】
ここで、スケジュール管理サービスに対応するルール情報（図１６に示すルール情報）においては戻り値は設定されてない（つまり、<return_value>要素が空要素である）。このため、サービス起動部３２６によってスケジュール管理サービスが起動されると、サービス処理結果出力部３２８は、当該スケジュール管理サービスの起動結果を表示（出力）する。ここでは、上記したようにスケジュール管理サービスは途中まで起動されるため、当該途中までのスケジュール管理サービスの起動結果が出力される。
【０２３２】
図２２は、サービスの起動結果が表示された場合の表示画面の一例を示す。ここでは、図１６に示すルール情報に対応するスケジュール管理サービスが途中まで起動された場合の結果が表示されたものとする。
【０２３３】
上記したようにスケジュール管理サービスが途中まで起動された場合には、表示画面２００には、図２１に示すようなスケジュール管理サービスの起動結果（途中結果）が表示される。
【０２３４】
つまり、表示画面２００においては、テキスト文書の解析結果から取得（抽出）された情報（文字列）については例えばＨＴＭＬフォーム等に格納されており、当該テキスト文書の解析結果から取得されていない情報（つまり、上記した図１６に示すルール情報における「data」要素の子要素である「schedule」要素および「place」要素に該当する情報）については、ユーザによって補完することが可能となっている。
【０２３５】
換言すれば、表示画面２００は、スケジュール管理サービスにおける入力画面である。すなわち、この表示画面２００に対してユーザが必要な情報（ここでは、タイトルおよび場所）を補完し、例えば表示画面２００上の登録ボタン２０１を指定することによってスケジュールの登録が行われ、当該スケジュール管理サービスの起動における最終結果が出力される。つまり、この場合においては、スケジュール管理サービスの起動における最終結果を得るためには、ユーザのインタラクションが入る。
【０２３６】
上記したように本実施形態においては、ユーザによって指定されたテキスト文書の解析結果からルール情報において必須項目として指定されている「data」要素の子要素に該当する情報のみが取得され、必須項目として指定されていない子要素に該当する情報が取得されない場合には、当該ルール情報に対応するサービスが途中まで起動され、当該サービスの起動結果として当該サービスが途中まで起動された結果（途中結果）が出力される。
【０２３７】
また、本実施形態においては、出力されたサービスの起動における途中結果に対してユーザによって必要な情報が補完された場合には、当該サービスの起動における最終結果が出力される。
【０２３８】
これにより、本実施形態においては、ユーザによって指定されたテキスト文書のみからではサービスの起動における最終結果を得るために必要な情報の全てを得ることができない場合であっても、サービスの起動における途中結果を出力し、ユーザに対して必要な情報の補完を促すことにより、当該サービスを自動的に起動し、当該サービスの起動における最終結果を得ることが可能となる。
【０２３９】
なお、本願発明は、上記各実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記各実施形態に開示されている複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、各実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態に亘る構成要素を適宜組合せてもよい。  
【符号の説明】
【０２４０】
１０…コンピュータ、２０…外部記憶装置、３０…サービス自動呼出し装置、３１…テキスト文書処理部、３２…サービス起動処理部、３１１…テキスト文書入力部、３１２…論理構造抽出処理部、３１３…形態素解析辞書格納部、３１４…形態素解析部、３１５…意味クラス辞書格納部、３１６…意味クラス解析部、３１７…テキスト解析結果出力部、３２１…ルール格納部、３２２…ルール入力部、３２３…該当サービス抽出部、３２４…ユーザ定義情報格納部、３２５…ユーザ定義情報入力部、３２６…サービス起動部、３２７…サービス引数補完情報格納部、３２８…サービス処理結果出力部。
【図１】
2011128717.tif 000003
【図２】
2011128717.tif 000004
【図３】
2011128717.tif 000005
【図４】
2011128717.tif 000006
【図５】
2011128717.tif 000007
【図６】
2011128717.tif 000008
【図７】
2011128717.tif 000009
【図８】
2011128717.tif 000010
【図９】
2011128717.tif 000011
【図１０】
2011128717.tif 000012
【図１１】
2011128717.tif 000013
【図１２】
2011128717.tif 000014
【図１３】
2011128717.tif 000015
【図１４】
2011128717.tif 000016
【図１５】
2011128717.tif 000017
【図１６】
2011128717.tif 000018
【図１７】
2011128717.tif 000019
【図１８】
2011128717.tif 000020
【図１９】
2011128717.tif 000021
【図２０】
2011128717.tif 000022
【図２１】
2011128717.tif 000023
【図２２】
2011128717.tif 000024