(57)【要約】【課題】あるソフトウェアで作成した既存のデータを他のソフトウェアで利用したり、他の目的で利用したりすることを容易化する。【解決手段】特定のソフトウェア・オブジェクトで作成された既存のデータを解析し、前記ソフトウェア・オブジェクトが該データを作成するために実行した命令記述列に変換し、前記命令記述列をユーザに理解可能な自然言語による機能記述表現に変換し、前記機能記述表現から意味的な情報を獲得し、前記機能記述表現に意味を付加した要求記述表現を生成する。要求記述表現は自然言語で記述されており、元のデータを再現するために必要な情報が全て含まれている。【選択図】　図１
2004021791.tif 000002
【特許請求の範囲】
【請求項１】
特定のソフトウェア・オブジェクトで作成された既存のデータを指定する手順、
前記データを解析し、前記ソフトウェア・オブジェクトが該データを作成するために実行した命令記述列に変換する手順、
前記命令記述列をユーザに理解可能な自然言語による機能記述表現に変換する手順、及び、
前記機能記述表現から意味的な情報を獲得し、前記機能記述表現に意味を付加した要求記述表現を生成する手順、
を含む処理をコンピュータに実行させることを特徴とする自然言語による既存データの記述方法。
【請求項２】
請求項１に記載の方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータ上で動作するソフトウェア・オブジェクトにより作成された既存データを自然言語で記述する技術に関し、特に、自然言語で操作可能なソフトウェア・オブジェクトに入力すべき自然言語文字列を既存データから生成する技術に関する。本明細書においてソフトウェア・オブジェクトとは、パーソナル・コンピュータやマイコン制御機器等の電子機器を制御するためのオペレーティング・システム（ＯＳ）や、ＯＳ上で動作するアプリケーション・プログラムのことをいう。また、入力機器（キーボード、マイク、手書きタブレット等）から受け取った信号を処理して自然言語の文字列を生成し、その文字列を解析し、解析結果に基づいてソフトウェア・オブジェクトの操作命令を生成するシステムのことを、本明細書では自然言語インターフェースと呼ぶ。
【０００２】
【従来の技術】
ソフトウェア・オブジェクトを自然言語で操作するための自然言語インターフェースに関する研究は従来より盛んに行われている。例として、特開平８−１４７０９６号公報に記載の手書き入力方法及び装置、特開平６−７５６９２号公報に記載の情報処理装置、特開平６−１３１１０８号公報に記載の情報入力装置、特開平６−２８２５６６号公報に記載の情報入力装置等が挙げられる。これら従来の自然言語インターフェースは、ソフトウェア・オブジェクトに用意された内部機能を自然言語で呼び出すために用いられる。例えば、特開平６−７５６９２には、ユーザが「大きくする」と手書き入力すると予め指定された文字列が倍角文字になるようなワードプロセッサが開示されている。また、特開平８−１４７０９６には、ユーザが「録画」と手書き入力すると録画処理が始まるような制御系を有するビデオデッキが開示されている。
【０００３】
従来の自然言語インターフェースは、例えばワードプロセッサ・プログラムやビデオデッキの制御プログラムといった個々のソフトウェア・オブジェクトに特化したものばかりであって、あるソフトウェア・オブジェクトのために開発された自然言語インターフェースを他のソフトウェア・オブジェクトの操作に転用することは基本的に想定されていない。このため、ソフトウェア開発者は、あるソフトウェア・オブジェクト用の自然言語インターフェースを装備したい場合、専用の自然言語インターフェースを新たに開発するために相当な労力を費やさなければならない。
【０００４】
また、従来の自然言語インターフェースでは、ソフトウェア・オブジェクトに予め用意された内部機能を呼び出すための命令が入力されることが想定されている。従って、ユーザは、ソフトウェア・オブジェクトがどのような機能を備えており、それをどのような自然言語で呼び出せばよいかに関する情報（知識）を予め持ち合わせていなければならない。つまり、ユーザの要求に応える形でソフトウェア・オブジェクトが機能するというより、ソフトウェア・オブジェクトの機能に合わせてユーザが命令を出すのである。このような形態に留まる限り、自然言語によるソフトウェア・オブジェクトの操作は柔軟性を欠いたものとならざるを得ない。例えば、ユーザが「映画鑑賞会のお知らせを作成したい」と考え、その考えをそのまま言葉にして入力したとする。「映画鑑賞会のお知らせを作成したい」は、いわばユーザの要求、願望又は目的を表現したものであって、ソフトウェア・オブジェクトの何らかの機能を明示的に呼び出すための命令ではない。従来の自然言語インターフェースではこのような入力に対して適切な処理を実行することは不可能である。
【０００５】
上記課題に鑑み、本願出願人らは、複数の異なるソフトウェア・オブジェクトを統一的に操作できる汎用性と、ユーザの要求、願望、目的等の自然言語表現を入力として受け取ったときでも適切な処理ができる柔軟性を備えた自然言語インターフェースに関する発明を成した（特願２００２−７６３１９）。この発明では、入力された自然言語の文字列をユーザの要求の表現ととらえて文字列の解析を行い、その要求に応じた処理を行うのに最適なソフトウェア・オブジェクトを選択し、そのソフトウェア・オブジェクトに前記処理を行わせるための機能記述表現を中間的に生成し、その機能記述表現をＯＳ又はプログラムにより実行可能な命令記述列に変換する。
【０００６】
【発明が解決しようとする課題】
一方、従来のソフトウェア・オブジェクトでは、ユーザの要求を実現するために生成するデータを、そのソフトウェア・オブジェクトだけが理解可能な専用の書式で保存していることが多い。ソフトウェア・オブジェクトが生成するデータには、文書や映像などのコンテンツ・データや、他のソフトウェア・オブジェクトやハードウェア機器などを制御するための制御シーケンス・データなどがある。しかし、その書式は特定のソフトウェア・オブジェクトだけが理解可能なため、データ自体の再利用性に乏しい。例えば、あるワードプロセッサで既に作成した文書データを、他のワードプロセッサで内容を編集して再利用したい場合がある。その場合、その文書データを特定のワードプロセッサが理解可能な専用の書式に変換するか、どのワードプロセッサでも理解可能な汎用の書式に変換することが必要になる。また、ワードプロセッサで作成した文書データを、他の種類のソフトウェア・オブジェクト、例えばメール・アプリケーションやプレゼンテーション・アプリケーションを使って他の用途に転用したい場合も、同様の書式の問題のため、煩雑なデータ変換作業が必要であったり、用途が限定されてしまうことが多い。
【０００７】
さらにまた、従来のソフトウェア・オブジェクトでは、ユーザの要求を実現するために生成するデータに、ユーザの要求を実現するための必要最低限の情報しか含まないことが一般的である。例えば、ワードプロセッサが生成する文書データには、文書のタイトルや作成日、作成者などの文字列が含まれているが、どの文字列がタイトルで、どの文字列が作成日なのかを特定する情報（いわゆる文字列の意味的情報）は一般に含まれていない。このため、ユーザが文書データの一部を修正して、他の用途に転用した場合でも、ソフトウェア・オブジェクトは文書データのどの部分を修正すればよいかを判断する情報を持たず、すべてユーザの判断に任されることになる。
【０００８】
従来の自然言語インターフェースは、以上のような従来のソフトウェア・オブジェクトが抱えるデータの再利用性の問題を解決していない。ユーザがソフトウェア・オブジェクトを使って既に作成したデータには、ある特定の用途に限られたものではあるが、ユーザの要求を実現するのに必要十分な情報が含まれている。従って、これらのデータを他の用途に転用したい場合、他のソフトウェア・オブジェクトを使って表現形式を変更したり、既存のデータの一部分だけを修正することで、望みのデータが得られことが多い。実際、人間は日常的に、既存のデータを元にして、その構造や意味を理解して、適切なソフトウェア・オブジェクトを選択し、最小限の修正で望みのデータを作成することを行っている。しかし、従来の自然言語インターフェースは、ユーザが入力する自然言語で表現された要求には着目しているが、ソフトウェア・オブジェクトが出力したデータを再利用することには着目していないため、ユーザに対して多大な負荷を強いる結果となっている。
【０００９】
本発明は以上のような課題を解決するために成されたものであり、その目的とするところは、複数の異なるソフトウェア・オブジェクトを統一的に操作できる汎用性と、ユーザの要求を実現するために作成したデータを他の用途に転用することができる柔軟性を備えた自然言語インターフェースを実現するための技術を提供することにある。
【００１０】
【課題を解決するための手段】
上記課題を解決するために成された本発明は、
特定のソフトウェア・オブジェクトで作成された既存のデータを指定する手順、
前記データを解析し、前記ソフトウェア・オブジェクトが該データを作成するために実行した命令記述列に変換する手順、
前記命令記述列をユーザに理解可能な自然言語による機能記述表現に変換する手順、及び、
前記機能記述表現から意味的な情報を獲得し、前記機能記述表現に意味を付加した要求記述表現を生成する手順
を含む処理をコンピュータに実行させることを特徴とする。
【００１１】
また、本発明は、コンピュータに上記のような処理を実行させるためのプログラムを提供する。
【００１２】
【発明の実施の形態】
本発明による処理の手順は次の通りである。まず、ユーザが直接的に、もしくは間接的に、ユーザの要求を実現するために参照するデータを指定する。ここで言う「直接的」とは、ユーザ自身または他のユーザが特定のソフトウェア・オブジェクトを使って既に作成したデータ（一般にはデータファイル）を、コンピュータのＯＳ（オペレーティング・システム）の機能を使って指定することである。また、「間接的」とは、ユーザがコンピュータの入力手段を使って入力した要求を解釈して、その要求を実現するのに最も適切なデータを既存のデータから選択し、指定することである。ここでは「映画鑑賞会のお知らせ」というタイトルの文書データが、ユーザにより直接的に指定されたものとする。
【００１３】
次に、指定したデータを解析して、そのデータを作成したソフトウェア・オブジェクトが実行可能な命令記述列に変換する。具体的には、データの各書式と、ソフトウェア・オブジェクトが実行可能な命令記述との対応を表した辞書（以下、データ解析部辞書と呼ぶ）を用いて、指定したデータを命令記述列に変換する。データ解析部辞書は、指定したデータを作成するソフトウェア・オブジェクトごとに用意する。前述の「映画鑑賞会のお知らせ」というタイトルの文書データが指定された場合は、文書データを作成した特定のワードプロセッサ用のデータ解析部辞書が選択され、例えば、文書データ内にサイズが２４ポイントの文字列が見つかると、「Ｓｅｌｅｃｔｉｏｎ．Ｆｏｎｔ．Ｓｉｚｅ　＝　２４」のように変換する。
【００１４】
次に、変換した命令記述列から、ユーザが理解可能な自然言語による機能記述表現に変換する。具体的には、各命令記述と、ユーザが理解可能な自然言語による機能記述表現との対応を表した辞書（以下、命令伝達部辞書と呼ぶ）を用いて、命令記述列を機能記述表現に変換する。命令伝達部辞書は、命令記述列を実行可能なソフトウェア・オブジェクトごとに用意する。前述の「映画鑑賞会のお知らせ」というタイトルの文書データが指定された場合は、文書データを作成した特定のワードプロセッサ用の命令伝達部辞書が選択され、例えば、「Ｓｅｌｅｃｔｉｏｎ．Ｆｏｎｔ．Ｓｉｚｅ　＝　２４」という命令記述を、「選択した文字列の大きさを２４ポイントにする」のように変換する。
【００１５】
次に、変換した機能記述表現から意味的な情報を獲得し、機能記述表現に意味を付加した要求記述表現を生成する。具体的には、各機能記述と、ユーザの要求の意味論表現との対応を表した辞書（以下、機能翻訳部辞書と呼ぶ）を用いて、機能記述表現から要求記述表現を生成する。機能翻訳部辞書の一例を図２に示す。図２の機能翻訳部辞書は、機能記述表現および要求記述表現に用いられる語句について、相互に置き換え可能な語句組（語句Ａ、語句Ｂ）を一つの変換対とした変換表である。この変換表により、例えば「文字列のサイズを大きくする」という語句は、「文字列を視覚的に強調する」という語句に変換できる。また逆に、「文字列を視覚的に強調する」を「文字列のサイズを大きくする」に変換することも可能である。また、図２の「（＄Ａ＝）」という書式は、語句内の可変要素を表す変数で、「（＄Ａ＝１２）」のような形式で具体的な値を代入することで、通常の機能記述表現および要求記述表現として使える。
【００１６】
図２の辞書に基づく機能記述表現から要求記述表現の生成手順を更に具体的に説明する。　例えば、
「選択した文字列の大きさを２４ポイントにする」
「選択した文字列をセンタリングする」
「選択した文字列を波型にする」
という一連の機能記述表現は、機能翻訳部辞書内にある、
「文字列のサイズを大きくする」×「文字列のサイズを（＄Ｂ＝２４）ポイントにする」
「文字列を視覚的に強調する」×「文字列のサイズを大きくする」
「文字列を視覚的に強調する」×「文字列をセンタリングする」
「文字列を視覚的に強調する」×「文字列を波型にする」
といった変換対に適合することから、
「選択した文字列は視覚的に強調されている」
という記述に変換することができる。
さらに、
「文字列『映画鑑賞会のお知らせ』を入力する」
という記述が機能記述表現の先頭にあると、機能翻訳部辞書内にある、
「文書のタイトル」×「『（＄Ａ＝）のお知らせ』」
「文書のタイトルを入力する」×「文字列『（＄Ａ＝）』を入力する／文字列を文書冒頭に配置する」
といった変換対に適合することから、
前述の「選択した文字列は視覚的に強調されている」という記述と併せることにより、
「文書のタイトルの文字列『（＄Ａ１＝（＄Ａ２＝映画鑑賞会）のお知らせ）　』を入力する」
という記述に変換することができる。すなわち、入力された『映画鑑賞会のお知らせ』という文字列は、文書のタイトルと認識されたことになる。
これらの結果より、
「文字列『映画鑑賞会のお知らせ』を入力する」
「入力した文字列を選択する」
「選択した文字列の大きさを２４ポイントにする」
「選択した文字列をセンタリングする」
「選択した文字列を波型にする」
という一連の機能記述表現から、最終的に、
「文書のタイトルの文字列『（＄Ａ１＝（＄Ａ２＝映画鑑賞会）のお知らせ）』を入力する」「文書のタイトルの文字列の大きさを（＄Ｂ＝２４）ポイントにする」
「文書のタイトルの文字列をセンタリングする」
「文書のタイトルの文字列を波型にする」
というテンプレート形式の要求記述表現が得られる。
【００１７】
【発明の効果】
以上のように、本発明は、ソフトウェア・オブジェクトにより作成された既存のデータから、ユーザの要求を実現するための自然言語による要求記述表現を、自動的に生成する基本的なアーキテクチャを提供するものである。このような本発明により、ソフトウェア・オブジェクトと自然言語インターフェースとの連携を従来よりも簡単に実現することができる。すなわち、生成された要求記述表現は特定のソフトウェア・オブジェクトに依存しない自然言語で表現されているため、もしユーザの要求を、他のソフトウェア・オブジェクトを操作することにより実現する場合でも、要求記述表現と命令記述列とを関連付ける辞書を作成するだけで、そのソフトウェア・オブジェクトを操作できる仕組みを実現することができる。
【００１８】
また、生成された要求記述表現は、ユーザが理解可能な自然言語で表現されているということだけでなく、ユーザの要求に含まれる意味的な情報が加味され、かつ可変要素が認識されているため、要求の可変要素部分の最小限の変更だけで、他の用途に転用することができる。その結果、ユーザ自身または他のユーザが過去に作成した膨大なデータを、様々な用途に有効に利用することができる。
【００１９】
例えば、本発明の方法で得られる要求記述表現は自然言語表現であるから、それはそのまま特願２００２−７６３１９の方法における入力情報することができる。このように２つの発明を組み合わせることにより、自然言語を介したデータ変換が可能になる。例えば、Ａというワードプロセッサで作成されたデータをＢというワードプロセッサで利用したいが、ＢにはＡの出力データを読み込むための変換フィルタがなく、しかも、Ａというワードプロセッサが手元にない場合、まず、本発明に係る方法でＡの出力データを自然言語の中間データに変換し、更にその中間データを特願２００２−７６３１９の方法でＢの形式のデータに変換するのである。このとき、中間データの段階でユーザはその内容を自然言語の要求記述表現で確認することができ、必要ならそこで適宜内容を編集してからＢに読み込ませることも可能である。要求記述表現には「タイトル」「宛名」「日付」というように、文書の構成要素の意味を示す情報が含まれているため、ＡやＢの操作を全く知らないユーザでも容易に文書編集が可能である。
【００２０】
他にも、例えば、本発明の方法で得られる自然言語の要求記述表現から元のデータファイルの構造を解析することができる。また、本発明の方法で機器制御設定データを自然言語の要求記述表現に変換し、ユーザが適宜修正してから、特願２００２−７６３１９の方法で元の機器設定データに戻すことも可能である。また、本発明の方法でサンプル文書データを自然言語の要求記述表現に変換すれば、サンプル文書が出来上がるまでの操作手順を示す文書が出来上がる。このような文書は、例えばアプリケーション操作学習用テキストの作成に利用できる。また、本発明の方法で得られた自然言語の要求記述表現を既存の翻訳プログラムで他国語に翻訳すれば、単にテキスト情報だけでなく書式やレイアウト等に関する指示まで当該他国語に翻訳された文書が得られる。
【００２１】
【実施例】
本発明の一実施例であるシステムについて図面を参照しながら説明する。本実施例のシステムは、特願２００２−７６３１９に記載の方法を応用してファイルを間接的に指定し、そのファイルのデータを本発明による方法で自然言語の要求記述表現に変換する。本実施例のシステムの概略構成を図３に示す。このコンピュータ・システムは、一般のパーソナル・コンピュータを利用して構成されたものであって、ＣＰＵ（中央演算処理装置）１０、ＲＯＭ（読出し専用主記憶装置）１１、ＲＡＭ（読書き可能主記憶装置）１２、外部記憶装置コントローラ１３と外部記憶装置（補助記憶装置）１４、外部と連携するためのネットワーク・コントローラ１５、ユーザ・インターフェース・アダプター１６、ディスプレイ・コントローラ２１とディスプレイ２２、サウンド・コントローラ２３、スピーカー２４を備えている。ユーザ・インターフェース・アダプター１６には、言葉列を入力するための各種入力機器（キーボード１７、音声入力用マイク１８、マウス１９、手書き入力用タブレット２０）が接続されている。
【００２２】
本実施例のシステムの機能的構成を図４に示す。図４において、自然言語入力部３０は自然言語による言葉、言葉列又は文（以下、これらをまとめて「言葉」と呼ぶ）の入力を受け付け、その言葉を表す文字列を生成する手段である。言葉の入力方法としては、キーボード１７を用いたキー入力、マイク１８を用いた音声入力、マウス１９を用いた画面上の文字入力パネルの操作、あるいは、タブレット２０を用いた手書き入力から選択できる。もちろん、これら以外の方法でも、そのための入力機器とそのためのソフトウェア（ドライバ）を用意しさえすれば、言葉の入力に利用できる。
【００２３】
自然言語解析部３４は、自然言語解析、辞書によるパーシング、対話形式構文生成、カテゴリー辞書マネージャー機能を有しており、上記文字列を解析して意味論的表現を生成する。文字列の解析には、自然言語処理の分野で一般的に知られた技術が利用できる。例えば、奈良先端科学技術大学院大学の「茶筌」、京都大学の「ＫＮＰ」等の自然言語解析エンジンが既に知られているが、このような既存のエンジンを用いて自然言語解析部３４を構成することができる。
【００２４】
データ指定部３６は、意味論的表現に現れる全ての概念でデータ指定部辞書４２を検索し、ユーザの要求に応じた処理を行うのに最適なソフトウェア・オブジェクト、およびそのソフトウェア・オブジェクトが作成したデータを選択する。データ指定部辞書４２には、意味論的表現に用いられる概念とシステムで利用可能なソフトウェア・オブジェクト、およびそのソフトウェア・オブジェクトが生成したデータとを関連付ける情報が保存されている。
【００２５】
データ解析部３７は、データ指定部３６により指定したデータを構文的に解析し、指定したデータを作成したソフトウェア・オブジェクトが、指定したデータを作成するための実行可能な命令記述列に変換する。
【００２６】
命令記述変換部３８は、データ解析部３７により作成された命令記述列を、命令伝達部辞書４４を検索することにより、自然言語で表現された機能記述表現に変換する。
【００２７】
機能記述変換部４０は、命令記述変換部３８により作成された機能記述表現を、機能翻訳部辞書４６を検索することにより、機能記述表現から意味的な情報を獲得し、機能記述表現に意味を付加した要求記述表現を生成する。機能翻訳部辞書４６の構成例は図２に示した通りである。
【００２８】
機能翻訳部４１は、意味論的表現に現れる全ての概念で機能翻訳部辞書４６を検索し、辞書に記憶されているソフトウェア・オブジェクトの機能に合った機能記述表現に置き換える。
【００２９】
命令伝達部３９は、機能翻訳部４１により作成された機能記述表現に現れる全ての概念で命令伝達部辞書４４を検索し、辞書に記憶されているソフトウェア・オブジェクト４５の機能を実行するための命令記述列を生成する。命令記述列は、例えば、該当ソフトウェア・オブジェクト４５のＡＰＩとパラメータ、あるいは、コマンドストリームを介して渡すコマンド列である。命令伝達部３９は命令記述列を実行し、該当ソフトウェア・オブジェクト４５の機能を実行する。
【００３０】
応答発生部３３は、命令伝達部３９により実行されたソフトウェア・オブジェクト４５の実行結果を受け取り、ユーザが所望する形態で応答する。応答の形態は、例えば、ディスプレイ２２への表示、プリンタ（図示せず）による印刷、データベースへの情報格納、機器の制御等、様々なものが考えられる。
【００３１】
辞書管理部３５は、データ指定部辞書４２、データ解析部辞書４３、命令伝達部辞書４４、機能翻訳部辞書４６の新規情報の作成、格納情報の変更、削除、閲覧表示を行う。さらに、制御部３２は自然言語入力部３０、自然言語解析部３４、データ指定部３６、データ解析部３７、命令記述変換部３８、命令伝達部３９、機能記述変換部４０、機能翻訳部４１、応答発生部３３、ユーザ対話部３１、辞書管理部３５に必要なデータを受け渡し、一連の動作を制御する。
【００３２】
「映画鑑賞会のお知らせを作成したい」という入力文字列の処理を本実施例のシステムで行う手順について図１、図２及び図５を参照しながら説明する。
【００３３】
映画鑑賞会のお知らせを作成しよう考えたユーザが、例えばキーボード１７を用いて「映画鑑賞会のお知らせを作成したい」という文を打ち込むと、自然言語入力部３０が、キーボード入力インターフェースを通じて「映画鑑賞会のお知らせを作成したい」という文字列を受け取る（ステップ５０）。この文字列は自然言語解析部３４に渡される。
【００３４】
自然言語解析部３４は受け取った文字列を解析し、例えば「映画（の）」、「鑑賞会（の）」、「お知らせ（を）」及び「作成（したい）」という、構文および意味的に分離した４つの言葉から成る意味論的表現を生成する（ステップ５１）。この意味論的表現はデータ指定部３６に渡される。
【００３５】
データ指定部３６は、データ指定部辞書４２に基づいて上記４つの言葉のソフトウェア・オブジェクト別評価点を取得する。データ指定部辞書４２の一部の構成例を図５に示す。図５の辞書を用いた場合、「映画（の）」「鑑賞会（の）」「お知らせ（を）」「作成（したい）」という意味論的表現から、
ワードプロセッサの評価点＝１．７
電子メールクライアントの評価点＝１．２
作図ソフトの評価点＝０．１
というようにソフトウェア・オブジェクト毎の評価点が得られる。この結果から、データ指定部３６は、総合的な評価点の最も高いソフトウェア・オブジェクトは「ワードプロセッサ」であると判断し、データ指定部辞書４２に格納されている「ワードプロセッサ」向けのデータ指定処理を実行する。
【００３６】
データ指定処理は、意味論的表現から適切なデータを検索し、評価することにより、最適なデータを指定する。例えば、意味論的表現に含まれる言葉をファイル名に含むデータファイルであって、先に選択したソフトウェア・オブジェクト（今の例では「ワードプロセッサ」）により作成されたデータファイルを検索し、最新の日付のデータファイルを最適と評価して指定する。なお、最適なデータファイルを自動評価する前に候補ファイルの一覧を表示し、ユーザに確認及び選択の機会を与えるようにしてもよい。ここでは「映画鑑賞会」という名前のデータファイルが指定されたとする。（ステップ５２）
【００３７】
データ解析部３７は、データ指定部３６により指定したデータを構文的に解析し、指定したデータを作成するためのソフトウェア・オブジェクトが実行可能な命令記述列に変換する。例えば、データ指定部３６で指定したデータがワードプロセッサにより作成された文書データであった場合、データ解析部３７はそのワードプロセッサ用のデータ解析部辞書４３により、文書データ内に格納されている文字列データ、および文字列の大きさや位置を指定したレイアウト情報を読み取り、ソフトウェア・オブジェクトが実行可能な命令記述に変換する。例えば、文書データ内にサイズが２４ポイントの文字列が見つかると、「Ｓｅｌｅｃｔｉｏｎ．Ｆｏｎｔ．Ｓｉｚｅ　＝　２４」のように変換する。（ステップ５３）
【００３８】
次に、命令記述変換部３８は、データ解析部３７により作成された命令記述列を、命令伝達部辞書４４を検索することにより、特定のソフトウェア・オブジェクトに依存しない、自然言語で表現された機能記述表現に変換する。例えば、「Ｓｅｌｅｃｔｉｏｎ．Ｆｏｎｔ．Ｓｉｚｅ　＝　２４」という命令記述を、「選択した文字列の大きさを２４ポイントにする」のように変換する。（ステップ５４）
【００３９】
機能記述変換部４０は、命令記述変換部３８により作成された機能記述表現を、機能翻訳部辞書４６（図２）を検索することにより、機能記述表現から意味的な情報を獲得し、機能記述表現に意味を付加した要求記述表現を生成する。例えば、
「文字列『映画鑑賞会のお知らせ』を入力する」
「入力した文字列を選択する」
「選択した文字列の大きさを２４ポイントにする」
「選択した文字列をセンタリングする」
「選択した文字列を波型にする」
という一連の機能記述表現から、
「文書のタイトルの文字列『（＄Ａ１＝（＄Ａ２＝映画鑑賞会）のお知らせ）』を入力する」「文書のタイトルの文字列の大きさを（＄Ｂ＝２４）ポイントにする」
「文書のタイトルの文字列をセンタリングする」
「文書のタイトルの文字列を波型にする」
という要求記述表現を生成する。（ステップ５５）
【００４０】
次に、機能翻訳部４１は、要求記述表現に含まれる可変要素を再定義して、機能記述表現に翻訳する。機能翻訳部４１は、要求記述表現に含まれる可変要素を見つけると、ユーザ対話部３１を介してユーザに可変要素部分の値を問い合わせる。ユーザが定義に相当する言葉（文字列）を入力すると、機能翻訳部４１は要求記述表現の可変要素部分をその言葉で置き換え、機能記述表現に変換する。例えば、要求記述表現に、「日付の文字列『（＄Ｙ＝）年（＄Ｍ＝）月（＄Ｄ＝）日』を入力する」があれば、三つの可変要素の値をユーザに問い合わせて、「日付の文字列『（＄Ｙ＝２００２）年（＄Ｍ＝１２）月（＄Ｄ＝１）日』を入力する」という機能記述表現に翻訳する。同様に、「場所の文字列『（＄Ｐ＝）』を入力する」、「題名の文字列『（＄Ｔ＝）』を入力する」、「あらすじの文字列『（＄Ｓ＝）』を入力する」という要求記述表現の可変要素部分の値をユーザに問い合わせることにより、可変要素の含まれない機能記述表現に翻訳する。（ステップ５６）
【００４１】
次に、命令伝達部３９は可変要素を含まない機能記述表現を、命令伝達部辞書４４を用いて命令記述列を生成し、ソフトウェア・オブジェクト４５に対してその命令を実行する。例えば、「ワードプロセッサを起動する」という機能記述表現に対しては、ハードディスクの所定場所に保存されたワードプロセッサのプログラムを読み出して実行するための命令記述列を生成し、ＯＳに実行させる。また、「日付の文字列『（＄Ｙ＝２００２）年（＄Ｍ＝１２）月（＄Ｄ＝１）日』を入力する」という機能記述表現に対しては、文字列挿入機能を呼び出すための命令記述列を生成し、ＯＳを通じてワードプロセッサのプログラムに実行させる。ＯＳに渡すべき命令記述列はＯＳのアプリケーション・プログラミング・インターフェース（ＡＰＩ）の仕様に従って作成し、ワードプロセッサのプログラムに渡すべき命令記述列はワードプロセッサのＡＰＩの仕様に従って作成する。（ステップ５７）
【００４２】
このようにして、ユーザはユーザ対話部３１のガイダンスに沿い、「文書のタイトル」、「日付」、「場所」、「題名」、「あらすじ」という最小限の情報を入力することで、「映画鑑賞会のお知らせ」という文書データを簡単に作成できる。
【００４３】
以上、本発明の実施例について説明したが、実施例は上記に限られるものではない。例えば、作成したデータが案内文書で、文書内に「山田様」もしくは「会員各位」という文字列があった場合に、機能翻訳部辞書により「宛名の文字列『（＄Ｎ＝山田）様』を入力する」もしくは「宛名の文字列『（＄Ｎ＝会員）各位』を入力する」という要求記述表現が生成される。すなわち、案内文書の宛名部分に可変要素である変数が含まれていることが認識されることになる。ここで、本発明の実施例のシステムに、既存の会員名簿データベース管理システムを連動させると、宛名の可変要素である変数＄Ｎに、会員名簿データベース内の「会員名」を結び付けることにより、各会員宛ての大量の案内文書を一度に作成することもできる。
【００４４】
また、上記実施例ではワードプロセッサのようなソフトウェア・オブジェクトが作成したコンテンツ・データを対象としたが、他のソフトウェア・オブジェクトやハードウェア機器などを制御するための制御シーケンス・データにも有効である。例えば、あるハードウェア機器を操作するための制御シーケンス・データを自然言語で表現し、音声出力型コントローラを設けて読み上げることにより、機器操作に不慣れな初心者に対しても、より良い操作インタフェースを提供することができる。
【００４５】
さらにまた、本発明では、ソフトウェア・オブジェクトが生成するデータを、その書式や内容に関わらず、ユーザの要求を実現するために用いられた自然言語で表現することができるため、自然言語文字列によるデータの検索効率を向上させることができる。例えば、「映画」という文字列をキーとしたデータ検索により、「映画鑑賞会のお知らせ」というタイトルの文書データだけでなく、従来の非言語的な表現形式では不可能であった、「映画番組を予約する」ためのビデオ機器の制御シーケンス・データなども探知することができ、データの再利用性をさらに向上させることができる。
【図面の簡単な説明】
【図１】本発明に係る方法によるデータ記述の生成と利用手順の一例を示すフローチャート。
【図２】機能翻訳部辞書の構成例。
【図３】本発明の一実施例であるコンピュータ・システムのハードウエア構成を示すブロック図。
【図４】本発明に従って構成された自然言語インターフェ−スの機能的構成を示すブロック図。
【図５】データ指定部辞書の一部の構成例。
【符号の説明】
３０…自然言語入力部
３１…ユーザ対話部
３２…制御部
３３…応答発生部
３４…自然言語解析部
３５…辞書管理部
３６…データ指定部
３７…データ解析部
３８…命令記述変換部
３９…命令伝達部
４０…機能記述変換部
４１…機能翻訳部
４２…データ指定部辞書
４３…データ解析部辞書
４４…命令伝達部辞書
４５…ソフトウェア・オブジェクト
４６…機能翻訳部辞書
【図１】
2004021791.tif 000003
【図２】
2004021791.tif 000004
【図３】
2004021791.tif 000005
【図４】
2004021791.tif 000006
【図５】
2004021791.tif 000007