(57)【要約】      （修正有）【課題】  日常言語により表現された入力プログラムの意味を理解してコンピュータ処理を実行することができる、日常言語プログラム処理システムの提供。【解決手段】  言語理解・生成モジュール１１は各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する。プログラム正規化モジュール１２はテキスト理解結果５２に基づいて、コマンドに関する知識２２等を利用して、入力プログラム５１に含まれる各文を実行可能な形式に書き換えて正規化する。実行プログラム生成モジュール１３はプログラム正規化結果５３と、修辞構造の情報とに基づいて、入力プログラム５１に含まれる各文の正規化処理の結果を統合する。プログラム実行モジュール１４において、実行プログラム生成モジュール１３により生成された実行プログラム５４を解釈し、アプリケーションソフトウェアまたはハードウェア３３上で実行されるコマンドに変換して実行する。【選択図】  図１
2005228075.tif 000002
【特許請求の範囲】
【請求項１】
日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理システムにおいて、
語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用して、ユーザが入力した入力プログラムであって日常言語により表現された一連のコンピュータ操作指示を表す複数の文を含む入力プログラムのテキスト理解を行い、当該入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する言語理解・生成モジュールと、
前記言語理解・生成モジュールにより得られたテキスト理解結果に基づいて、あらかじめ保持された知識を利用して、前記入力プログラムに含まれる各文を実行可能な形式に書き換えて正規化するプログラム正規化モジュールと、
前記プログラム正規化モジュールにより得られたプログラム正規化結果と、前記言語理解・生成モジュールにより得られた修辞構造の情報とに基づいて、前記入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する実行プログラム生成モジュールと、
前記実行プログラム生成モジュールにより生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行するプログラム実行モジュールとを備えたことを特徴とする日常言語プログラム処理システム。
【請求項２】
前記言語理解・生成モジュールは、前記入力プログラムに含まれる各文の語彙文法特徴および意味特徴に基づいて当該各文の意味内容を表す概念構造を同定することを特徴とする、請求項１に記載のシステム。
【請求項３】
前記言語理解・生成モジュールは、前記入力プログラムに含まれる各文内の接続表現に基づいて当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項１または２に記載のシステム。
【請求項４】
前記言語理解・生成モジュールは、前記接続表現に加えて、前記各文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報に基づいて、当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項３に記載のシステム。
【請求項５】
前記言語理解・生成モジュールは、前記接続表現および前記タイプ情報に加えて、前記各文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報に基づいて、当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項４に記載のシステム。
【請求項６】
前記プログラム正規化モジュールは、前記知識として、コンピュータ上で実行されるコマンドに関する知識、前記入力プログラムに含まれるユーザの表現を意味内容を変えることなくコンピュータ上で実行可能な表現に書き換えるための換言用知識、および事実的な情報に関する事実的知識を用いることを特徴とする、請求項１乃至５のいずれか一項に記載のシステム。
【請求項７】
前記プログラム正規化モジュールは、前記入力プログラムに含まれる各文ごとに条件部分、操作部分、ループ範囲およびループ要素を抽出することにより当該各文を実行可能な形式に書き換えることを特徴とする、請求項１乃至６のいずれか一項に記載のシステム。
【請求項８】
前記実行プログラム生成モジュールは、前記入力プログラムに含まれる各文間の関係を表す修辞構造を参照して子ユニットから親ユニットの方向に向かって当該各文の正規化処理の結果を統合することを特徴とする、請求項１乃至７のいずれか一項に記載のシステム。
【請求項９】
前記プログラム正規化モジュール、前記実行プログラム生成モジュールおよび前記プログラム実行モジュールのうちの少なくとも一つのモジュールは、当該各モジュールでの処理に必要な情報が不足したり曖昧だったときに前記言語理解・生成モジュールにより確認または問い合わせための言語テキストを生成してユーザに提示することを特徴とする、請求項１乃至８のいずれか一項に記載のシステム。
【請求項１０】
前記入力プログラムを入力するユーザとの間における言語テキストのやりとりを制御するプランモジュールをさらに備えたことを特徴とする、請求項１乃至９のいずれか一項に記載のシステム。
【請求項１１】
日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理方法において、
語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用して、ユーザが入力した入力プログラムであって日常言語により表現した一連のコンピュータ操作指示を表す複数の文を含む入力プログラムのテキスト理解を行い、当該入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する第１のステップと、
前記第１のステップで得られたテキスト理解結果に基づいて、あらかじめ保持された知識を利用して、前記入力プログラムに含まれる各文を実行可能な形式に書き換える第２のステップと、
前記第２のステップで得られたプログラム正規化結果と、前記第１のステップで得られた修辞構造の情報とに基づいて、前記入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する第３のステップと、
前記第３のステップで生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行する第４のステップとを含むことを特徴とする日常言語プログラム処理方法。
【請求項１２】
前記第１のステップにおいて、前記入力プログラムに含まれる各文の語彙文法特徴および意味特徴に基づいて当該各文の意味内容を表す概念構造を同定することを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記第１のステップにおいて、前記入力プログラムに含まれる各文内の接続表現に基づいて当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項１１または１２に記載の方法。
【請求項１４】
前記第１のステップにおいて、前記接続表現に加えて、前記各文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報に基づいて、当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項１３に記載の方法。
【請求項１５】
前記第１のステップにおいて、前記接続表現および前記タイプ情報に加えて、前記各文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報に基づいて、当該各文間の関係を表す修辞構造を同定することを特徴とする、請求項１４に記載の方法。
【請求項１６】
前記第２のステップにおいて、前記知識として、コンピュータ上で実行されるコマンドに関する知識、前記入力プログラムに含まれるユーザの表現を意味内容を変えることなくコンピュータ上で実行可能な表現に書き換えるための換言用知識、および事実的な情報に関する事実的知識を用いることを特徴とする、請求項１１乃至１５のいずれか一項に記載の方法。
【請求項１７】
前記第２のステップにおいて、前記入力プログラムに含まれる各文ごとに条件部分、操作部分、ループ範囲およびループ要素を抽出することにより当該各文を実行可能な形式に書き換えることを特徴とする、請求項１１乃至１６のいずれか一項に記載の方法。
【請求項１８】
前記第３のステップにおいて、前記入力プログラムに含まれる各文間の関係を表す修辞構造を参照して子ユニットから親ユニットの方向に向かって当該各文の正規化処理の結果を統合することを特徴とする、請求項１１乃至１７のいずれか一項に記載の方法。
【請求項１９】
日常言語により表現された一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定する修辞構造解析方法において、
意味内容を表す概念構造が同定された複数の修辞ユニットを準備する第１のステップと、
前記第１のステップで準備された複数の修辞ユニットに含まれる一つ以上の文内の接続表現を抽出する第２のステップと、
前記第１のステップで準備された複数の修辞ユニットに含まれる一つ以上の文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報を特定する第３のステップと、
前記第２のステップで抽出された接続表現および前記第３のステップで特定されたタイプ情報に基づいて、前記複数の修辞ユニット間の関係を表す修辞構造を同定する第４のステップとを含むことを特徴とする、修辞構造解析方法。
【請求項２０】
前記第１のステップで準備された複数の修辞ユニットに含まれる一つ以上の文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報を特定する第５のステップをさらに含み、
前記第４のステップにおいて、前記第２のステップで抽出された接続表現および前記第３のステップで特定されたタイプ情報に加えて、前記第５のステップで特定された意味内容関係情報に基づいて、前記複数の修辞ユニット間の関係を表す修辞構造を同定することを特徴とする、請求項１９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、人間が日常的に用いる言語（日常言語）の意味を理解して情報処理を行う日常言語コンピューティングシステムに係り、とりわけ、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理システムおよびその方法に関する。また、本発明は、このような日常言語プログラム処理システムにおいて入力プログラムの意味を理解する際に好適に用いられる修辞構造解析方法に関する。
【背景技術】
【０００２】
近年、情報処理技術などの急速な進歩により、コンピュータが我々の生活に急速に普及してきている。しかしながら、コンピュータを十分に活用できる人は専門的知識を持っている人に限られており、コンピュータを使える者と使えない者との間の情報技術格差がますます広がっていくものと考えられている。
【０００３】
このような状況において本発明者らは、日常生活において家電製品と同じような感覚で誰でも簡単にコンピュータを扱えるようにするため、「日常言語コンピューティング」という発想に基づき、ユーザとコンピュータとが日常言語で対話することができる新しいコンピュータシステムの開発を進めている（特許文献１〜３参照）。
【０００４】
一般に、ユーザがコンピュータを始めとする情報機器を操作する上で大きな問題となるのは、情報機器に対して複雑な条件や手順を伴う操作の指示を与えるのが難しいということである。
【０００５】
このような問題を解決するため、従来においては、自然言語によるプログラミングの技術が既に幾つか開発されている（特許文献４、５参照）。これらの技術は、コンピュータなどの情報機器のコマンドに対応する自然言語の語句を指定する手段を設け、この手段により、ユーザが実行させたい順番に従ってそれらの語句を列挙することにより、一連の操作の実行を指示することを可能にするものである。
【０００６】
しかしながら、上記特許文献４、５に記載された技術では、(1)ユーザが条件分岐や繰り返しなどの制御の流れを精密に指定する必要がある、(2)ユーザが実行可能なコマンドの種類を把握して必ずそれらの組み合わせとして指示を与える必要がある、という２点から、プログラムの作成およびその作成方法の習得にあたってユーザに大きな負担を与える、という問題がある。
【０００７】
このような問題の原因の一つは、上記特許文献４、５に記載された手法が言語の意味内容や体系を考慮に入れた処理を行っていないことにある。
【０００８】
しかしながら、この点については、本発明者らが提案する日常言語コンピューティングシステムを用いることにより効果的に解決することができる（特許文献１〜３参照）。すなわち、日常言語コンピューティングシステムにおいては、言語データベースとして、語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用することにより、言語の意味内容や体系を考慮に入れた形でテキスト処理を行うことが可能であり、日常言語によりコンピュータの操作および実行を行うことができる。具体的には例えば、日常言語コンピューティングシステムにおいては、言語の持つ体系やそれが使用されるコンテクストも含めた意味の処理を行うため、例えば「クリスマス会の招待状を書きたい。」という指示をユーザが入力すれば、「招待状を作成するためにワープロソフトウェアを起動する」、といった処理をコンピュータ（アプリケーションソフトウェア等）上で行うことができる。
【特許文献１】特開２００２−２３６６８１号公報
【特許文献２】特開２００３−３４５６０４号公報
【特許文献３】特開２００３−３４５８００号公報
【特許文献４】特開２０００−３２２２４５号公報
【特許文献５】特開平７−３１１６７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
しかしながら、情報機器に対して与えられる操作の指示としては、複数の文からなる言語テキストなどによって指定されるような複雑な条件や手順を伴う操作の指示があり、このような操作の指示を理解してコンピュータ処理を実行することは必ずしも容易ではない。
【００１０】
本発明はこのような点を考慮してなされたものであり、本発明者らが提案する日常言語コンピューティングシステムをさらに改良し、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行することができる、日常言語プログラム処理システムおよびその方法を提供することを目的とする。
【００１１】
また、本発明は、このような日常言語プログラム処理システムにおいて入力プログラムの意味を理解する際に好適に用いられ、日常言語により表現された一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定することができる修辞構造解析方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
本発明は、第１の解決手段として、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理システムにおいて、語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用して、ユーザが入力した入力プログラムであって日常言語により表現された一連のコンピュータ操作指示を表す複数の文を含む入力プログラムのテキスト理解を行い、当該入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する言語理解・生成モジュールと、前記言語理解・生成モジュールにより得られたテキスト理解結果に基づいて、あらかじめ保持された知識を利用して、前記入力プログラムに含まれる各文を実行可能な形式に書き換えて正規化するプログラム正規化モジュールと、前記プログラム正規化モジュールにより得られたプログラム正規化結果と、前記言語理解・生成モジュールにより得られた修辞構造の情報とに基づいて、前記入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する実行プログラム生成モジュールと、前記実行プログラム生成モジュールにより生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行するプログラム実行モジュールとを備えたことを特徴とする日常言語プログラム処理システムを提供する。
【００１３】
なお、上述した第１の解決手段において、前記言語理解・生成モジュールは、前記入力プログラムに含まれる各文の語彙文法特徴および意味特徴に基づいて当該各文の意味内容を表す概念構造を同定することが好ましい。
【００１４】
また、上述した第１の解決手段において、前記言語理解・生成モジュールは、前記入力プログラムに含まれる各文内の接続表現に基づいて当該各文間の関係を表す修辞構造を同定することが好ましい。
【００１５】
さらに、上述した第１の解決手段において、前記言語理解・生成モジュールは、前記接続表現に加えて、前記各文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報に基づいて、当該各文間の関係を表す修辞構造を同定することが好ましい。また、前記言語理解・生成モジュールは、前記接続表現および前記タイプ情報に加えて、前記各文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報に基づいて、当該各文間の関係を表す修辞構造を同定してもよい。
【００１６】
さらに、上述した第１の解決手段において、前記プログラム正規化モジュールは、前記知識として、コンピュータ上で実行されるコマンドに関する知識、前記入力プログラムに含まれるユーザの表現を意味内容を変えることなくコンピュータ上で実行可能な表現に書き換えるための換言用知識、および事実的な情報に関する事実的知識を用いることが好ましい。
【００１７】
さらに、上述した第１の解決手段において、前記プログラム正規化モジュールは、前記入力プログラムに含まれる各文ごとに条件部分、操作部分、ループ範囲およびループ要素を抽出することにより当該各文を実行可能な形式に書き換えることが好ましい。
【００１８】
さらに、上述した第１の解決手段において、前記実行プログラム生成モジュールは、前記入力プログラムに含まれる各文間の関係を表す修辞構造を参照して子ユニットから親ユニットの方向に向かって当該各文の正規化処理の結果を統合することが好ましい。
【００１９】
さらに、上述した第１の解決手段において、前記プログラム正規化モジュール、前記実行プログラム生成モジュールおよび前記プログラム実行モジュールのうちの少なくとも一つのモジュールは、当該各モジュールでの処理に必要な情報が不足したり曖昧だったときに前記言語理解・生成モジュールにより確認または問い合わせための言語テキストを生成してユーザに提示することが好ましい。
【００２０】
さらに、上述した第１の解決手段においては、前記入力プログラムを入力するユーザとの間における言語テキストのやりとりを制御するプランモジュールをさらに備えることが好ましい。
【００２１】
本発明は、第２の解決手段として、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラムの意味を理解してコンピュータ処理を実行する日常言語プログラム処理方法において、語彙文法、意味およびコンテクストの体系をデータベース化したセミオティックベースを利用して、ユーザが入力した入力プログラムであって日常言語により表現した一連のコンピュータ操作指示を表す複数の文を含む入力プログラムのテキスト理解を行い、当該入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造を同定する第１のステップと、前記第１のステップで得られたテキスト理解結果に基づいて、あらかじめ保持された知識を利用して、前記入力プログラムに含まれる各文を実行可能な形式に書き換える第２のステップと、前記第２のステップで得られたプログラム正規化結果と、前記第１のステップで得られた修辞構造の情報とに基づいて、前記入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する第３のステップと、前記第３のステップで生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行する第４のステップとを含むことを特徴とする日常言語プログラム処理方法を提供する。
【００２２】
なお、上述した第２の解決手段においては、前記第１のステップにおいて、前記入力プログラムに含まれる各文の語彙文法特徴および意味特徴に基づいて当該各文の意味内容を表す概念構造を同定することが好ましい。
【００２３】
また、上述した第２の解決手段においては、前記第１のステップにおいて、前記入力プログラムに含まれる各文内の接続表現に基づいて当該各文間の関係を表す修辞構造を同定することが好ましい。
【００２４】
さらに、上述した第２の解決手段においては、前記第１のステップにおいて、前記接続表現に加えて、前記各文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報に基づいて、当該各文間の関係を表す修辞構造を同定することが好ましい。
【００２５】
さらに、上述した第２の解決手段においては、前記第１のステップにおいて、前記接続表現および前記タイプ情報に加えて、前記各文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報に基づいて、当該各文間の関係を表す修辞構造を同定することが好ましい。
【００２６】
さらに、上述した第２の解決手段においては、前記第２のステップにおいて、前記知識として、コンピュータ上で実行されるコマンドに関する知識、前記入力プログラムに含まれるユーザの表現を意味内容を変えることなくコンピュータ上で実行可能な表現に書き換えるための換言用知識、および事実的な情報に関する事実的知識を用いることが好ましい。
【００２７】
さらに、上述した第２の解決手段においては、前記第２のステップにおいて、前記入力プログラムに含まれる各文ごとに条件部分、操作部分、ループ範囲およびループ要素を抽出することにより当該各文を実行可能な形式に書き換えることが好ましい。
【００２８】
さらに、上述した第２の解決手段においては、前記第３のステップにおいて、前記入力プログラムに含まれる各文間の関係を表す修辞構造を参照して子ユニットから親ユニットの方向に向かって当該各文の正規化処理の結果を統合することが好ましい。
【００２９】
本発明は、第３の解決手段として、日常言語により表現された一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定する修辞構造解析方法において、意味内容を表す概念構造が同定された複数の修辞ユニットを準備する第１のステップと、前記第１のステップで準備された複数の修辞ユニットに含まれる一つ以上の文内の接続表現を抽出する第２のステップと、前記第１のステップで準備された複数の修辞ユニットに含まれる一つ以上の文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報を特定する第３のステップと、前記第２のステップで抽出された接続表現および前記第３のステップで特定されたタイプ情報に基づいて、前記複数の修辞ユニット間の関係を表す修辞構造を同定する第４のステップとを含むことを特徴とする、修辞構造解析方法を提供する。
【００３０】
なお、上述した第３の解決手段においては、前記第１のステップで準備された複数の修辞ユニットに含まれる一つ以上の文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報を特定する第５のステップをさらに含み、前記第４のステップにおいて、前記第２のステップで抽出された接続表現および前記第３のステップで特定されたタイプ情報に加えて、前記第５のステップで特定された意味内容関係情報に基づいて、前記複数の修辞ユニット間の関係を表す修辞構造を同定することが好ましい。
【発明の効果】
【００３１】
本発明の第１および第２の解決手段によれば、入力プログラムに含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造に基づいて、あらかじめ保持された知識（コマンドに関する知識、換言用知識および事実的知識）を利用して、入力プログラムに含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化する。そして、このようにして得られたプログラム正規化結果と、既に得られた修辞構造の情報とに基づいて、入力プログラムに含まれる各文の正規化処理の結果を統合して実行プログラムを生成し、最終的に、生成された実行プログラムのうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、コンピュータ上で実行されるコマンドに変換して実行する。このため、ユーザは入力プログラムにおいてプログラムの実行時の制御構造を明示的に記述する必要がなく、日常言語で自由に記述された操作指示テキストからなる入力プログラムから抽出された言語的な修辞構造の情報を利用して特定の制御構造を備えた実行プログラムが生成される。また、ユーザはコマンドに直接対応する語句以外の内容を操作指示として含めることができる。これらは、コマンドの性質に関する知識や、タスク領域に関する知識、ユーザに関する知識を利用してプログラムの正規化処理の過程でコマンドの組み合わせに変換される。結果として、コンピュータやプログラミングについての専門的な知識をほとんど持たないユーザでも日常的な言語表現を用いてコンピュータの操作指示を容易に行えるようになる。
【００３２】
本発明の第３の解決手段によれば、日常言語により表現された一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定する際に、複数の修辞ユニットに含まれる一つ以上の文内の接続表現だけでなく、複数の修辞ユニットに含まれる一つ以上の文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報や、複数の修辞ユニットに含まれる一つ以上の文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報を考慮するようにしているので、複数の修辞ユニット間の関係を表す修辞構造をより確実に同定することができる。
【発明を実施するための形態】
【００３３】
次に、図面を参照して本発明の実施の形態について説明する。
【００３４】
［１．日常言語プログラム処理システムの概要］
まず、図１により、本発明の一実施の形態に係る日常言語プログラム処理システムの全体構成について説明する。
【００３５】
図１に示すように、本実施の形態に係る日常言語プログラム処理システム１０は、日常言語により表現された一連のコンピュータ操作指示を含む入力プログラム５１の意味を理解してコンピュータ処理を実行するものであり、言語理解・生成モジュール１１、プログラム正規化モジュール１２、実行プログラム生成モジュール１３、プログラム実行モジュール１４およびプランモジュール１５を有している。なお、本実施の形態においては、日常言語プログラム処理システム１０が、日常言語によりコンピュータとしてのアプリケーションソフトウェアまたはハードウェア３３の操作および実行を行うための言語アプリケーション３２（上記特許文献３参照）に搭載されて用いられる場合を例に挙げて説明する。ここで、図１および図２に示すように、言語アプリケーション３２は、日常言語コンピューティングシステム４１上においてセミオティックベース２１およびクライアント秘書エージェント３１と連携して動作する。
【００３６】
以下、日常言語プログラム処理システム１０に含まれる各モジュール（言語理解・生成モジュール１１、プログラム正規化モジュール１２、実行プログラム生成モジュール１３、プログラム実行モジュール１４およびプランモジュール１５）の詳細について説明する。
【００３７】
言語理解・生成モジュール１１は、セミオティックベース２１を利用して、ユーザが入力した入力プログラム５１のテキスト理解を行い、当該入力プログラム５１に含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造（隣接する文の間の関係の種類と文のつながりの構造）を同定するものである。ここで、セミオティックベース２１は、言語が使用されるコンテクストまで考慮した言語学的な言語システムのモデルであり、語彙文法、意味およびコンテクストの体系をデータベース化したものである。また、入力プログラム５１は、日常言語により表現された一連のコンピュータ操作指示を表す複数の文を含むものである。
【００３８】
プログラム正規化モジュール１２は、言語理解・生成モジュール１１により得られたテキスト理解結果５２に基づいて、あらかじめ保持された知識（コマンドに関する知識２２、換言用知識２３および事実的知識２４）を利用して、入力プログラム５１に含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化するものである。
【００３９】
実行プログラム生成モジュール１３は、プログラム正規化モジュール１２により得られたプログラム正規化結果５３と、言語理解・生成モジュール１１により得られた修辞構造の情報とに基づいて、入力プログラム５１に含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラム５４を生成するものである。
【００４０】
プログラム実行モジュール１４は、実行プログラム生成モジュール１３により生成された実行プログラム５４のうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、アプリケーションソフトウェアまたはハードウェア３３上で実行されるコマンドに変換して実行するものである。
【００４１】
プランモジュール１５は、入力プログラム５１を入力するユーザと言語アプリケーション３２との間における言語テキストのやりとり（対話）を制御するものである。具体的には例えば、入力プログラム５１の入力に付随した言語テキストに対して、ユーザに対する応答のための言語テキスト（応答テキスト５５）を生成したり言語アプリケーション３２に対して指示を出したりする。なお、プランモジュール１５は、入力プログラム５１に対してのテキスト理解の結果（入力プログラム５１に含まれる各文の概念構造および各文間の修辞構造を含むテキスト理解結果５２）についてはプログラム正規化モジュール１２に送るように制御する。ここで、プランモジュール１５の構成および動作は本発明の特徴部分ではなく、また本発明者らが既に出願した特願２００２−３０４８４２号に詳細に記載されているので、詳細な説明は省略する。
【００４２】
なお、プログラム正規化モジュール１２、実行プログラム生成モジュール１３およびプログラム実行モジュール１４のうちの少なくとも一つのモジュールは、当該各モジュールでの処理に必要な情報が不足したり曖昧だったときに言語理解・生成モジュール１１により確認または問い合わせための言語テキスト（応答テキスト５５）を生成してユーザに提示することができるようになっている。
【００４３】
［２．日常言語コンピューティングシステムの概要］
次に、図２により、図１に示す日常言語プログラム処理システム１０が搭載される言語アプリケーション３２に組み込まれて用いられる日常言語コンピューティングシステム４１の概要について説明する。
【００４４】
図２に示すように、図１に示す日常言語プログラム処理システム１０が搭載される言語アプリケーション３２は、日常言語コンピューティングシステム４１上においてセミオティックベース２１およびクライアント秘書エージェント３１と連携して動作する。
【００４５】
ここで、日常言語コンピューティングシステム４１は、言語の意味内容や体系を考慮に入れた形でテキスト処理を行うものであり、ユーザとが日常言語で対話したり、日常言語によりアプリケーションソフトウェアまたはハードウェア３３の操作および実行を行うことを可能にするシステムである。具体的には、日常言語コンピューティングシステム４１は、日常言語の意味を理解するための基本的な言語データベースであるセミオティックベース２１と、ユーザに対して日常言語コンピューティングシステム４１の窓口となるクライアント秘書エージェント３１と、クライアント秘書エージェント３１から言語プロトコルを介して送られた言語テキストに基づいて日常言語によりアプリケーションソフトウェアまたはハードウェア３３の操作および実行を行う言語アプリケーション３２とを備えている。なお、日常言語コンピューティングシステム４１に含まれるセミオティックベース２１、クライアント秘書エージェント３１および言語アプリケーション３２は、言語オペレーティングシステム（ＬＯＳ）上で動作するようになっている。
【００４６】
以下、日常言語コンピューティングシステム４１上で動作するセミオティックベース２１、クライアント秘書エージェント３１および言語アプリケーション３２の構成および動作の概要について説明する。なお、セミオティックベース２１、クライアント秘書エージェント３１および言語アプリケーション３２の構成および動作は基本的に上記特許文献１〜３に記載されたものと同一であるので、ここでは詳細な説明は省略する。
【００４７】
［２．１．セミオティックベース］
セミオティックベース２１は、日常言語の意味を理解するための基本的な言語データベースであり、ユーザの入力した言語テキストの理解およびユーザに対して出力する応答のための言語テキストの生成に利用される。ここで、セミオティックベース２１は、語彙文法、意味およびコンテクストの体系をデータベース化したものであり、次の（１）〜（６）のような構成要素からなる。
【００４８】
（１）コンテクストベース：言語が使用される状況を分類するための特徴の体系を納めたもの。
【００４９】
（２）意味ベース：言語の意味的な特徴の体系を納めたもの。
【００５０】
（３）語彙文法ベース：言語の語彙文法的な特徴の体系を納めたもの。
【００５１】
（４）表現ベース：言語の表現手段である文字や音声に関する特徴の体系を納めたもの。
【００５２】
（５）電子化辞書：語彙項目の辞書的情報の他、コンテクストベース、意味ベース、語彙文法ベースおよび表現ベースの体系との関係を表す情報を納めたもの。
【００５３】
（６）コーパスベース：言語テキストに対して、コンテクストベース、意味ベース、語彙文法ベースおよび表現ベースの体系を用いてタグ付けを行った結果を納めたもの。
【００５４】
なお、以上のうち、コンテクストベース、意味ベース、語彙文法ベースおよび表現ベースに関しては、言語的特徴とその間の関係を表現するためにシステムネットワークと呼ばれる表現形式が用いられている。また、コンテクストベースに関してはさらに、状況の中で言葉（日常言語）を使って表現される概念の体系を納めた概念辞書が含まれている。
【００５５】
［２．２．クライアント秘書エージェント］
クライアント秘書エージェント３１は、ユーザに対して日常言語コンピューティングシステム４１の窓口となるエージェントであり、ユーザに関する情報を集めたクライアントモデルと呼ばれるデータベースを保持し、ユーザの好みや、操作および言葉遣いの傾向に適応した処理を行う。また、クライアント秘書エージェント３１は、ユーザの入力した言語テキストの意味を理解したりユーザに対して出力する言語テキストを生成する言語理解・生成機能を持つ他、ユーザの入力の意図を理解してユーザに対する応答のための言語テキスト（応答テキスト５５）を生成したり言語アプリケーション３２に対して指示を出したりするなどの対話の進行を管理するためのプランニング機能も持つ。なお、クライアント秘書エージェント３１は、ユーザの入力に対してアプリケーションソフトウェアまたはハードウェア３３に対する問い合わせや操作が必要な場合には、適切な言語アプリケーションを選択して言語テキストの転送を行う。
【００５６】
［２．３．言語アプリケーション］
言語アプリケーション３２は、日常言語によりアプリケーションソフトウェアまたはハードウェア３３の操作および実行を行うものである。ここで、言語アプリケーション３２は、クライアント秘書エージェント３１から言語プロトコルを介して送られた言語テキストの意味を理解し、指示に合った操作を実行したり応答のための言語テキスト（応答テキスト５５）を生成したりするために、クライアント秘書エージェント３１と同様の言語理解・生成機能およびプランニング機能を持つ。また、言語アプリケーション３２は、インタフェースを介してアプリケーションソフトウェアまたはハードウェア３３を操作するためのコマンド解釈・実行機能を持つ。さらに、言語アプリケーション３２は、言語テキストの意味とアプリケーションソフトウェアまたはハードウェア３３のコマンドとの関連を推論するために、コマンドの性質に関する知識やタスク領域に関する知識を持つ。
【００５７】
［３．日常言語プログラム処理システムの構成および動作の詳細］
次に、図１および図２により、本実施の形態に係る日常言語プログラム処理システム１０の構成および動作の詳細について、内部での処理の流れに沿って説明する。
【００５８】
［３．１．テキスト理解］
図２に示す日常言語コンピューティングシステム４１において、ユーザが音声またはキーボードを用いて日常言語テキストの形で入力した一連のコンピュータ操作指示を含む入力プログラム５１は、クライアント秘書エージェント３１を介して、入力プログラム５１の内容に適した言語アプリケーション３２（例えば、ユーザが文書の作成に関する指示を入力した場合には、ワープロの言語アプリケーション）に送られる。
【００５９】
ここで、言語アプリケーション３２内には日常言語プログラム処理システム１０が搭載されており、クライアント秘書エージェント３１を介して送られてきた入力プログラム５１に対しては、図１に示すように、まず、言語理解・生成モジュール１１によりテキスト理解が行われる。これにより、入力プログラム５１に含まれる各文の意味内容を表す概念構造が各文の語彙文法特徴および意味特徴に基づいて同定される。また、複数の文の集合体としての言語テキスト全体の修辞構造が解析され、各文間の関係を表す修辞構造（隣接する文の間の関係の種類と文のつながりの構造）が同定され、さらに、文脈を加味しながら省略されている部分などが補完される。入力プログラム５１の具体例を図３、図１３および図２１に示す。
【００６０】
ここで、言語理解・生成モジュール１１におけるテキスト理解処理の具体的内容について説明する。
【００６１】
［３．１．１．セミオティックベースを利用した文解析］
言語理解・生成モジュール１１は、初めに、入力プログラム５１に含まれる各文に対して、形態素解析器および係り受け解析器を利用して、形態素解析および係り受け解析をそれぞれ行う。次いで、言語理解・生成モジュール１１は、セミオティックベース２１内の電子化辞書を参照して単語レベルの意味的情報および語彙文法的情報を抽出する。ここまでを「前処理」という。
【００６２】
次に、言語理解・生成モジュール１１は、セミオティックベース２１内の語彙文法ベースおよび意味ベースのシステムネットワークを参照して、語彙文法解析および意味解析をそれぞれ行い、前処理の結果得られた単語レベルの情報から、句レベルおよび文レベルの語彙文法特徴および意味特徴を抽出する。
【００６３】
その後、言語理解・生成モジュール１１は、セミオティックベース２１内のコンテクストベースの概念辞書を参照して、概念解析および文脈解析をそれぞれ行い、文の概念的な構造を同定したり、文に含まれる名詞句や代名詞が指し示す内容を既知の対象の中から選んだりする。これにより、入力プログラム５１に含まれる各文の意味内容を表す概念構造が同定される。入力プログラム５１に含まれる各文の概念構造の具体例を図４、図１４および図２２に示す。
【００６４】
［３．１．２．修辞構造解析］
次に、言語理解・生成モジュール１１は、上述した一連の処理（前処理、語彙文法解析、意味解析、概念解析および文脈解析）で得られた情報に基づいて、修辞構造解析を行い、入力プログラム５１に含まれる各文間の関係を表す修辞構造（隣接する文の間の関係の種類と文のつながりの構造）を同定する。一般に、修辞構造とは、文以上の言語テキストの連なりを単位（「修辞ユニット」という）とし、それらの修辞ユニット間に見られる修辞的な関係（段落の始めの文はトピックを導入し、残りの文はその説明をしているなど）を構造的に表現したものである。
【００６５】
ここでは、入力プログラム５１の修辞構造を、修辞ユニットをノードで表し、修辞ユニット間の親子関係（全体・部分関係）をアークで表した木構造で表現するものとする。この場合、修辞ユニットには子ユニット間の修辞関係を意味特徴として付与し、アークには子ユニット同士の関係（主従の関係や同列の関係）をロール情報として付与する。入力プログラム５１の修辞構造の具体例を図５、図６、図１５および図２３に示す。
【００６６】
なお、本実施の形態に係る日常言語プログラム処理システム１０においては、言語理解・生成モジュール１１により得られた修辞構造の情報を、その後に続くプログラム正規化モジュール１２および実行プログラム生成モジュール１３における処理の過程で実行プログラムの制御構造を導出するために利用することを想定している。
【００６７】
ここで、このような修辞構造を規定するための修辞関係としては、文献（“Mann et al.:“Rhetorical Structure Theory and Text Analysis”，In: Mann，W.，Thomson，S.A. (eds.): Discourse Descripsion: Diverse Linguistic Analyses of a Fund-Raising Text. Amsterdam，John Benjamins(1992)39-78”）などで提案されている修辞関係のうち特にプログラムの操作を表している文（修辞ユニット）とその操作の実行条件を表している文（修辞ユニット）との間の関係に関するもの（下記（１）（２））を用いることができる。
【００６８】
（１）“ｃｏｎｄｉｔｉｏｎ”：従属ユニット（図５、図６、図１５および図２３において“Ｓ”というロールを持つノード）で表現されている条件が成り立つ範囲で、主要ユニット（図５、図６、図１５および図２３において“Ｎ”というロールを持つノード）で表現されている内容を実行する。
【００６９】
（２）“ｏｔｈｅｒｗｉｓｅ”：従属ユニット（“Ｓ”）で表現されている条件が成り立たない範囲でのみ、主要ユニット（“Ｎ”）で表現されている内容を実行する。（なお、この関係は、一般的な規則に対して例外を提示するときなどに用いられる。）
また、もう少し一般的な修辞関係で、プログラムの制御構造の導出に利用することができるものとしては、下記（３）〜（７）を用いることができる。
【００７０】
（３）“ｓｅｑｕｅｎｃｅ”：主要ユニット１（“Ｎ１”）で表現されている内容と、主要ユニット２（“Ｎ２”）で表現されている内容との間に時間的順序関係が成り立つ。
【００７１】
（４）“ｃｉｒｃｕｍｓｔａｎｃｅ”：従属ユニット（“Ｓ”）で表現されている場所および時間で、主要ユニット（“Ｎ”）で表現されている内容が成り立つ。
【００７２】
（５）“ｅｌａｂｏｒａｔｉｏｎ”：主要ユニット（“Ｎ”）で表現されている内容を、従属ユニット（“Ｓ”）でさらに詳しく説明する。
【００７３】
（６）“ｒｅｓｔａｔｅｍｅｎｔ”：主要ユニット（“Ｎ”）で表現されている内容を、従属ユニット（Ｓ）で別の表現に言い換える。
【００７４】
（７）“ｄｉｓｊｕｎｃｔｉｏｎ”：主要ユニット１（“Ｎ１”）で表現されている内容および主要ユニット２（“Ｎ２”）で表現されている内容のうちの少なくともどちらか一方が成り立つ。
【００７５】
ここで、言語理解・生成モジュール１１においては、入力プログラム５１に含まれる複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定するために、次の２つの手法を利用する。
【００７６】
（１）接続表現（手がかり語）を利用する。
【００７７】
修辞関係を明示する言語的な手段としては、「ただし」などの接続詞、「たら」などの接続助詞、「このとき」などの接続句などの各種の接続表現がある。これらの接続表現が文（修辞ユニット）に含まれているかどうかは前処理の結果から判断できるので、これらの接続表現を手がかり語として、入力プログラム５１に含まれる各文（修辞ユニット）間の関係を表す修辞構造を同定する。なお、これらの手がかり語は、あらかじめ、セミオティックベース２１内の語彙文法ベースおよび意味ベースのシステムネットワークを介して修辞関係と関連付けられている。例えば、「ただし」が文頭にあった場合には、その文（修辞ユニット）は“ｏｔｈｅｒｗｉｓｅ”の従属ユニット、その前の文（修辞ユニット）は主要ユニットとなる。一方、「また」が文頭にあった場合には、その文（修辞ユニット）は“ｃｏｎｄｉｔｉｏｎ”の主要ユニット、その前の文（修辞ユニット）は従属ユニットとなる。
【００７８】
（２）文のタイプや意味内容の関係を利用する。
【００７９】
ここでいう「文のタイプ」とは、直感的に言えば、各文（修辞ユニット）が操作内容を表すものであるのか命題的内容を表すものであるのかに関する情報（タイプ情報）であり、言語学的に言えば、“ｍａｔｅｒｉａｌ  ｐｒｏｃｅｓｓ”または“ｒｅｌａｔｉｏｎａｌ  ｐｒｏｃｅｓｓ”の語彙文法特徴のどちらを持つかによって分類されるものである。例えば、「新着メールを研究室フォルダに入れる」という文は操作内容を表し、「添付ファイルが文書ファイルである」という文は命題的内容を表している。
【００８０】
一方、「意味内容の関係」は、各文（修辞ユニット）の意味内容が両立可能であるのか相反するものであるのかに関する情報（意味内容関係情報）であり、次のようにまとめられる。
【００８１】
第１に、２つの文（修辞ユニット）の両方が操作内容を表しており、かつ、各文（修辞ユニット）がそれ自身の中でそれぞれ条件を含んでいるときであれば、意味内容の関係として次の場合が考えられる。
【００８２】
(ia) 両方が同じ基準の異なる条件を示している場合。（例えば、メールの差出人という同じ基準で、差出人が研究室の人かその研究室の属する特定の組織（例えば「理研」）の人かという異なる条件。）
(ib) 両方が異なる基準の条件を示している場合。（例えば、映画の製作年と映画の製作国という異なる基準。）
第２に、２つの文（修辞ユニット）のうち少なくとも一方が命題的内容を表しているときであれば、意味内容の関係として次の場合が考えられる。
【００８３】
(iia) 両方が同時に成立する場合。（例えば、理研の人から来たメールを理研フォルダに入れることと、理研の人のメールアドレスの特徴とは同時に成り立つ。）
(iib) 両方が同時には成立しない場合。（例えば、あるメールが研究室フォルダにあることと、同じメールが理研フォルダにあることとは同時には成立しない。）
なお、以上のような複雑な関係は、必要に応じて、一般常識やユーザに関する個人的知識、アプリケーション操作に関する知識などを参照することによって同定される。
【００８４】
ここで、言語理解・生成モジュール１１により、上記（１）（２）のような２つの手法を利用して、入力プログラム５１に含まれる複数の文（修辞ユニット）間の関係を表す修辞構造を同定する際には、修辞構造の同定の過程で特定できる構造を優先して、木構造の形を決定していくが、それだけでは不十分なので、以下の２つの要素を加味して可能な木構造の順位付けを行う。
【００８５】
(i)  ２つの修辞ユニットに含まれるすべての文が同じ概念クラスの目的語を持つならば、所定の値を得点に加える。
【００８６】
(ii) ２つの修辞ユニットに共通に含まれる概念（部分グラフ）の総数をユニットに含まれる文の数で割った値を、得点に加える。
【００８７】
このようにして修辞関係で結び付けられる２つの修辞ユニット間の関連性を計算し、合計して得られる総合スコアの一番高いものを、目的とする修辞ユニット間の修辞構造とする。
【００８８】
［３．１．３．対話機能］
プランモジュール１５の１つの機能として対話機能があり、対話の構造を管理することにより、ユーザとの自然な対話のやりとりができるように制御する。また、この対話機能により、独話テキストの理解だけでなく、対話の文脈を考慮に入れた理解を行うことができる。このような目的のため、プランモジュール１５は、「質問／回答」のような対話のやりとりについての可能なパターンを集めたデータベースであるプランライブラリと、現在進行中の対話の構造を表すプラン構造と呼ばれるデータ構造とを持つ。プランライブラリの各項目は、セミオティックベース２１内の状況タイプや意味特徴と対応付けられており、セミオティックベース２１の機能を介して状況と言語的特徴との連関を活かした処理を行うことができるようになっている。
【００８９】
なお、ユーザが単一の文からなる操作指示テキストを入力した場合には、プランモジュール１５による制御の下で、言語理解・生成モジュール１１によるテキスト理解の結果に基づいて、ユーザに対する応答のための言語テキスト（応答テキスト５５）が生成されたり言語アプリケーション３２に対して指示が出されたりする。一方、ユーザが複数の文からなる操作指示テキスト（入力プログラム５１）を入力した場合には、プランモジュール１５による制御の下で、言語理解・生成モジュール１１によるテキスト理解の結果（入力プログラム５１に含まれる各文の概念構造および各文間の修辞構造を含むテキスト理解結果５２）がプログラム正規化モジュール１２へ送られる。
【００９０】
また、プログラム正規化モジュール１２、実行プログラム生成モジュール１３およびプログラム実行モジュール１４での処理の過程で、当該各モジュールでの処理に必要な情報が不足したり曖昧だったときには、プランモジュール１５による制御の下で、言語理解・生成モジュール１１により確認または問い合わせための言語テキスト（応答テキスト５５）が生成されてユーザに提示される。
【００９１】
［３．２．プログラム正規化］
プログラム正規化モジュール１２は、言語理解・生成モジュール１１により得られたテキスト理解結果５２を受け取ると、あらかじめ保持された知識（コマンドに関する知識２２、換言用知識２３および事実的知識２４）を利用して、入力プログラム５１に含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化する。ただし、この場合、入力プログラム５１に含まれる文が操作内容を表す表現（言語学的に言えば“ｍａｔｅｒｉａｌ  ｐｒｏｃｅｓｓ”）を含まない文の場合には、正規化処理を行わず、その意味内容を事実的知識２４に追加する。
【００９２】
ここで、入力プログラム５１に含まれる各文の正規化処理の結果、その文の実行可能な条件部分、操作部分、ループ範囲およびループ要素が抽出され、これらを含むプログラム正規化結果５３が実行プログラム生成モジュール１３へ送られる。プログラム正規化結果の具体例を図１０、図１８および図２６に示す。
【００９３】
なお、プログラム正規化モジュール１２において、入力プログラム５１に含まれる各文の実行可能性を検査する過程で、必要な情報の不足や曖昧な部分が発見されたときには、処理が中断され、確認または問い合わせのための言語テキスト（応答テキスト５５）が生成されてユーザに対して指示する指示が言語理解・生成モジュール１１へ送られる。
【００９４】
［３．２．１．利用する知識］
プログラム正規化モジュール１２により利用される知識としては、次の３種類の知識が挙げられる。
【００９５】
（１）コマンドに関する知識
コマンドに関する知識２２は、コンピュータとしてのアプリケーションソフトウェアまたはハードウェア３３上で実行されるコマンドに関する知識であり、日常言語で表現されている。なおここでは、次の３種類のものを合わせて「コマンド」と呼ぶ。
【００９６】
ａ．操作：アプリケーションソフトウェアまたはハードウェア３３で実行可能な操作（例：（ファイルを）保存する）
ｂ．条件：操作の制御に用いられる、アプリケーションソフトウェアまたはハードウェア３３で判定可能な条件（例：２つのモノが等しい）
ｃ．モノ：操作のパラメータとなり得る、アプリケーションソフトウェアまたはハードウェア３３で同定可能なモノ（例：ファイル）
ここで、各コマンドには、実行する際に（すなわち、操作の実行や、条件の判定、モノの同定を行うために）値を指定する必要のある必須パラメータが存在する。コマンドに関する知識２２の具体例を図７、図１６および図２４に示す。
【００９７】
（２）換言用知識
換言用知識２３は、入力プログラム５１に含まれるユーザの表現を意味内容を変えることなくアプリケーションソフトウェアまたはハードウェア３３上で実行可能な表現に書き換えるための知識であり、日常言語で表現されている。具体的には、換言前の表現と換言後の表現の対の集合が列挙されている。換言用知識２３の具体例を図８、図１７および図２５に示す。
【００９８】
（３）事実的知識
事実的知識２４は、換言用知識２３と同様に、入力プログラム５１に含まれる表現の書き換えに利用される知識であり、日常言語で表現されている。
【００９９】
［３．２．２．文の正規化］
入力プログラム５１に含まれる各文に対する正規化処理は、文の種類に応じて次のように行われる。
【０１００】
（１）単文の場合
文全体を操作の記述とみなし、次節（３．２．３．）の要領で正規化を行う。
【０１０１】
（２）重文、複文の場合
文の構成要素間の関係（修辞関係）の種類に応じて処理を行う。
【０１０２】
具体的には例えば、修辞関係が“ｓｅｑｕｅｎｃｅ”の場合には、すべての構成要素を操作の記述とみなし、次節（３．２．３．）の要領で正規化を行う。また、修辞関係が“ｃｏｎｄｉｔｉｏｎ”または“ｅｌａｂｏｒａｔｉｏｎ”の場合には、主要要素を操作の記述、従属要素を条件の記述とみなし、それぞれ次節（３．２．３．）の要領で正規化を行う。
【０１０３】
［３．２．３．操作、条件、モノの正規化］
各文に含まれる操作、条件、モノに対する正規化処理は、次の処理Ａを実行することにより行われる。もし、処理Ａに成功したら、それがこの正規化処理の結果となる。もし、処理Ａに失敗した場合には、次節（３．２．４）で述べる換言の処理により表現を書き換えた後で改めて処理Ａを試みる。処理Ａに失敗し、またこれ以上換言ができない場合には、正規化処理は失敗となる。
【０１０４】
＜処理Ａ＞
（１）正規化処理の対象となる要素がシステムに事前に登録されているモノ（例えば「ユーザ」）または具体的な文字列（例えば「．ｒｉｋｅｎ．ｊｐ」という文字列）である場合には、処理Ａは成功とする。
【０１０５】
（２）正規化処理の対象となる要素がコマンドに関する知識に登録されていないタイプのもの（操作、条件、モノ）である場合には、処理Ａは失敗とする。
【０１０６】
（３）正規化処理の対象となる要素に関し、コマンドに関する知識に必須パラメータとして登録されているパラメータの中で値が存在しないものが存在する場合は、処理Ａは失敗とする。
【０１０７】
（４）正規化処理の対象となる要素に関し、必須パラメータの値が存在する場合には、その値（操作、条件、モノのいずれか）の正規化を試みる。
【０１０８】
（５）正規化処理の対象となる要素に関し、もし、必須パラメータの値の正規化に失敗した場合には、その値を同定する上で母集合となるリストが状況から同定可能であれば、その値を同定するための条件を表す表現を作り、その条件の正規化を試みる。この条件の正規化に成功した場合には、この条件を元の文の条件部分に追加し、パラメータ値とその母集合となるリストとをそれぞれループ要素、ループ範囲として設定する。逆に、もし、この条件の正規化に失敗したら、正規化処理の対象となる要素（操作、条件、モノ）に対する処理Ａは失敗とする。
【０１０９】
（６）すべての必須パラメータの値の正規化に成功したら、正規化処理の対象となる要素（操作、条件、モノ）に対する処理Ａは成功とする。
【０１１０】
［３．２．４．換言］
各文に含まれる表現の書き換えには次の２種類の方法がある。
【０１１１】
（１）換言前の表現の一部分が換言用知識２３における換言前の表現とマッチング可能である場合は、その部分を換言用知識２３における換言後の表現に置き換える。
【０１１２】
（２）換言前の表現が「ＡとＢが等しい」というタイプの表現であり、ある事実的知識２４の一部分がＡとマッチング可能である場合は、その事実的知識のその部分をＢに置き換えた表現を換言後の表現とする。
【０１１３】
なお、プログラム正規化モジュール１２において、正規化処理のために換言を行った場合には、言語理解・生成モジュール１１により、正規化処理後のプログラムをユーザに提示してそれがユーザの意図と一致しているかどうかを確認することが好ましい。
【０１１４】
［３．３．実行プログラム生成］
プログラム正規化モジュール１２においてすべての文の正規化に成功した場合、実行プログラム生成モジュール１３は、入力プログラム５１に含まれる各文（修辞ユニット）間の関係を表す修辞構造を参照して次のような手順で正規化処理の結果を統合し、日常言語により表現された実行プログラム５４を生成する。
【０１１５】
具体的な手順は次のとおりである。
【０１１６】
（１）各文（修辞ユニット）の意味内容を改めて１つの文の形で表現する。もし、抽出された条件部分Ａおよび操作部分Ｂがともに空でないならば、「もしＡならばＢ」という形の表現を作る。もし、Ａが空ならば、操作部分Ｂがそのままこの文の表現となる。
【０１１７】
（２）言語理解・生成モジュール１１により得られた修辞構造を参照してその木構造の子ユニットから親ユニットの方向に向かって当該各文（修辞ユニット）の表現を順に統合していく。具体的な統合の処理は、修辞関係の種類に応じて次のように行う。
【０１１８】
(i) 修辞関係が“ｃｏｎｄｉｔｉｏｎ”の場合には、次の２つに分かれる。
【０１１９】
(ia) 従属ユニットの条件部分をＡ、操作部分をＢ、主要ユニットの条件部分をＣ、操作部分をＤと表すとき、操作Ｂ、Ｄが両立できないならば、これらを統合した表現として「もしＡならば、（もしＣならばＤ、そうでなければＢ）」という形の表現を作る。
【０１２０】
(ib) それ以外の場合には、従属ユニットの条件部分をＡ、操作部分をＢ、主要ユニットの表現をＣで表すことにすると、「もしＡならば、ＢそしてＣ」という形の表現を作る。
【０１２１】
(ii) 修辞関係が“ｏｔｈｅｒｗｉｓｅ”の場合には、従属ユニットの条件部分をＡ、操作部分をＢ、主要ユニットの表現をＣで表すことにすると、「もしＡならばＢ、そうでなければＣ」という形の表現を作る。
【０１２２】
(iii) 修辞関係が“ｓｅｑｕｅｎｃｅ”、“ｄｉｓｊｕｎｃｔｉｏｎ”の場合には、主要ユニット１、主要ユニット２の表現をそれぞれＡ、Ｂで表すことにすると、「ＡそしてＢ」という形の表現を作る。
【０１２３】
(iv) 修辞関係が“ｃｉｒｃｕｍｓｔａｎｃｅ”、“ｅｌａｂｏｒａｔｉｏｎ”、“ｒｅｓｔａｔｅｍｅｎｔ”の場合には、主要ユニットの表現がそのまま親ユニットの表現となる。
【０１２４】
（３）最後に、もし、いずれかの文（修辞ユニット）に対してループ範囲Ｒおよびループ要素Ｅが抽出された場合には、上記（２）で生成されたプログラム表現の先頭に「Ｒの中のすべてのＥに対して次の処理を繰り返す。」という形の表現を追加する。
【０１２５】
以上において、生成される実行プログラム５４の表現が複雑になる場合は、「次の処理を行う。…。以上。」のような、処理の範囲を明示する表現を適宜用いるものとする。生成された実行プログラム５４の具体例を図１１、図１９および図２７に示す。
【０１２６】
［３．４．プログラム実行］
生成された実行プログラム５４が実行プログラム生成モジュール１３から送られると、プログラム実行モジュール１４は、次の２つの機能を利用して、実行プログラム５４中で指定された制御の流れに従ってアプリケーションソフトウェアまたはハードウェア３３のコマンドに逐次変換して実行する。
【０１２７】
（１）コマンド実行機能：実行プログラム５４に含まれる操作、条件、モノの表現を解釈し、それに対応するコマンドを呼び出して実行する。
【０１２８】
（２）実行制御機能：次に挙げるようなコマンドの実行順序の制御を指定する表現を解釈して、指定された順序でコマンドを実行する。
【０１２９】
(i) 「ＡそしてＢ」：操作を逐次実行する。
【０１３０】
(ii) 「もしＡならばＢ、そうでなければＣ」：条件Ａを判定して、それに応じて操作ＢまたはＣを実行する。
【０１３１】
(iii) 「Ｒの中のすべてのＥに対して次の処理を繰り返す。Ａ」：リストＲに含まれるすべての要素Ｅに対して操作Ａを繰り返し実行する。
【０１３２】
このように本実施の形態によれば、プログラム正規化モジュール１２において、言語理解・生成モジュール１１により得られたテキスト理解結果５２（入力プログラム５１に含まれる各文の意味内容を表す概念構造および当該各文間の関係を表す修辞構造）に基づいて、あらかじめ保持された知識（コマンドに関する知識２２、換言用知識２３および事実的知識２４）を利用して、入力プログラム５１に含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化する。そして、実行プログラム生成モジュール１３において、プログラム正規化モジュール１２により得られたプログラム正規化結果５３と、言語理解・生成モジュール１１により得られた修辞構造の情報とに基づいて、入力プログラム５１に含まれる各文の正規化処理の結果を統合して実行プログラム５４を生成し、最終的に、プログラム実行モジュール１４において、実行プログラム生成モジュール１３により生成された実行プログラム５４のうちコマンドに対応する表現とコマンドの実行順序の制御を指定する表現とを解釈し、アプリケーションソフトウェアまたはハードウェア３３上で実行されるコマンドに変換して実行する。このため、ユーザは入力プログラム５１においてプログラムの実行時の制御構造を明示的に記述する必要がなく、日常言語で自由に記述された操作指示テキストからなる入力プログラム５１から抽出された言語的な修辞構造の情報を利用して特定の制御構造を備えた実行プログラムが生成される。また、ユーザはコマンドに直接対応する語句以外の内容を操作指示として含めることができる。これらは、コマンドの性質に関する知識や、タスク領域に関する知識、ユーザに関する知識を利用してプログラムの正規化処理の過程でコマンドの組み合わせに変換される。結果として、コンピュータやプログラミングについての専門的な知識をほとんど持たないユーザでも日常的な言語表現を用いてコンピュータの操作指示を容易に行えるようになる。
【０１３３】
また、本実施の形態によれば、言語理解・生成モジュール１１において、入力プログラム５１に含まれる一連のコンピュータ操作指示を表す複数の修辞ユニットを解析して当該複数の修辞ユニット間の関係を表す修辞構造を同定する際に、複数の修辞ユニットに含まれる一つ以上の文内の接続表現だけでなく、複数の修辞ユニットに含まれる一つ以上の文が操作内容を表すものであるのか命題的内容を表すものであるのかに関するタイプ情報や、複数の修辞ユニットに含まれる一つ以上の文の意味内容が両立可能であるのか相反するものであるのかに関する意味内容関係情報を考慮するようにしているので、複数の修辞ユニット間の関係を表す修辞構造をより確実に同定することができる。
【実施例】
【０１３４】
次に、上述した実施の形態の具体的実施例について述べる。
【０１３５】
実施例１
実施例１として、電子メールの管理のためのプログラムの生成および実行を行う場合を例に挙げて説明する。より具体的には、ユーザが、受信メールのフォルダ振り分け、不要なメールの削除、メールの転送、およびメール本体や添付ファイルの内容表示などの操作をある条件の下で一括して行う状況を考える。このような場合、実施例１においては、下記の手法により、自分が行いたい電子メールの管理についての条件や手順を日常言語で記述して与えるだけで、メールソフトウェアに与えられるプログラムの生成および実行を行うことが可能であり、ユーザがメールソフトウェアの細かい仕様を知らなくても希望の操作を実現することができる。
【０１３６】
実施例１においては、図３に示すような５つの文からなる操作指示テキスト（入力プログラム）をユーザが与えたと仮定して、日常言語プログラム処理システムにおける処理過程を説明する。なおここでは、ユーザが文（３）で言及している「研究室」は特定の組織である「理研」に属する１つの研究室を指し、日常言語プログラム処理システムは、この事実を研究室のメンバーに関する知識とともに事実的知識として持っているものと仮定する。
【０１３７】
＜テキスト理解＞
ユーザが入力した入力プログラムは、クライアント秘書エージェントを介して、メールソフトウェアの操作および実行を行う言語アプリケーションに送られる。言語アプリケーションでは、まず、日常言語プログラム処理システムの言語理解・生成モジュールにおいて、セミオティックベースを利用した文解析が行われ、入力プログラムに含まれる各文の意味内容を表す概念構造が各文の語彙文法特徴および意味特徴に基づいて同定される。ここで、テキスト理解結果の例として、文（１）の概念構造を図４に示す。
【０１３８】
次に、言語理解・生成モジュールにおいて、修辞構造解析が行われ、図３に示す入力プログラムに含まれる５つの文の間の関係を表す修辞構造が同定される。ここで、図３に示す入力プログラムに含まれる５つの文の間の修辞関係は次のように求められる。
【０１３９】
(i) 文（２）は命題的内容を表す文（言語学的に言えば“ｒｅｌａｔｉｏｎａｌ  ｐｒｏｃｅｓｓ”）であり、直前の文（１）と同じ内容を表現しているので、文（１）（２）は“ｒｅｓｔａｔｅｍｅｎｔ”の関係にある。
【０１４０】
(ii) 文（１）（３）は同じ基準（メールの差出人）の異なる条件（理研の人、研究室の人）を示しており、また、この研究室は理研に属するという仮定から、文（１）を含む修辞ユニットと文（２）を含む修辞ユニットとは“ｏｔｈｅｒｗｉｓｅ”の関係にある。
【０１４１】
(iii) 文（４）（５）はそれぞれ文頭に「この時」、「また」という手がかり語があるので、これらの文を先頭とする修辞ユニットはそれぞれ直前の修辞ユニットと“ｃｏｎｄｉｔｉｏｎ”の関係にある。
【０１４２】
ここで、このようにして文の間の関係が決まっても、これらの組み合わせによってできる木構造の形は一意には決まらない。すべての可能な木構造の候補に得点付けを行い、最高得点となる構造を選ぶと、図５に示すような修辞構造が得られる。なお、図５においては、修辞ユニットを表すボックスの中に修辞関係の種類とそのユニットの得点とが示されている。例えば、文（４）（５）は「添付ファイル」という同じクラスの目的語を持ち（１点）、それを概念としても共有しているので（１／２＝０．５点）、この２文から構成される“ｃｏｎｄｉｔｉｏｎ”という関係の修辞ユニットの得点は１．５点となる。同様にして他の修辞ユニットの得点も求めると、この木構造の全体としての得点は、最上位のユニットの得点、すなわち３．８３点となる。
【０１４３】
図６は別の修辞構造の候補の例を示す図である。この修辞構造の得点を同様に求めると、２．７となり、図５に示す修辞構造よりも得点が低いので、この修辞構造は選択されない。
【０１４４】
＜プログラム正規化＞
言語理解・生成モジュールからテキスト理解結果が送られると、プログラム正規化モジュールは、あらかじめ保持された知識（コマンドに関する知識、換言用知識および事実的知識）を利用して、入力プログラムに含まれる各文の実行可能性を検査し、必要に応じて実行可能な形式に書き換えて正規化する。なお、この際に利用される具体的な知識（メールソフトウェアのコマンドに関する知識および換言用知識）を図７および図８にそれぞれ示す。なお、図３に示す入力プログラムに含まれる５つの文のうち文（２）は操作内容ではなく命題的内容を表す文（“ｒｅｌａｔｉｏｎａｌ  ｐｒｏｃｅｓｓ”）であるので、正規化処理を行わず、その内容を事実的知識に追加する。
【０１４５】
まず、図３に示す入力プログラムに含まれる５つの文のうち文（１）に対する正規化処理について説明する。
【０１４６】
文（１）は複文であり、主節と従属節との修辞関係の種類は“ｅｌａｂｏｒａｔｉｏｎ”である。従って、主節を操作の記述、従属節を条件の記述と見なし、それぞれ正規化を行う。主節の「メールを「理研」フォルダに入れる」については、コマンドに関する知識（図７参照）に「入れる」のエントリが存在するので、その必須パラメータである対象（ｏｂｊｅｃｔ）および宛先（ｄｅｓｔｉｎａｔｉｏｎ）の値を探し、正規化を試みる。まず、対象パラメータの値は「メール」であるが、「メール」はコマンドに関する知識にコマンドとして存在しないので、値の正規化に失敗する。しかし、状況から「メール」の母集合として「受信メールボックス（に含まれるメール）」が同定され、またこの「メール」には付加的なパラメータなどの条件が付いていないので、結局この対象パラメータの値の同定は成功し、「メール」、「受信メールボックス」がそれぞれ文（１）のループ要素、ループ範囲として設定される。次に、場所パラメータの値は「「理研」フォルダ」であり、「（メール）フォルダ」はコマンドに関する知識に存在し、その必須パラメータである名前（ｎａｍｅ）は、この場合には、具体的な文字列「理研」として指定されているので、正規化に成功する。したがって、主節の正規化は換言の必要がなく成功し、その結果である「メールを「理研」フォルダに入れる」という表現が文（１）の操作部分として設定される。
【０１４７】
文（１）の従属節の「メールが理研の人から来た」については、コマンドに関する知識に「来た」を含むエントリが存在せず、また、状況から「来た」の母集合を同定することもできないので、換言を試みる必要がある。そこで換言用知識（図８参照）を検索すると、「［メール］が［人］から来た」という表現を換言前の表現として持つ知識が見つかる。この表現は従属節の表現とマッチング可能であるので、換言のための方法（１）（上節（３．２．４．）参照）を用いることにより、換言後の表現「メールの差出人が理研の人と等しい」が得られる。なお、この書き換えの過程を概念構造のレベルで表すと図９のようになる。次に、この換言後の表現を用いて改めて正規化を試みる。「等しい」はコマンドに関する知識にコマンドとして存在するものの、必須パラメータである対象２の値「理研の人」における「人」はエントリが存在せず、その母集合の同定もできない。また、「人」および「理研の人」に対して書き換えを行うような換言用知識も存在しない。そこで再びこの表現「メールの差出人が理研の人と等しい」に対して換言を試みることになる。その結果、再び換言のための上記方法（１）（上節（３．２．４．）参照）を用いることにより、「メールの差出人アドレスが理研の人のメールアドレスと等しい」という表現が得られる。この新しい表現に対する処理Ａは、先ほどと同様に「理研の人」という箇所で失敗し、さらなる換言が必要となる。今度は、事実的知識に知識データとして追加した文（２）の内容に「理研の人のメールアドレス」という部分があるので、換言のための方法（２）（上節（３．２．４．）参照）を用いることにより、「メールの差出人アドレスの末尾に「．ｒｉｋｅｎ．ｊｐ」が付く」という表現が得られる。「末尾に付く」、「差出人アドレス」はコマンドに関する知識にコマンドとして存在し、「メール」は主節の内容を正規化した際にループ要素として設定済みであり、「．ｒｉｋｅｎ．ｊｐ」は具体的な文字列であるので、この表現は正規化可能である。結局、従属節の正規化の結果として、「メールの差出人アドレスの末尾に「．ｒｉｋｅｎ．ｊｐ」が付く」という表現が文（２）の条件部分として設定される。
【０１４８】
残りの文（３）（４）（５）に対しても同様に正規化処理を行う。とくに、文（３）における「研究室の人」という表現は、ここでの仮定として日常言語プログラム処理システムが研究室のメンバーのリスト（ここでは仮に、「小林さん、高橋さん、…」とする）のデータを持つとしているので、換言用知識を利用して「小林さん、または高橋さん、または…」という形の表現に書き換えられる。各文の正規化処理の結果（プログラム正規化結果）を図１０にまとめて示す。
【０１４９】
今回は、入力プログラムに含まれる「研究室」という語が具体的にどの研究室のことを指すのかを日常言語プログラム処理システムが（文脈解析時に）判断しそのメンバーを特定することができると仮定したが、場合によっては、「研究室」という語がどの研究室を指すのか曖昧で決められないことも考えられる。その場合は、上述したような正規化処理の過程が「研究室の人」のところで失敗するため処理が中断し、日常言語プログラム処理システムはユーザに対して「「研究室」とはどの研究室のことですか？」などと確認または問い合わせの応答を行うことになる。
【０１５０】
＜実行プログラム生成＞
プログラム正規化モジュールからプログラム正規化結果が送られると、実行プログラム生成モジュールは、入力プログラムに含まれる各文の正規化処理の結果を統合し、日常言語により表現された実行プログラムを生成する。この際に、言語理解・生成モジュールにより得られた修辞構造の情報が利用される。
【０１５１】
まず、入力プログラムに含まれる各文の条件部分と操作部分とをつなげて１つの文の形に表現する。次に、修辞構造（木構造）の子ユニットから親ユニットの方向に向かって当該各文の表現を順に統合していく。具体的には例えば、文（４）（５）は“ｃｏｎｄｉｔｉｏｎ”の関係にあり、両者の操作部分である添付ファイルの保存および表示は両立可能な操作であるので、これらを統合すると「もし添付ファイルがあるならば、添付ファイルをマイドキュメントの「研究室」フォルダに保存する。そして、もし添付ファイルが文書ファイルであるならば、添付ファイルを表示する。」という内容の表現が生成される。この表現に続けて、次は同様にして文（３）の内容と統合し、その後、文（１）の内容と統合すると、図１１に示す実行プログラムのうち行（２）〜（１０）の範囲の表現が得られる。最後に、正規化処理の過程で抽出されたループ構造を表す文を行（１）（１１）に追加する。これにより、実行プログラムが完成する。なお、図１１に示す実行プログラムでは、処理の構造が分かりやすいように、「次の処理を行う。…。以上。」といった処理の範囲を明示する表現や、行頭の字下げなどを行っている。
【０１５２】
＜プログラム実行＞
生成された実行プログラムが実行プログラム生成モジュールから送られると、プログラム実行モジュールは、実行プログラム中で指定された制御の流れに従ってメールソフトウェアのコマンドに逐次変換して実行する。
【０１５３】
ここでは、ユーザの受信メールボックスに図１２のような５通のメールが入っている状況を考える。この場合、図１１に示す実行プログラムの行（１）の指定により、この５通のメールに対して行（２）〜（１０）の処理を繰り返す。まず、１番目のメールに対して、行（２）の条件部分のチェックを行う。すなわち、このメールの差出人フィールドを調べるソフトウェアコマンド、およびその値が「小林さん」や「高橋さん」と一致するかどうか調べるコマンドをメールソフトウェアに送出する。その結果、条件が満たされることが判明し、行（３）〜（８）の処理に制御が移る。これにより、このメールを受信メールボックスから「研究室」という名前のフォルダに移動するコマンド、メールを自宅に転送するコマンドが実行され、さらに行（５）（７）の条件のチェック、および添付ファイル（ｒｅｐｏｒｔ．ｐｄｆ）の保存および表示のコマンドが実行される。
【０１５４】
受信メールボックス内の２番目以降のメールに対しても同様に処理が行われる。なお、４番目のメールは、行（２）の条件を満たさないので、行（１０）に進み、その行（行（１０））の条件は満たすので、「理研」という名前のフォルダに移動される。また、５番目のメールは、行（２）（１０）の条件をいずれも満たさないので何も操作が行われない。
【０１５５】
実施例２
実施例２として、ビデオ録画の予約のためのプログラムの生成および実行を行う場合を例に挙げて説明する。より具体的には、ユーザがビデオ機器を操作して自分の好みの条件でテレビ番組の録画予約を行う状況を考える。このような場合、実施例２においては、ビデオ機器が本発明の機能を搭載しているか、または本発明の機能を搭載したコンピュータに接続されていれば、下記の手法により、自分が録画したいと思う番組のジャンルや特徴についての条件や手順を日常言語で記述して与えるだけで、ビデオ機器に与えられるプログラムの生成および実行を行うことが可能であり、ユーザがビデオ機器の細かい操作方法やテレビ番組の番組表（テレビ番組リスト）等を知らなくてもビデオ録画の予約を簡易に行うことができる。
【０１５６】
実施例２においては、図１３に示すような５つの文からなる操作指示テキスト（入力プログラム）をユーザが与えたと仮定して、日常言語プログラム処理システムにおける処理過程を説明する。なおここでは、操作対象となるビデオ機器またはそれに接続されたコンピュータが、電子番組表などのデータにアクセスして放送予定のテレビ番組の情報を取得する機能を備えているものと仮定する。
【０１５７】
＜テキスト理解＞
ユーザが入力した入力プログラムは、クライアント秘書エージェントを介して、ビデオ機器の操作および実行を行う言語アプリケーションに送られる。言語アプリケーションでは、まず、日常言語プログラム処理システムの言語理解・生成モジュールにおいて、セミオティックベースを利用した文解析が行われ、入力プログラムに含まれる各文の意味内容を表す概念構造が各文の語彙文法特徴および意味特徴に基づいて同定される。ここで、テキスト理解結果の例として、文（１）の概念構造を図１４に示す。
【０１５８】
次に、言語理解・生成モジュールにおいて、修辞構造解析が行われ、図１３に示す入力プログラムに含まれる５つの文の間の関係を表す修辞構造が同定される。ここで、図１３に示す入力プログラムに含まれる５つの文の間の修辞関係は次のように求められる。
【０１５９】
(i) 文（２）（５）は文頭に「ただし」という手がかり語があるので、これらの文を先頭とする修辞ユニットはそれぞれ直前の修辞ユニットと“ｏｔｈｅｒｗｉｓｅ”の関係にある。
【０１６０】
(ii) 文（４）は文頭に「そのとき」という手がかり語があるので、文（４）を先頭とする修辞ユニットは直前の修辞ユニットと“ｃｉｒｃｕｍｓｔａｎｃｅ”の関係にある。
【０１６１】
(iii) 文（１）（２）（４）（５）は映画に関する異なる基準（放送日、製作年、製作国、出演者）の条件を表しており、手がかり語によって修辞関係が明示されていない限り、後方の修辞ユニットが前方の修辞ユニットで提示された条件を引き継ぎながら新しい条件を追加する“ｃｏｎｄｉｔｉｏｎ”の関係にある。
【０１６２】
ここで、以上のような修辞関係に関するこれらの条件をすべて満たし、かつ、得点付けにより最も高得点となる木構造を選ぶようにすれば、図１３に示す入力プログラムの修辞構造が図１５に示すようなものであると同定される。
【０１６３】
＜プログラム正規化＞
入力プログラムの各文に対する正規化処理は実施例１の場合と同様に行われる。この際に利用される具体的な知識（ビデオ機器のコマンドに関する知識および換言用知識）を図１６および図１７にそれぞれ示す。なお、図１３に示す入力プログラムに含まれる５つの文のうち文（３）は操作内容ではなく命題的内容を表す文（“ｒｅｌａｔｉｏｎａｌ  ｐｒｏｃｅｓｓ”）であるので、正規化処理は行わず、その内容を事実的知識に追加する。
【０１６４】
具体的には例えば、入力プログラムに含まれる文（１）の従属節である「映画が２００４年１月２日に放送される」は、コマンドに関する知識として「放送される」を含むエントリがないので、換言が行われ、「映画の放送日が２００４年１月２日と等しい」という条件に書き換えられる。ここで、コマンドに関する知識（図１６参照）における「等しい」および「放送日」のエントリが参照され、また、映画はテレビ番組の一種であり、状況から、テレビ番組の母集合としてこのビデオ機器がアクセスすることが可能なテレビ番組リストが同定されるので、この従属節の正規化処理は成功し、「映画の放送日が２００４年１月２日と等しい」、「テレビ番組リスト」、「映画」がそれぞれ文（１）の条件部分、ループ範囲、ループ要素に設定される。各文の正規化処理の結果を図１８にまとめて示す。
【０１６５】
＜実行プログラム生成＞
実行プログラムを生成する処理も実施例１の場合と同様に行われる。
【０１６６】
具体的には例えば、入力プログラムにおいて文（１）と文（２）との間、および文（３）（４）と文（５）との間がそれぞれ“ｏｔｈｅｒｗｉｓｅ”という修辞関係にあるので、「もしＡならばＢ、そうでなければＣ」という表現に統合する。次に、この２つの表現を“ｃｏｎｄｉｔｉｏｎ”という修辞関係を反映させて統合する。この場合、実施例２では、両方の構造の操作部分に「録画する」、「録画しない」という両立不可能な操作が指定されているので、前方の表現の条件部分を最初に検査して（図１９における行（２））、次に後方の表現（行（３）（４）（５））、そして最後に前方の表現の操作部分（行（７）（８））を実行する、という制御構造が導出される。最後に、正規化処理の過程で抽出されたループ構造を表す表現が追加されて実行プログラムが完成する。なお、最終的に生成された実行プログラムを図１９に示す。
【０１６７】
＜プログラム実行＞
生成された実行プログラムが実行プログラム生成モジュールから送られると、プログラム実行モジュールは、実行プログラム中で指定された制御の流れに従ってビデオ機器のコマンドに逐次変換して実行する。ただし、テレビ番組の録画は放送開始時刻にならないと行えないので、実際にはビデオ機器の録画予約コマンドが、実行プログラム中の番組録画の指示に対応すると考える。
【０１６８】
ここでは、プログラム実行時のテレビ番組リストが図２０に示すような内容である状況を考える。この場合、図１９に示す実行プログラムの行（１）の指定により、この５つのテレビ番組に対して行（２）〜（１１）の処理を繰り返す。その結果、図２０に示すテレビ番組リストのうち上から１、３、５番目の映画はそれぞれ行（７）、行（５）、行（７）の条件に該当するので、録画予約が行われない。一方、２、４番目の映画はそれぞれ行（８）、行（３）の指示により録画予約が行われることになる。
【０１６９】
実施例３
実施例３として、インターネットで情報収集を行うためのプログラムの生成および実行を行う場合を例に挙げて説明する。より具体的には、ユーザがインターネット上のＷＷＷを利用して自分の必要とする情報を収集しようとする状況を考える。このような場合、実施例３においては、下記の手法により、訪問するウェブページの範囲や収集する情報の内容および量などについての条件や手順を日常言語で記述して与えるだけで、プログラムの生成および実行を行うことが可能であり、ユーザがインターネットを利用した検索方法に詳しくなくても一連の検索および保存の処理を自動的に行うことができる。
【０１７０】
実施例３においては、図２１に示すような４つの文からなる操作指示テキスト（入力プログラム）をユーザが与えたと仮定して、日常言語プログラム処理システムにおける処理過程を説明する。
【０１７１】
＜テキスト理解＞
ユーザが入力した入力プログラムは、クライアント秘書エージェントを介して、ＷＷＷ閲覧ソフトウェアの操作および実行を行う言語アプリケーションに送られる。言語アプリケーションでは、まず、日常言語プログラム処理システムの言語理解・生成モジュールにおいて、セミオティックベースを利用した文解析が行われ、入力プログラムに含まれる各文の意味内容を表す概念構造が各文の語彙文法特徴および意味特徴に基づいて同定される。ここで、テキスト理解結果の例として、文（１）の概念構造を図２２に示す。
【０１７２】
次に、言語理解・生成モジュールにおいて、修辞構造解析が行われ、図２１に示す入力プログラムに含まれる４つの文の間の関係を表す修辞構造が同定される。ここで、図２１に示す入力プログラムに含まれる４つの文の間の修辞関係は次のように求められる。
【０１７３】
(i) 文（２）は文頭に「ただし」という手がかり語があるので、文（２）を先頭とする修辞ユニットは直前の修辞ユニットと“ｏｔｈｅｒｗｉｓｅ”の関係にある。
【０１７４】
(ii) 文（３）は、前の文の「スポーツニュース」に対して「芸能ニュース」と同じ基準の異なる条件を提示しており、これらは互いに共通要素を持たない条件であるので、文（３）を先頭とする修辞ユニットは直前の修辞ユニットと“ｄｉｓｊｕｎｃｔｉｏｎ”の関係にある。
【０１７５】
(iii) 文（４）は前の３つの文（文（１）〜（３））とは異なる基準（更新日）の条件を示しており、それらの例外的な場合の操作について記述しているので、文（４）と前の３つの文（文（１）〜（３））とは“ｏｔｈｅｒｗｉｓｅ”の関係にある。
【０１７６】
ここで、以上のような修辞関係に関するこれらの条件をすべて満たし、かつ、得点付けにより最も高得点となる木構造を選ぶようにすれば、図２１に示す入力プログラムの修辞構造が図２３に示すようなものであると同定される。
【０１７７】
＜プログラム正規化＞
入力プログラムの各文に対する正規化処理は実施例１、２の場合と同様に行われる。この際に利用される具体的な知識（ＷＷＷ閲覧ソフトウェアのコマンドに関する知識および換言用知識）を図２４および図２５にそれぞれ示す。
【０１７８】
具体的には例えば、入力プログラムに含まれる文（１）の従属節である「スポーツニュースがＡＢＣ新聞のホームページに載っている」は、換言用知識を用いて、「スポーツニュースがＡＢＣ新聞のホームページのニュース記事リストに含まれる」に換言される。しかしながら、この表現に含まれる「ＡＢＣ新聞のホームページのニュース記事リスト」は、これ自体が「スポーツニュース」の母集合として同定されるので、文（１）の条件部分からは除外されて、その結果、文（１）の条件部分としては「スポーツニュース」を条件の形に変換した「ニュース記事がスポーツニュースである」という表現が設定される。
【０１７９】
文（２）〜（４）についても同様であるが、これらは「ニュース記事」を共通のループ要素として持つので、ループ範囲についても最初の文で設定された「ＡＢＣ新聞のホームページのニュース記事リスト」を受け継ぐことになる。各文の正規化処理の結果を図２６にまとめて示す。
【０１８０】
＜実行プログラム生成＞
実行プログラムを生成する処理も実施例１、２の場合と同様に行われる。なおここでは、実施例１、２に現れなかった修辞関係として、“ｄｉｓｊｕｎｃｔｉｏｎ”という関係が文（１）（２）と文（３）との間に存在する。これに対しては、文（１）（２）に対応する実行プログラム（図２７の行（４）（５））と、文（３）に対応する実行プログラム（図２７の行（６））とを順に並べて出力し、逐次的に実行するものとする。なお、最終的に生成された実行プログラムを図２７に示す。
【０１８１】
＜プログラム実行＞
生成された実行プログラムが実行プログラム生成モジュールから送られると、プログラム実行モジュールは、実行プログラム中で指定された制御の流れに従ってＷＷＷ閲覧ソフトウェアのコマンドに逐次変換して実行する。
【０１８２】
ここでは、プログラム実行時にＷＷＷ閲覧ソフトウェアによって取得されるＡＢＣ新聞のホームページ上にあるニュース記事が図２８に示すような内容である状況を考える。この場合には、図２７に示す実行プログラムを実行した結果、図２８に示すニュース記事ののうち上から４、６番目の記事がマイドキュメントの「ニュース」という名前のフォルダに保存される。
【図面の簡単な説明】
【０１８３】
【図１】本発明の一実施の形態に係る日常言語プログラム処理システムの全体構成を示す図。
【図２】図１に示す日常言語プログラム処理システムが前提とする日常言語コンピューティングシステムの概要を説明するための図。
【図３】実施例１で用いられる入力プログラムの一例を示す図。
【図４】図３に示す入力プログラムの入力文（１）の概念構造を示す図。
【図５】図３に示す入力プログラムの修辞構造の一候補を示す図。
【図６】図３に示す入力プログラムの修辞構造の他の候補を示す図。
【図７】実施例１で用いられる知識（コマンドに関する知識）の一例を示す図。
【図８】実施例１で用いられる知識（換言用知識）の一例を示す図。
【図９】実施例１における換言による概念構造の変換の様子の一例を示す図。
【図１０】実施例１におけるプログラム正規化結果の一例を示す図。
【図１１】実施例１における、生成された実行プログラムの一例を示す図。
【図１２】実施例１における実行プログラムのループ範囲（受信メールボックス）の内容の一例を示す図。
【図１３】実施例２で用いられる入力プログラムの一例を示す図。
【図１４】図１３に示す入力プログラムの入力文（１）の概念構造を示す図。
【図１５】図１３に示す入力プログラムの修辞構造の一候補を示す図。
【図１６】実施例２で用いられる知識（コマンドに関する知識）の一例を示す図。
【図１７】実施例２で用いられる知識（換言用知識）の一例を示す図。
【図１８】実施例２におけるプログラム正規化結果の一例を示す図。
【図１９】実施例２における、生成された実行プログラムの一例を示す図。
【図２０】実施例２における実行プログラムのループ範囲（テレビ番組リスト）の内容の一例を示す図。
【図２１】実施例３で用いられる入力プログラムの一例を示す図。
【図２２】図２１に示す入力プログラムの入力文（１）の概念構造を示す図。
【図２３】図２１に示す入力プログラムの修辞構造の一候補を示す図。
【図２４】実施例３で用いられる知識（コマンドに関する知識）の一例を示す図。
【図２５】実施例３で用いられる知識（換言用知識）の一例を示す図。
【図２６】実施例３におけるプログラム正規化結果の一例を示す図。
【図２７】実施例３における、生成された実行プログラムの一例を示す図。
【図２８】実施例３における実行プログラムのループ範囲（ニュース記事リスト）の内容の一例を示す図。
【符号の説明】
【０１８４】
１０  日常言語プログラム処理システム
１１  言語理解・生成モジュール
１２  プログラム正規化モジュール
１３  実行プログラム生成モジュール
１４  プログラム実行モジュール
１５  プランモジュール
２１  セミオティックベース
２２  コマンドに関する知識
２３  換言用知識
２４  事実的知識
３１  クライアント秘書エージェント
３２  言語アプリケーション
３３  アプリケーションソフトウェアまたはハードウェア
４１  日常言語コンピューティングシステム
５１  入力プログラム
５２  テキスト理解結果
５３  プログラム正規化結果
５４  実行プログラム
５５  応答テキスト
【図１】
2005228075.tif 000003
【図２】
2005228075.tif 000004
【図３】
2005228075.tif 000005
【図４】
2005228075.tif 000006
【図５】
2005228075.tif 000007
【図６】
2005228075.tif 000008
【図７】
2005228075.tif 000009
【図８】
2005228075.tif 000010
【図９】
2005228075.tif 000011
【図１０】
2005228075.tif 000012
【図１１】
2005228075.tif 000013
【図１２】
2005228075.tif 000014
【図１３】
2005228075.tif 000015
【図１４】
2005228075.tif 000016
【図１５】
2005228075.tif 000017
【図１６】
2005228075.tif 000018
【図１７】
2005228075.tif 000019
【図１８】
2005228075.tif 000020
【図１９】
2005228075.tif 000021
【図２０】
2005228075.tif 000022
【図２１】
2005228075.tif 000023
【図２２】
2005228075.tif 000024
【図２３】
2005228075.tif 000025
【図２４】
2005228075.tif 000026
【図２５】
2005228075.tif 000027
【図２６】
2005228075.tif 000028
【図２７】
2005228075.tif 000029
【図２８】
2005228075.tif 000030