(57)【要約】【課題】言語に依存する形式で記述される文字列の検証の効率性及び確実性を高める。【解決手段】検証作業支援装置１において、コンテンツ解析部１０は、コンテンツを解析してパラグラフへの分割や地域／文化型データの抽出を行い、その解析結果を解析結果記憶部２０に記憶する。また、第１検証部３０は、解析結果に基づいて、コンテンツとパラグラフのロケールの整合性やパラグラフと地域／文化型データのロケールの整合性を検証し、第２検証部４０は、解析結果に基づいて、言語Ａのパラグラフと言語Ｂのパラグラフの対応や言語Ａの地域／文化型データと言語Ｂの地域／文化型データの内容の整合性を検証する。更に、コンテンツ更新部５０は、第１検証部３０や第２検証部４０による検証結果が検証者に分かり易く表示されるようにコンテンツを更新する。【選択図】図１
2010186406.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアの国際化の検証を支援する装置であって、
前記ソフトウェアを動作させることによって出力されたテキストデータを取得するテキストデータ取得部と、
前記テキストデータ取得部により取得された前記テキストデータから、言語に依存する形式で記述される種類として予め定められた特定の種類の複数の文字列を抽出する文字列抽出部と、
前記ソフトウェアを第１の言語環境で動作させることによって出力された第１のテキストデータから前記文字列抽出部により抽出された複数の文字列のうちの第１の文字列と、前記ソフトウェアを第２の言語環境で動作させることによって出力された第２のテキストデータから前記文字列抽出部により抽出された複数の文字列のうちの第２の文字列とを関連付けるかどうかを、当該第１の文字列と当該第２の文字列との差分を用いて決定する文字列関連付け決定部と、
前記文字列関連付け決定部により前記第１の文字列と前記第２の文字列とを関連付けると決定された場合に、当該第１の文字列を特定の記述形式に正規化して得られた第１の正規化文字列と、当該第２の文字列を前記特定の記述形式に正規化して得られた第２の正規化文字列とを比較することにより、当該第１の文字列が表す内容と当該第２の文字列が表す内容とが整合しているかどうかを判定する内容整合性判定部と
を含む、装置。
【請求項２】
前記文字列関連付け決定部は、前記第１のテキストデータから前記文字列抽出部により抽出された複数の文字列の各々と、前記第２のテキストデータから前記文字列抽出部により抽出された複数の文字列の各々とを対応付けることにより、複数組の文字列を形成し、前記第１の文字列と前記第２の文字列とを関連付けるかどうかを、各組の文字列の差分の当該複数組におけるばらつき度合に基づいて決定する、請求項１の装置。
【請求項３】
前記内容整合性判定部は、前記第１の正規化文字列と前記第２の正規化文字列との差分が予め定めた閾値以内である場合に、前記第１の文字列が表す内容と前記第２の文字列が表す内容とが整合していると判定する、請求項１の装置。
【請求項４】
前記内容整合性判定部は、前記第１の正規化文字列及び前記第２の正規化文字列の少なくとも何れか一方を文字ごとに特定の規則で変換して得られた２つの文字列における文字の出現順序及び出現頻度を比較することにより、前記第１の文字列が表す内容と前記第２の文字列が表す内容とが整合しているかどうかを判定する、請求項１の装置。
【請求項５】
前記第１のテキストデータ内の前記第１の文字列及び前記第２のテキストデータ内の前記第２の文字列の少なくとも何れか一方に関連付けて、前記内容整合性判定部による判定結果を出力する出力部を更に含む、請求項１の装置。
【請求項６】
前記テキストデータ取得部により取得された前記テキストデータの言語と、前記文字列抽出部により抽出された前記複数の文字列の各々の言語とが整合しているかどうかを判定する言語整合性判定部を更に含む、請求項１の装置。
【請求項７】
ソフトウェアの国際化の検証を支援する装置であって、
前記ソフトウェアを動作させることによって出力された複数のテキストブロックを取得するテキストブロック取得部と、
前記テキストブロック取得部により取得された前記複数のテキストブロックの各々から、言語に依存する形式で記述される種類として予め定められた特定の種類の文字列を抽出する文字列抽出部と、
前記ソフトウェアを第１の言語環境で動作させることによって出力された複数のテキストブロックのうちの第１のテキストブロックと、前記ソフトウェアを第２の言語環境で動作させることによって出力された複数のテキストブロックのうちの第２のテキストブロックとを関連付けるかどうかを、当該第１のテキストブロックから前記文字列抽出部により抽出された文字列と、当該第２のテキストブロックから前記文字列抽出部により抽出された文字列とに基づいて決定するテキストブロック関連付け決定部と
を含む、装置。
【請求項８】
前記テキストブロック関連付け決定部は、前記第１のテキストブロックと前記第２のテキストブロックとを関連付けるかどうかを、当該第１のテキストブロックから前記文字列抽出部により抽出された文字列の数と、当該第２のテキストブロックから前記文字列抽出部により抽出された文字列の数との比較結果に基づいて決定する、請求項７の装置。
【請求項９】
ソフトウェアの国際化の検証を支援する装置であって、
前記ソフトウェアを動作させることによって出力されたテキストデータから複数のテキストブロックを抽出するテキストブロック抽出部と、
前記テキストブロック抽出部により抽出された前記複数のテキストブロックの各々から、言語に依存する形式で記述される種類として予め定められた特定の種類の複数の文字列を抽出する文字列抽出部と、
前記ソフトウェアを第１の言語環境で動作させることによって出力された第１のテキストデータから前記テキストブロック抽出部により抽出された複数のテキストブロックのうち第１のテキストブロックと、前記ソフトウェアを第２の言語環境で動作させることによって出力された第２のテキストデータから前記テキストブロック抽出部により抽出された複数のテキストブロックのうちの第２のテキストブロックとを関連付けるかどうかを、当該第１のテキストブロックから前記文字列抽出部により抽出された複数の文字列と、当該第２のテキストブロックから前記文字列抽出部により抽出された複数の文字列とに基づいて決定するテキストブロック関連付け決定部と、
前記テキストブロック関連付け決定部により前記第１のテキストブロックと前記第２のテキストブロックとを関連付けると決定された場合に、当該第１のテキストブロックから前記文字列抽出部により抽出された複数の文字列のうちの第１の文字列と、当該第２のテキストブロックから前記文字列抽出部により抽出された複数の文字列のうちの第２の文字列とを関連付けるかどうかを、当該第１の文字列と当該第２の文字列との差分を用いて決定する文字列関連付け決定部と、
前記文字列関連付け決定部により前記第１の文字列と前記第２の文字列とを関連付けると決定された場合に、当該第１の文字列を特定の記述形式に正規化して得られた第１の正規化文字列と、当該第２の文字列を前記特定の記述形式に正規化して得られた第２の正規化文字列とを比較することにより、当該第１の文字列が表す内容と当該第２の文字列が表す内容とが整合しているかどうかを判定する内容整合性判定部と、
前記第１のテキストデータ内の前記第１の文字列及び前記第２のテキストデータ内の前記第２の文字列の少なくとも何れか一方に関連付けて、前記内容整合性判定部による判定結果を出力する出力部と
を含む、装置。
【請求項１０】
ソフトウェアの国際化の検証を支援する方法であって、
前記ソフトウェアを第１の言語環境で動作させることによって出力された第１のテキストデータを取得するステップと、
前記第１のテキストデータから、言語に依存する形式で記述される種類として予め定められた特定の種類の複数の文字列を抽出するステップと、
前記ソフトウェアを第２の言語環境で動作させることによって出力された第２のテキストデータを取得するステップと、
前記第２のテキストデータから前記特定の種類の複数の文字列を抽出するステップと、
前記第１のテキストデータから抽出された複数の文字列の各々と、前記第２のテキストデータから抽出された複数の文字列の各々とを、当該第１のテキストデータから抽出された各文字列と当該第２のテキストデータから抽出された各文字列との差分に基づいて関連付けるステップと、
前記第１のテキストデータから抽出された複数の文字列のうちの第１の文字列を特定の記述形式に正規化して得られた第１の正規化文字列と、前記第２のテキストデータから抽出された複数の文字列のうちの当該第１の文字列に関連付けられた第２の文字列を前記特定の記述形式に正規化して得られた第２の正規化文字列とを比較することにより、当該第１の文字列が表す内容と当該第２の文字列が表す内容とが整合しているかどうかを判定するステップと
を含む、方法。
【請求項１１】
ソフトウェアの国際化の検証を支援する装置としてコンピュータを機能させるプログラムであって、
前記コンピュータを、
前記ソフトウェアを動作させることによって出力されたテキストデータを取得するテキストデータ取得部と、
前記テキストデータ取得部により取得された前記テキストデータから、言語に依存する形式で記述される種類として予め定められた特定の種類の複数の文字列を抽出する文字列抽出部と、
前記ソフトウェアを第１の言語環境で動作させることによって出力された第１のテキストデータから前記文字列抽出部により抽出された複数の文字列のうちの第１の文字列と、前記ソフトウェアを第２の言語環境で動作させることによって出力された第２のテキストデータから前記文字列抽出部により抽出された複数の文字列のうちの第２の文字列とを関連付けるかどうかを、当該第１の文字列と当該第２の文字列との差分を用いて決定する文字列関連付け決定部と、
前記文字列関連付け決定部により前記第１の文字列と前記第２の文字列とを関連付けると決定された場合に、当該第１の文字列を特定の記述形式に正規化して得られた第１の正規化文字列と、当該第２の文字列を前記特定の記述形式に正規化して得られた第２の正規化文字列とを比較することにより、当該第１の文字列が表す内容と当該第２の文字列が表す内容とが整合しているかどうかを判定する内容整合性判定部と
して機能させる、プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアの国際化の検証を支援する装置及び方法に関する。
【背景技術】
【０００２】
近年、ソフトウェアの国際化が進んでいる。ソフトウェアの国際化とは、特定の１つの言語環境でしか利用できないソフトウェアを、それ以外の言語環境でも利用できるように整備することである。例えば、英語しか使用できないソフトウェアを改良し、英語以外の言語（例えば、日本語、中国語、韓国語、ドイツ語、ロシア語等）を使用できるようにすることを指す。
ソフトウェアの国際化では、他の言語環境に対応するために次のようなことが行われる。
・ユーザインターフェイス上のメッセージやメニューの翻訳
・日時、数値、通貨等のデータの表記方法（年月日の表示順序、小数点や桁区切りとして使用される記号等）の変更
・文字列の比較、並び替えアルゴリズムの変更
・表示に用いるフォント、文字セットの変更
【０００３】
かかるソフトウェアの国際化を実施する場合、新たな言語環境におけるソフトウェアの動作に問題がないかのテストを行う必要がある。このようなテストは「グローバリゼーションテスト」と呼ばれる。
グローバリゼーションテストでは、上記の地域や文化に依存した情報を、対象とするシステムが正しく扱っているかどうかを検証する。
【０００４】
ところで、このグローバリゼーションテストは、テスト対象の地域、文化、言語のネイティブ又はこれらに精通した人物によって行われることが望ましい。
しかしながら、実際には、このテストが一部の地域で集約して行われる状況、例えば、中国でアジア全域の言語に対するテストが行われるような状況は今日よく見受けられる。
また、ソフトウェアの開発は、多くの場合、主言語（通常は英語）で進められており、その他の言語での検証には、主言語での結果との比較による確認が必要になることが多い。
【０００５】
このような状況下では、テストの実行の難度が高くなり、データの誤りの見落としによるテストの抜けが問題となる。具体的には次のような問題が生じ得る。
（１）表示ができている、文字化けしていない、といった表層の検証のみに留まり、地域や文化に依存するデータが正しく表示できているかという観点で検証する場合に注目すべき点が分からない。
（２）自分が慣れ親しんでいる言語による正しい表示を見ると、それがテスト対象地域では相応しくないことを見落とす。
（３）日時、通貨等、言語に依存する形式で記述される文字が表示されている場合に、それが正しい形式で並んでいるのか判別できない。
（４）欧米言語のように同一種の文字を使用して表示された情報の中に複数の言語が混在していても気付かない。
（５）主言語では表示されているものが、他の言語では抜け落ちていたとしても、それを発見できない。
【０００６】
ソフトウェアの国際化に関しては、従来、幾つかの提案がなされている（例えば、特許文献１、２参照）。
特許文献１では、ユーザによって検討される国際化トピックスのメインカテゴリを示すデータをリストしたマスタスコアカードを生成し、このマスタスコアカードにリストされたトピックスのメインカテゴリに関するソフトウェア製品の国際化の準備を示す所定の統計値を計算している。
特許文献２では、各フォントが、テスト対象となる複数の文字コードのグループと、その他の複数の文字コードのグループとに対し異なる対応付け規則を使用して字形を対応付けたものである複数のフォントを用意し、擬似翻訳されたテスト用リソースファイルを参照して処理を行う国際化ソフトウェアからの出力情報を、この複数のフォントの何れか１つを使用して表示することにより、各フォントを用いた出力情報の表示において、テスト対象となる文字コードとその他の文字コードとを識別可能にしている。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開２００１−１８８６９３号公報
【特許文献２】特開２００８−０６５７９４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
このように、従来、ソフトウェアの国際化に関する技術は存在した。
しかしながら、特許文献１の技術は、ソフトウェアの国際化の準備を評価し改良するものであり、ソフトウェアの国際化に関して最も重要な部分である検証作業を支援するものではない。
また、特許文献２の技術は、国際化ソフトウェアのテストに関し、上記した問題の（１）に注力したものであり、上記した問題の（２）〜（５）はカバーしていない。
【０００９】
本発明の目的は、言語に依存する形式で記述される文字列の検証の効率性及び確実性を高めることにある。
【課題を解決するための手段】
【００１０】
かかる目的のもと、本発明は、ソフトウェアの国際化の検証を支援する装置であって、ソフトウェアを動作させることによって出力されたテキストデータを取得するテキストデータ取得部と、テキストデータ取得部により取得されたテキストデータから、言語に依存する形式で記述される種類として予め定められた特定の種類の複数の文字列を抽出する文字列抽出部と、ソフトウェアを第１の言語環境で動作させることによって出力された第１のテキストデータから文字列抽出部により抽出された複数の文字列のうちの第１の文字列と、ソフトウェアを第２の言語環境で動作させることによって出力された第２のテキストデータから文字列抽出部により抽出された複数の文字列のうちの第２の文字列とを関連付けるかどうかを、第１の文字列と第２の文字列との差分を用いて決定する文字列関連付け決定部と、文字列関連付け決定部により第１の文字列と第２の文字列とを関連付けると決定された場合に、第１の文字列を特定の記述形式に正規化して得られた第１の正規化文字列と、第２の文字列を特定の記述形式に正規化して得られた第２の正規化文字列とを比較することにより、第１の文字列が表す内容と第２の文字列が表す内容とが整合しているかどうかを判定する内容整合性判定部とを含む、装置を提供する。
【００１１】
ここで、文字列関連付け決定部は、第１のテキストデータから文字列抽出部により抽出された複数の文字列の各々と、第２のテキストデータから文字列抽出部により抽出された複数の文字列の各々とを対応付けることにより、複数組の文字列を形成し、第１の文字列と第２の文字列とを関連付けるかどうかを、各組の文字列の差分の複数組におけるばらつき度合に基づいて決定する、ものであってよい。
また、内容整合性判定部は、第１の正規化文字列と第２の正規化文字列との差分が予め定めた閾値以内である場合に、第１の文字列が表す内容と第２の文字列が表す内容とが整合していると判定する、ものであってよい。
更に、内容整合性判定部は、第１の正規化文字列及び第２の正規化文字列の少なくとも何れか一方を文字ごとに特定の規則で変換して得られた２つの文字列における文字の出現順序及び出現頻度を比較することにより、第１の文字列が表す内容と第２の文字列が表す内容とが整合しているかどうかを判定する、ものであってよい。
また、この装置は、第１のテキストデータ内の第１の文字列及び第２のテキストデータ内の第２の文字列の少なくとも何れか一方に関連付けて、内容整合性判定部による判定結果を出力する出力部を更に含む、ものであってよい。
更に、この装置は、テキストデータ取得部により取得されたテキストデータの言語と、文字列抽出部により抽出された複数の文字列の各々の言語とが整合しているかどうかを判定する言語整合性判定部を更に含む、ものであってよい。
【００１２】
また、本発明は、ソフトウェアの国際化の検証を支援する装置であって、ソフトウェアを動作させることによって出力された複数のテキストブロックを取得するテキストブロック取得部と、テキストブロック取得部により取得された複数のテキストブロックの各々から、言語に依存する形式で記述される種類として予め定められた特定の種類の文字列を抽出する文字列抽出部と、ソフトウェアを第１の言語環境で動作させることによって出力された複数のテキストブロックのうちの第１のテキストブロックと、ソフトウェアを第２の言語環境で動作させることによって出力された複数のテキストブロックのうちの第２のテキストブロックとを関連付けるかどうかを、第１のテキストブロックから文字列抽出部により抽出された文字列と、第２のテキストブロックから文字列抽出部により抽出された文字列とに基づいて決定するテキストブロック関連付け決定部とを含む、装置も提供する。
【００１３】
ここで、テキストブロック関連付け決定部は、第１のテキストブロックと第２のテキストブロックとを関連付けるかどうかを、第１のテキストブロックから文字列抽出部により抽出された文字列の数と、第２のテキストブロックから文字列抽出部により抽出された文字列の数との比較結果に基づいて決定する、ものであってよい。
【００１４】
また、本発明は、ソフトウェアの国際化の検証を支援する装置であって、ソフトウェアを動作させることによって出力されたテキストデータから複数のテキストブロックを抽出するテキストブロック抽出部と、テキストブロック抽出部により抽出された複数のテキストブロックの各々から、言語に依存する形式で記述される種類として予め定められた特定の種類の複数の文字列を抽出する文字列抽出部と、ソフトウェアを第１の言語環境で動作させることによって出力された第１のテキストデータからテキストブロック抽出部により抽出された複数のテキストブロックのうち第１のテキストブロックと、ソフトウェアを第２の言語環境で動作させることによって出力された第２のテキストデータからテキストブロック抽出部により抽出された複数のテキストブロックのうちの第２のテキストブロックとを関連付けるかどうかを、第１のテキストブロックから文字列抽出部により抽出された複数の文字列と、第２のテキストブロックから文字列抽出部により抽出された複数の文字列とに基づいて決定するテキストブロック関連付け決定部と、テキストブロック関連付け決定部により第１のテキストブロックと第２のテキストブロックとを関連付けると決定された場合に、第１のテキストブロックから文字列抽出部により抽出された複数の文字列のうちの第１の文字列と、第２のテキストブロックから文字列抽出部により抽出された複数の文字列のうちの第２の文字列とを関連付けるかどうかを、第１の文字列と第２の文字列との差分を用いて決定する文字列関連付け決定部と、文字列関連付け決定部により第１の文字列と第２の文字列とを関連付けると決定された場合に、第１の文字列を特定の記述形式に正規化して得られた第１の正規化文字列と、第２の文字列を特定の記述形式に正規化して得られた第２の正規化文字列とを比較することにより、第１の文字列が表す内容と第２の文字列が表す内容とが整合しているかどうかを判定する内容整合性判定部と、第１のテキストデータ内の第１の文字列及び第２のテキストデータ内の第２の文字列の少なくとも何れか一方に関連付けて、内容整合性判定部による判定結果を出力する出力部とを含む、装置も提供する。
【００１５】
更に、本発明は、ソフトウェアの国際化の検証を支援する方法であって、ソフトウェアを第１の言語環境で動作させることによって出力された第１のテキストデータを取得するステップと、第１のテキストデータから、言語に依存する形式で記述される種類として予め定められた特定の種類の複数の文字列を抽出するステップと、ソフトウェアを第２の言語環境で動作させることによって出力された第２のテキストデータを取得するステップと、第２のテキストデータから特定の種類の複数の文字列を抽出するステップと、第１のテキストデータから抽出された複数の文字列の各々と、第２のテキストデータから抽出された複数の文字列の各々とを、第１のテキストデータから抽出された各文字列と第２のテキストデータから抽出された各文字列との差分に基づいて関連付けるステップと、第１のテキストデータから抽出された複数の文字列のうちの第１の文字列を特定の記述形式に正規化して得られた第１の正規化文字列と、第２のテキストデータから抽出された複数の文字列のうちの第１の文字列に関連付けられた第２の文字列を特定の記述形式に正規化して得られた第２の正規化文字列とを比較することにより、第１の文字列が表す内容と第２の文字列が表す内容とが整合しているかどうかを判定するステップとを含む、方法も提供する。
【００１６】
更にまた、本発明は、ソフトウェアの国際化の検証を支援する装置としてコンピュータを機能させるプログラムであって、コンピュータを、ソフトウェアを動作させることによって出力されたテキストデータを取得するテキストデータ取得部と、テキストデータ取得部により取得されたテキストデータから、言語に依存する形式で記述される種類として予め定められた特定の種類の複数の文字列を抽出する文字列抽出部と、ソフトウェアを第１の言語環境で動作させることによって出力された第１のテキストデータから文字列抽出部により抽出された複数の文字列のうちの第１の文字列と、ソフトウェアを第２の言語環境で動作させることによって出力された第２のテキストデータから文字列抽出部により抽出された複数の文字列のうちの第２の文字列とを関連付けるかどうかを、第１の文字列と第２の文字列との差分を用いて決定する文字列関連付け決定部と、文字列関連付け決定部により第１の文字列と第２の文字列とを関連付けると決定された場合に、第１の文字列を特定の記述形式に正規化して得られた第１の正規化文字列と、第２の文字列を特定の記述形式に正規化して得られた第２の正規化文字列とを比較することにより、第１の文字列が表す内容と第２の文字列が表す内容とが整合しているかどうかを判定する内容整合性判定部として機能させる、プログラムも提供する。
【発明の効果】
【００１７】
本発明によれば、言語に依存する形式で記述される文字列の検証の効率性及び確実性を高めることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態における検証作業支援装置の機能構成例を示した図である。
【図２】本発明の実施の形態のコンテンツ記憶部に記憶される英語のコンテンツの一例を示した図である。
【図３】本発明の実施の形態のコンテンツ記憶部に記憶される日本語のコンテンツの一例を示した図である。
【図４】本発明の実施の形態におけるコンテンツ解析部の動作例を示したフローチャートである。
【図５】本発明の実施の形態のコンテンツ解析部による英語のコンテンツの解析結果の一例を示した図である。
【図６】本発明の実施の形態のコンテンツ解析部による日本語のコンテンツの解析結果の一例を示した図である。
【図７】本発明の実施の形態における第１検証部の動作例を示したフローチャートである。
【図８】本発明の実施の形態の第１検証部で参照される許容度テーブルの一例を示した図である。
【図９】本発明の実施の形態の第１検証部による検証の別の例を説明するための図である。
【図１０−１】本発明の実施の形態における第２検証部の動作例を示したフローチャートの前半部分である。
【図１０−２】本発明の実施の形態における第２検証部の動作例を示したフローチャートの後半部分である。
【図１１】本発明の実施の形態の第２検証部による欠損ブロックの特定及び欠損ブロックの情報の通知について説明するための図である。
【図１２】本発明の実施の形態の第２検証部による文字列差分算出処理の動作例を示したフローチャートである。
【図１３】本発明の実施の形態における検証結果の表示例を示した図である。
【図１４】本発明の実施の形態を適用可能なコンピュータのハードウェア構成を示した図である。
【発明を実施するための形態】
【００１９】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
まず、本実施の形態におけるソフトウェアの国際化の検証作業を支援する検証作業支援装置１の機能構成について説明する。
図１は、このような検証作業支援装置１の機能構成例を示した図である。
図示するように、この検証作業支援装置１は、コンテンツ記憶部５と、コンテンツ解析部１０と、解析結果記憶部２０と、第１検証部３０と、第２検証部４０と、コンテンツ更新部５０と、制御部６０とを備えている。
【００２０】
コンテンツ記憶部５は、検証作業支援装置１の画面に表示されるコンテンツを記憶する。
コンテンツ解析部１０は、コンテンツ記憶部５に記憶されているコンテンツを解析し、検証対象となる要素を抽出する。具体的には、コンテンツに自然言語処理を適用し、地域や文化に依存する記述形式を有するデータ（以下、「地域／文化型データ」という）や、コンテンツの構成に関する情報（以下、「構成情報」という）を取得する。ここで、地域／文化型データとしては、日付、時刻、数値、通貨等がある。また、構成情報としては、パラグラフの情報、言語の情報、地域／文化型データ以外の単語等がある。尚、これらの情報は可能な限り関連付けられる。パラグラフごとに、例えば、そのパラグラフで使われている言語、そのパラグラフに含まれる地域／文化型データの数や出現順序、そのパラグラフに含まれる文の数等が管理される。本実施の形態では、テキストデータを取得するテキストデータ取得部、複数のテキストブロックを取得するテキストブロック取得部、テキストデータから複数のテキストブロックを抽出するテキストブロック抽出部の一例として、コンテンツ解析部１０を設けている。また、言語に依存する形式で記述される種類として予め定められた特定の種類の一例として、地域／文化型データのデータ型（日付型、時刻型、数値型、通貨型等）を用いており、テキストデータ又は複数のテキストブロックの各々から特定の種類の文字列を抽出する文字列抽出部の一例として、コンテンツ解析部１０を設けている。
【００２１】
解析結果記憶部２０は、コンテンツ解析部１０による解析結果を保持する。具体的には、コンテンツ解析部１０による解析結果をデータベース等に保持する。このとき、コンテンツ解析部１０による解析結果は常に解析結果記憶部２０にストアすることにする。また、解析結果を他の機能部からのリクエストに応じて参照可能にする。本実施の形態では、後述する第１検証部３０及び第２検証部４０からのリクエストに応じて参照させる。尚、図には、解析結果記憶部２０を１つしか示さなかったが、解析結果記憶部２０を複数用意し、１つの解析結果記憶部２０が１つの言語に関する解析結果を記憶する構成や、特定の言語に関する解析結果を、複数の解析結果記憶部２０に分けて記憶する構成を採用してもよい。この場合、後述する第２検証部４０からある言語をＵＲＬで指定したリクエストがあったときに、例えば、そのＵＲＬから類推したその他の言語のＵＲＬの一覧を返すようにすることもできる。
【００２２】
第１検証部３０は、コンテンツ解析部１０で抽出された要素を検証する。ここでは、例えば、次のような検証を行う。第一に、コンテンツ全体の言語と各パラグラフの言語が一致しているか、といった検証である。第二に、地域／文化型データの表記法がどの言語のルールに従っているか、といった検証である。例えば、「2008年6月」は日本語の日付表記で年月を表すものであるので、この日付表記を検証することにより日本語のルールに従っていることが分かる。第三に、地域／文化型データの表記法が、それを含むコンテンツの言語に適したものであるか、といった検証である。この検証により、例えば、日本語の文中に英語形式の日付表記が出現していること等が分かる。本実施の形態では、テキストデータの言語と文字列の言語とが整合しているかどうかを判定する言語整合性判定部の一例として、第１検証部３０を設けている。
【００２３】
第２検証部４０は、解析結果記憶部２０に保持された複数の言語に関する解析結果を比較して更に高度な検証を行う装置である。例えば、主言語（多くの場合、英語）に関する解析結果と、副言語（日本語等）に関する解析結果とを比較して検証する。具体的には、第１検証部３０での検証に加えて、次のような検証を行う。第一に、構成情報に基づくコンテンツの構造に関する検証である。即ち、パラグラフが同数であるか、対応するパラグラフが同数の地域／文化型データを保持しているかを検証することで、パラグラフの抜け落ちを発見する。第二に、対応する日付等が同じか又はその差異が許容される範囲内であるかどうかを、対応する日付等を正規化して比較する。例えば、「2008年6月」と「Jun.2008」は、正規化すると何れも「2008-06-00」となるので、同一と判断される。尚、本実施の形態では、第２検証部４０による検証対象である複数の言語に関する解析結果は全て解析結果記憶部２０に保持されるものとして説明するが、一部の言語に関する解析結果のみが解析結果記憶部２０に保持される構成であってもよい。この場合、例えば、主言語に関する解析結果を解析結果記憶部２０に保持しておき、コンテンツ解析部１０が副言語のコンテンツを解析しながら、第２検証部４０がこれを解析結果記憶部２０に記憶された解析結果と比較して検証することになる。本実施の形態では、第１のテキストブロックと第２のテキストブロックとを関連付けるかどうかを決定するテキストブロック関連付け決定部、第１の文字列と第２の文字列とを関連付けるかどうかを決定する文字列関連付け決定部、第１の文字列が表す内容と第２の文字列が表す内容とが整合しているかどうかを判定する内容整合性判定部の一例として、第２検証部４０を設けている。
【００２４】
コンテンツ更新部５０は、第１検証部３０及び第２検証部４０による検証結果が検証作業支援装置１の画面に分かり易く表示されるように、コンテンツ記憶部５に記憶されたコンテンツを更新する。この場合、例えば、結果の重要度やカテゴリに応じて強調表示するようにしてもよい。尚、第２検証部４０による検証対象である複数の言語に関する解析結果のうち一部の言語に関する解析結果のみが解析結果記憶部２０に保持されている場合は、検証作業支援装置１の画面に分かり易く表示する対象の中に、コンテンツ解析部１０から得られた情報を含めてもよい。本実施の形態では、内容整合性判定部による判定結果を出力する出力部の一例として、コンテンツ更新部５０を設けている。
制御部６０は、コンテンツ解析部１０、第１検証部３０、第２検証部４０、コンテンツ更新部５０の連携動作を管理する。
【００２５】
次に、本実施の形態における検証作業支援装置１の動作について詳細に説明する。尚、ここでは、国際化されたソフトウェアを英語環境で動作させることによって出力された英語のコンテンツと、同じソフトウェアを日本語環境で動作させることによって出力された日本語のコンテンツがあるものとして説明を進める。また、これらのコンテンツには、地域／文化型データが含まれているものとする。
【００２６】
図２及び図３に、以下の説明で用いるコンテンツを示す。図２は、英語環境で出力された英語のコンテンツを示したものであり、図３は、日本語環境で出力された日本語のコンテンツを示したものである。尚、後述する説明で明らかになるが、図２に示した英語のコンテンツにおけるパラグラフ＃４に対応するパラグラフが、図３に示した日本語のコンテンツには存在しておらず、パラグラフの抜け落ちが発生した例となっている。
【００２７】
以下、このようなコンテンツがコンテンツ記憶部５に記憶されているものとして、各機能部の動作を説明する。
まず、コンテンツ解析部１０の動作について説明する。
ここで、コンテンツ解析部１０は、以下を前提として動作するものとする。
第一に、対象とするコンテンツは、ＨＴＴＰ（HyperText Transfer Protocol）やＦＴＰ（File Transfer Protocol）等のプロトコルを用いてネットワーク上のコンピュータから、或いは、ローカルのマシン上から、バイトデータとして取得できるものとする。典型例としては、ＵＲＬ（http://...やfile://...）等で位置を指定できるものであることを前提とする。
第二に、対象とするコンテンツは、その「テキスト表現」をコンテンツ解析部１０が何らかの形で取得可能なものであるとする。例えば、画像やアニメーション等のコンテンツであっても、内部に含まれるテキストを抽出できれば、対象とすることができる。
第三に、対象となるコンテンツから取得されたテキストデータ（以下、単に「テキスト」という）は、例えば、図２及び図３に示したパラグラフのようなテキストブロック（以下、単に「ブロック」という）に分割できるものとする。コンテンツは、多くの場合、ＭＩＭＥ（Multipurpose Internet Mail Extension）タイプによって、ブロックの分割の目印となる文字列やタグ等が定まっている。例えば、ＭＩＭＥタイプが「text/html」の場合は、</p>と<p>の間をブロックの区切りとすればよく、ＭＩＭＥタイプが「text/plain」の場合は、改行のみの行（空白行）をブロックの区切りとすればよい。
【００２８】
このような前提の下、コンテンツ解析部１０は、処理対象のテキストを取得すると、次のような動作を行う。
図４は、このときのコンテンツ解析部１０の動作例を示したフローチャートである。
まず、コンテンツ解析部１０は、処理対象の全テキストを走査し、全体としてどの言語で書かれたものか（ロケール）を推定する（ステップ１０１）。ここで、推定の結果は、各言語で書かれている可能性を示す指標である推定度を用いて、推定度付きリスト（以下、「ロケール推定リスト」という）として保持する。例えば、英語の推定度が0.85であり、ドイツ語の推定度が0.7であるとすると、ロケール推定リスト「en=0.85;de=0.7;...」が保持される。尚、本明細書では、英語を「en」、ドイツ語を「de」のように、ＢＣＰ（Best Current Practice）４７に準拠した言語タグで用いられる識別子で言語を表すが、必ずしもこれには限らない。
【００２９】
次に、コンテンツ解析部１０は、処理対象の全テキストをブロックに分割する（ステップ１０２）。ここで、ブロックとしては、図２及び図３に示したパラグラフの他、複数の文（センテンス）からなるテキスト列等が挙げられる。尚、ブロックへの分割は、上述したように、例えば、ＨＴＭＬ文書の場合であれば</p>と<p>の間で区切ることにより行えばよい。また、このブロックへの分割において、各ブロックには、全テキスト内でブロックを一意に識別可能なブロックＩＤが割り当てられる。
【００３０】
そして、コンテンツ解析部１０は、ブロックごとに以下の処理を繰り返す。
即ち、コンテンツ解析部１０は、まず、ブロックのロケールを推定する（ステップ１０３）。ここでも、推定の結果は、ロケール推定リストとして保持する。例えば、ブロックＩＤが「１」のブロックについて、英語の推定度が0.9であり、ドイツ語の推定度が0.8であるとすると、ロケール推定リスト「en=0.9;de=0.8;...」がブロックＩＤ「１」に関連付けて保持される。
次に、コンテンツ解析部１０は、ブロック内のテキストを文（センテンス）に分解する（ステップ１０４）。尚、このセンテンスへの分解においても、各センテンスには、ブロック内でセンテンスを一意に識別可能なセンテンスＩＤが割り当てられる。
【００３１】
更に、コンテンツ解析部１０は、ロケールによって記述形式が異なる可能性のある文字列（トークン）ごとに、センテンスＩＤ、開始位置、終了位置、カテゴリＩＤ、ロケール推定リストを決定し、これらを対応付けた文字列テーブルを生成する（ステップ１０５）。ここで、センテンスＩＤは、ブロック内でのセンテンスの通し番号であり、開始位置及び終了位置は、処理対象テキスト全体の先頭を基準とした文字列の開始及び終了の位置である。また、カテゴリＩＤは、文字列のカテゴリ（例えば、日付、時刻、数値、通貨等の種類）のＩＤであり、ロケール推定リストは、文字列のロケールの推定結果である。尚、この場合、文字列テーブルに含める文字列や、文字列テーブルにおいてその文字列に関連付けるカテゴリＩＤ及びロケール推定リストは、次のように決定される。即ち、まず、カテゴリＩＤとロケールと表記法との対応を予め用意しておく。そして、テキスト中にこの表記法にマッチする文字列があった場合に、その文字列を文字列テーブルに含める文字列として決定し、その表記法に対応付けられたカテゴリＩＤ及びロケールをその文字列に関連付けるカテゴリＩＤ及びロケールとして決定する。このとき、カテゴリＩＤとロケールの複数の組に対応付けられた表記法にマッチする文字列があった場合、その文字列に関連付けるロケール推定リストには複数のロケールが含まれることがある。
【００３２】
その後、コンテンツ解析部１０は、他に未処理のブロックがあるかどうかを判定する（ステップ１０６）。その結果、未処理のブロックがあれば、ステップ１０３に戻る。一方、未処理のブロックがなければ、コンテンツ解析部１０は、ステップ１０１で推定した全体のロケールを含む全体情報と、ブロックＩＤ、ステップ１０３で推定したブロックのロケール、ステップ１０５で生成した文字列テーブルを含むブロック情報とを、テキストの解析結果として解析結果記憶部２０に保存する（ステップ１０７）。尚、ここで保存される全体情報には、対象テキストの位置情報を含んでもよい。この位置情報としては、「http://www.foo.com/en-us/info.html」等のＵＲＬが例示される。また、全体情報には、対象テキストの全体を含めても構わない。
【００３３】
ここで、ステップ１０７で保存されるブロック情報について、具体例を用いて説明する。
図５は、図２に示した英語のコンテンツのパラグラフ＃１に関するブロック情報について説明するための図である。
（ａ）には、パラグラフ＃１から抽出される文字列を、パラグラフ＃１のテキスト上に太枠で囲んで示している。
また、（ｂ）には、これらの文字列を含むブロック情報の一例を示している。
即ち、まず、（ａ）に示したブロックのブロックＩＤが「１」であることが示されている。
また、このブロックのロケール推定リストが「en=0.9;de=0.8;…」であることも示されている。
【００３４】
（ｂ）には、更に、文字列テーブルも示されている。この文字列テーブルは、前述の通り、センテンスＩＤ、開始位置、終了位置、カテゴリＩＤ、ロケール推定リストを対応付けたものとなっている。尚、図では、データ型として「固有名詞」も示している。「固有名詞」は、ロケールによって記述形式が異なる可能性のあるデータ型ではないが、後述するブロック欠損等を検証するために役立つので、このようなデータ型も含めている。また、ここでは、データ型として、「固有名詞」、「日付」、「数値」のみが例示されているが、他にＵＲＬや通貨等をデータ型として採用してもよい。また、ロケール推定リストには、「*」がセットされる場合もある。この「*」は、ロケールに依存しない、つまり、どのロケールであっても同じ表記法になることを意味する。また、「Western」のように、特定のロケールの集合を表す識別子がセットされることもある。
【００３５】
尚、図示した文字列テーブルは、具体的には、次のような情報を管理している。即ち、「18 Jun 2008」が日付型でロケール推定リストが「en-US」であること、「IBM」が固有名詞でロケール推定リストが「*」であること、「500」が数値型でロケール推定リストが「Western」であること、「1.02」が数値型でロケール推定リストが「Western」であること、「1.02 quadrillion」が数値型でロケール推定リストが「en」であることを管理している。
【００３６】
一方、図６は、図３に示した日本語のコンテンツのパラグラフ＃１に関するブロック情報について説明するための図である。
（ａ）には、パラグラフ＃１から抽出される文字列を、パラグラフ＃１のテキスト上に太枠で囲んで示している。
また、（ｂ）には、これらの文字列を含むブロック情報の一例を示している。
即ち、まず、（ａ）に示したブロックのブロックＩＤが「１」であることが示されている。
また、このブロックのロケール推定リストが「ja=0.9;…」であることも示されている。
（ｂ）には、更に、文字列テーブルも示されているが、この文字列テーブルについての一般的な説明は既に図５に関して行っているので、ここでは省略する。
【００３７】
尚、図示した文字列テーブルは、具体的には、次のような情報を管理している。即ち、「2008年6月18号」が日付型でロケール推定リストが「zh-CN」であること、「IBM」が固有名詞でロケール推定リストが「*」であること、「500」が数値型でロケール推定リストが「Western」であること、「1.02」が数値型でロケール推定リストが「Western」であること、「1.020兆」が数値型でロケール推定リストが「ja」であることを管理している。
【００３８】
次に、第１検証部３０の動作について説明する。この第１検証部３０は、全体、ブロックごと、文字列ごとのロケール推定リストが一致しない場合、又は、包含しない場合に、その旨を検証者に知らせることができるようにする。具体的には、次のような動作を行う。
図７は、第１検証部３０の動作例を示したフローチャートである。
まず、第１検証部３０は、解析結果記憶部２０に記憶された全体情報のうち、全体のロケール推定リストを取得する（ステップ３０１）。
そして、第１検証部３０は、ブロックごとに、全テキストとのロケールのマッチングを行う。即ち、解析結果記憶部２０に記憶されたブロック情報のうち、１つのブロックのロケール推定リストを取得し（ステップ３０２）、全体のロケールとブロックのロケールが一致するかどうかを判定する（ステップ３０３）。尚、ここでは、ロケール推定リストにおける言語の第１候補どうしを比較するものとする。つまり、全体のロケール推定リストが「en=0.85;de=0.7;…」であり、ブロックのロケール推定リストが「en=0.9;de=0.8;…」である場合は、「en」だけを比較する。
その結果、ロケールが異なっていれば、ブロックＩＤとロケールが不一致である旨の情報とをコンテンツ更新部５０に通知する（ステップ３０４）。
【００３９】
一方、ロケールが一致していれば、第１検証部３０は、文字列ごとに、ブロックとのロケールのマッチングを行う。即ち、解析結果記憶部２０に記憶された文字列テーブルから、１つの文字列に対応するカテゴリＩＤ及びロケール推定リストを取得する（ステップ３０５）。そして、許容度テーブルを参照して、文字列のロケールに対する許容度を決定する（ステップ３０６）。ここで、許容度テーブルとは、詳しくは後述するが、文字列のカテゴリごとに、ブロックのロケールと文字列のロケールとの組み合わせに対して、予め許容度を設定したテーブルである。これにより、第１検証部３０は、決定した許容度を、文字列テーブルにおいて文字列に対応付けられたセンテンスＩＤ、開始位置、終了位置と共にコンテンツ更新部５０に通知する（ステップ３０７）。
【００４０】
その後、第１検証部３０は、他に未処理の文字列があるかどうかを判定する（ステップ３０８）。その結果、未処理の文字列があれば、ステップ３０５に戻る。一方、未処理の文字列がなければ、第１検証部３０は、他に未処理のブロックがあるかどうかを判定する（ステップ３０９）。その結果、未処理のブロックがあれば、ステップ３０２に戻る。一方、未処理のブロックがなければ、処理を終了する。
【００４１】
ここで、ステップ３０６で参照する許容度テーブルについて説明する。
図８は、許容度テーブルの一例を示した図である。
図示するように、この許容度テーブルでは、縦方向にブロックのロケールが設定され、横方向にカテゴリごとに文字列のロケールが設定されている。そして、カテゴリごとに、あるブロックのロケールとある文字列のロケールに対応するセルに、そのブロックのロケールにおけるその文字列のロケールがどの程度許容されるかを示す許容度が設定されている。尚、ここでは、許容度を、Ｄ（拒否（Decline））、Ｌ（低（Low））、Ｍ（中（Medium））、Ｈ（高（High））の４段階で示しており、これらは、検証結果の表示に関して言えば、それぞれ、「ＮＧ」、「警告」、「注意」、「ＯＫ」に対応するものである。但し、許容度の段階数やその意味付けはこれに限られるものではない。また、どのセルにどのような許容度を設定するかも、図示したものには限らず、テストの方針や対象のアプリケーションの特性によって自由に決めることができる。
【００４２】
次いで、図７に示した第１検証部３０による検証処理について具体的に説明する。
ここでは、図６に示したブロック情報について、図７の検証処理を行う場合を考える。
この場合、ステップ３０１で全体のロケールが「ja」と推定され、ステップ３０２でブロックＩＤ「１」のブロックのロケールが「ja」と推定され、ステップ３０３で全体のロケールとブロックのロケールとが一致すると判定される。これにより、コンテンツ更新部５０は、検証結果が「ＯＫ」であることが分かるように、コンテンツを更新する。
【００４３】
また、ステップ３０５で文字列テーブルの１行目から「2008年6月18号」のカテゴリ「日付」、ロケール「zh_CN」を取得する。そして、ステップ３０６では、許容度テーブルのカテゴリ「日付」の部分において、ブロックのロケールが「ja」であり、文字列のロケールが「zh_CN」であるセルを参照し、許容度「Ｍ」を取得する。これにより、コンテンツ更新部５０は、検証結果が「注意」であることが分かるように、コンテンツを更新する。
【００４４】
更に、ステップ３０５で文字列テーブルの３行目から「500」のカテゴリ「数値」、ロケール「Western」を取得する。そして、ステップ３０６では、許容度テーブルのカテゴリ「数値」の部分において、ブロックのロケールが「ja」であり、文字列のロケールが「Western」であるセルを参照し、許容度「Ｈ」を取得する。これにより、コンテンツ更新部５０は、検証結果が「ＯＫ」であることが分かるように、コンテンツを更新する。
【００４５】
尚、上記動作例では、文字列のロケールが適切であるかどうかは、コンテンツ解析部１０が抽出した文字列の単位で検証したが、これには限らない。例えば、コンテンツ解析部１０が抽出した近接する複数の文字列を単位として検証するようにしてもよい。
以下、この場合の動作について説明する。
図９（ａ）は、検証対象のコンテンツの例を示した図である。
コンテンツ解析部１０は、このコンテンツからブロック情報を生成する。
図９（ｂ）は、コンテンツ解析部１０によって生成されたブロック情報を示した図である。
このブロック情報の文字列テーブルにおいて、１行目は「水」に、２行目は「08/08/2007」に、３行目は「10:51」に、４行目は「午後」に、それぞれ対応している。また、１行目の「水」は曜日である可能性があるものとしてそのカテゴリは「日付付加情報」となっており、４行目の「午後」のカテゴリは「時刻付加情報」となっている。この場合、ブロックのロケールは「ja」であるので、曜日である「水」と日付である「08/08/2007」の並び順が日本語には適さないとして、検証結果を「警告」とすることが考えられる。
【００４６】
次に、第２検証部４０の動作について説明する。
ここで、第２検証部４０は、以下を前提として動作するものとする。
第一に、比較する言語（例えば、言語Ａと言語Ｂ）に対応するコンテンツの取得位置は、予め第２検証部４０に対して与えられているものとする。この取得位置は、例えば、言語Ａについては、「http://www.foo.com/en-us/info.html」、言語Ｂについては、「http://www.foo.com/ja-jp/info.html」のように、ＵＲＬとして与えられていればよい。尚、ここでは、ＵＲＬの例として、言語を示す文字列を含めたが、第２検証部４０は、ＵＲＬから言語を推定しないので、ＵＲＬに必ずしも言語が分かるような情報が入っていなくてもよい。
第二に、コンテンツの翻訳が正しく行われれば、コンテンツに含まれるブロックの数の増減はないものとする。つまり、ブロックへの分割の手がかりとなる文字列は、翻訳対象ではないものとする。
【００４７】
このような前提の下、第２検証部４０は、次のような動作を行う。
図１０−１及び図１０−２は、このときの第２検証部４０の動作例を示したフローチャートである。尚、この動作例では、言語Ａのコンテンツと言語Ｂのコンテンツを比較検証するものとして説明する。
まず、図１０−１に示すように、第２検証部４０は、解析結果記憶部２０に記憶された言語Ａのコンテンツ及び言語Ｂのコンテンツの取得位置を示すＵＲＬに基づいて、各コンテンツに含まれるブロックの数を取得する（ステップ４０１）。ここでは、例えば、言語Ａのコンテンツに含まれるブロック、言語Ｂのコンテンツに含まれるブロックの何れも６０個である、といった情報や、言語Ａのコンテンツに含まれるブロックは６０個であるが、言語Ｂのコンテンツに含まれるブロックは４８個である、といった情報を取得する。
【００４８】
次に、第２検証部４０は、言語Ａの各ブロックの特徴数配列と言語Ｂの各ブロックの特徴数配列とを作成する（ステップ４０２）。ここで、１ブロック分の特徴数配列は、カテゴリＩＤの順に各カテゴリに属する文字列の出現個数を列挙した配列を、センテンスＩＤの順に並べた配列である。そして、この特徴数配列は、例えば、{ [1,1,1,0,…] , [0,0,2,0,…] }といった形式で表すことができる。この場合、[1,1,1,0,…]は、センテンスＩＤ「１」のセンテンスに、カテゴリＩＤ「１」の文字列が１個、カテゴリＩＤ「２」の文字列が１個、カテゴリＩＤ「３」の文字列が１個、カテゴリＩＤ「４」の文字列が０個出現したことを示している。また、[0,0,2,0,…]は、センテンスＩＤ「２」のセンテンスに、カテゴリＩＤ「１」の文字列が０個、カテゴリＩＤ「２」の文字列が０個、カテゴリＩＤ「３」の文字列が２個、カテゴリＩＤ「４」の文字列が０個出現したことを示している。
そして、第２検証部４０は、ステップ４０１で取得した各コンテンツのブロック数が同一かどうかを判定する（ステップ４０３）。
【００４９】
その結果、ブロック数が同一と判定した場合、第２検証部４０は、対応するブロックＩＤ同士を関係付けたブロックＩＤ対応情報を作成する（ステップ４０４）。ここで、ブロックＩＤ対応情報は、対応するブロックＩＤの組を、各組に含まれるブロックＩＤの順に列挙することで作成した情報である。例えば、ステップ４０１で、言語Ａのコンテンツに含まれるブロック、言語Ｂのコンテンツに含まれるブロックの何れも６０個である、といった情報を取得した場合であれば、ブロックＩＤ対応情報は、{ [1,1],[2,2] ,…,[60,60] }といった形式で作成することができる。
【００５０】
一方、例えば、翻訳の抜け落ちや統合のミス等により、ブロック数が一致しない場合もある。従って、ブロック数が異なると判定した場合、第２検証部４０は、ブロック欠損時処理を行う。
【００５１】
即ち、まず、第２検証部４０は、欠損ブロックを特定し、ブロックＩＤ対応情報を作成する（ステップ４０５）。この場合、例えば、ステップ４０１で、言語Ａのコンテンツに含まれるブロックは６０個であるが、言語Ｂのコンテンツに含まれるブロックは４８個である、といった情報を取得した場合であれば、ブロックＩＤ対応情報は、{ [1,1],[2,2] ,…,[60,48] }といった形式で作成することができる。
図１１（ａ）は、どのブロックが欠損しているかを特定する欠損ブロック特定処理の概略を示す。この欠損ブロック特定処理では、言語Ａのブロックの特徴数配列と言語Ｂのブロックの特徴数配列を比較し、特徴数配列の並びが一致しないブロックの組を探し出す。図示するように、例えば、言語ＡのブロックＩＤ「１」のブロックと、言語ＢのブロックＩＤ「１」のブロックとは、何れも{ [1,1,1,0,…] , [0,0,2,0,…] }であるので、これらのブロックは一致すると判定する。一方、言語ＢのブロックＩＤ「３」のブロックの特徴数配列が{ [1,0,2,0,…] , [0,1,2,0,…] }であるのに対し、言語ＡのブロックＩＤ「３」のブロックの特徴数配列がこれと一致しないものであるとすると、ブロックの組を変更して比較を行う。その結果、言語ＡのブロックＩＤ「６」のブロックと、言語ＢのブロックＩＤ「３」のブロックとは、何れも{ [1,0,2,0,…] , [0,1,2,0,…] }であるので、これらのブロックは一致すると判定する。
そして、この場合、ブロックＩＤ対応情報は、{ [1,1],[2,2],[6,3],[7,4],[8,5] }といった形式で作成することができる。
【００５２】
次に、第２検証部４０は、欠損ブロックの情報をコンテンツ更新部５０に通知する（ステップ４０６）。
図１１（ｂ）は、第２検証部４０がどのような情報を通知するかを示した図である。
ブロック欠損の場合は、後述するカテゴリ欠損とは異なり、復元はできない。従って、復元を試みることなく、図示するような位置情報、つまり、言語Ａの欠損ブロックの開始位置Ｘと終了位置Ｙ、及び、言語Ｂの推定挿入位置Ｚを通知する。
【００５３】
その後、第２検証部４０は、ステップ４０４又はステップ４０５で作成されたブロックＩＤ対応情報に含まれるブロックＩＤの各組について、各組に含まれるブロックＩＤで特定されるブロックが同じブロックであるかどうかの検証を繰り返す。
即ち、まず、第２検証部４０は、１つのブロックＩＤの組に対応する特徴数配列の組、つまり、言語Ａのブロックの特徴数配列と言語Ｂのブロックの特徴数配列を取得する（ステップ４０７）。そして、言語Ａに関する特徴数配列と言語Ｂに関する特徴数配列とが一致するかどうかを判定する（ステップ４０８）。
その結果、２つの特徴数配列が一致すると判定されれば、カテゴリごとの対応付け処理に移る。
【００５４】
一方、例えば、データの文字化け等により、カテゴリ数が一致しない場合もある。従って、カテゴリ数が異なると判定した場合、第２検証部４０は、カテゴリ欠損時処理を行う。
即ち、第２検証部４０は、ブロックのロケール推定リストや前後の文字等を用いて、可能な限り、カテゴリの復元を試みる（ステップ４０９）。一例として、「2008年11月25日」という文字列の直後又は何文字か後に「（水）」という文字列がある場合を考える。そして、前者の文字列のカテゴリが「日付」、ロケールが「ja」と判定され、後者の文字列のカテゴリが「なし」と判定されたとする。このような場合、この２つの文字列をグループ化し、カテゴリを「日付」、ロケールを「ja」にしてみる。また、別の例として、「11:」という文字列の直後又は何文字か後に「24」という文字列がある場合を考える。そして、前者の文字列も後者の文字列もカテゴリが「数値」、ロケールが「Western」と判定されたとする。このような場合、この２つの文字列をグループ化し、カテゴリを「時刻」、ロケールを「Western」にしてみる。
その後、第２検証部４０は、カテゴリの復元に成功したかどうかを判定する（ステップ４１０）。つまり、上述したような処理を行うことにより、言語Ａに関する特徴数配列と言語Ｂに関する特徴数配列とが一致するようになるかどうかを判定する。
【００５５】
その結果、カテゴリの復元に成功したと判定されれば、つまり、上述したような処理を行うことにより２つの特徴数配列が一致するようになると判定されれば、カテゴリごとの対応付け処理に移る。
一方、カテゴリの復元に失敗したと判定されれば、つまり、上述したような処理を行っても２つの特徴数配列が一致するようにならないと判定されれば、欠損したデータに関する情報をコンテンツ更新部５０に通知する（ステップ４１１）。
【００５６】
続いて図１０−２に移り、第２検証部４０は、特徴数配列のカテゴリごとに以下の処理を行う。
即ち、まず、第２検証部４０は、１つのカテゴリの情報を取得する（ステップ４２１）。尚、ここで取得するカテゴリの情報には、カテゴリに属する文字列の数だけでなく、各文字列の内容もある。文字列の数は、第２検証部４０が保持する特徴数配列から取得することができるが、各文字列の内容は、解析結果記憶部２０に記憶された文字列テーブルから取得する。
【００５７】
次に、第２検証部４０は、カテゴリに属する文字列の数を判別する（ステップ４２２）。
ここで、カテゴリに属する文字列の数が「０」の場合、このカテゴリに関する処理はスキップする。
また、カテゴリに属する文字列の数が「１」の場合、後述する文字列差分算出処理を実行する（ステップ４２３）。この文字列差分算出処理では、言語Ａのブロックに出現したあるカテゴリに属する文字列と言語Ｂのブロックに出現した同じカテゴリに属する文字列との差分を算出する処理であり、２つの文字列の差分が戻り値として返される。
【００５８】
そこで、第２検証部４０は、２つの文字列の差分が予め設定された閾値の一例である許容範囲内であるかを判定する（ステップ４２４）。言語Ａのコンテンツを作成してから言語Ｂのコンテンツを作成するまでに日数があいた場合、言語Ａのコンテンツに記載される作成日付と、言語Ｂのコンテンツに記載される作成日付とが異なる場合がある。そのような場合、全く同じ日付しか許容しないようにすると、ユーザは本来正しいはずの日付にまで目を向けなければならず煩わしい。そこで、ここでは一定の許容範囲内であるかを判定している。このような許容範囲は、日付だけではなく、時刻や、数値、金額、位置情報といったカテゴリに対しても設けることができる。
そして、第２検証部４０は、差分が許容範囲内でなければ、文字列が整合しない旨の情報をコンテンツ更新部５０に通知する（ステップ４２５）。また、差分が許容範囲内であれば、そのような情報は通知しない。
【００５９】
更に、カテゴリに属する文字列の数が「２」以上の場合、ブロック内の文字列の出現位置（センテンスＩＤ等）を考慮することで、言語Ａの文字列と言語Ｂの文字列との対応を絞り込むことができる。これは、翻訳等によって、言語Ａの１つのセンテンスが、言語Ｂでは複数のセンテンスに分割される、ということが殆どないことを利用したものである。そこで、第２検証部４０は、文字列とセンテンスとの対応付けを行う（ステップ４１５）。そして、全ての文字列とセンテンスが１対１にマッチしたかどうかを判定する（ステップ４１６）。
【００６０】
その結果、全ての文字列とセンテンスが１対１にマッチしていれば、ステップ４３３へ進む。例えば、言語Ａのブロックから文字列Ａ１、Ａ２、Ａ３が抽出され、各文字列が出現したセンテンスのセンテンスＩＤが１、２、４であり、言語Ｂの対応するブロックから文字列Ｂ１、Ｂ２、Ｂ３が抽出され、各文字列が出現したセンテンスのセンテンスＩＤが１、２、４であったとする。この場合、対応する文字列がセンテンスをまたがないことを前提とすると、Ａ１とＢ１、Ａ２とＢ２、Ａ３とＢ３がそれぞれ対応することが分かる。従って、この場合は、ステップ４１６で全てが１対１にマッチしたとみなして、ステップ４３３へ進む。
一方、全ての文字列とセンテンスが１対１にマッチしているわけでなければ、ステップ４２６以降の処理を行う。例えば、抽出された文字列が出現したセンテンスのセンテンスＩＤが例えば１、２、２である場合のように全てが１対１にマッチしない場合、１対１にマッチする部分を除いた残りの部分について、ステップ４２６以降の処理を行う。
【００６１】
即ち、まず、第２検証部４０は、言語Ａのコンテンツから抽出した文字列のそれぞれに、言語Ｂのコンテンツから抽出したどの文字列を対応付けるかによって決まる複数の組み合わせのうち、１つの組み合わせに着目する（ステップ４２６）。例えば、言語Ａのコンテンツから文字列Ａ１、Ａ２、Ａ３が抽出され、言語Ｂのコンテンツから文字列Ｂ１、Ｂ２、Ｂ３が抽出された場合を考える。この場合、組み合わせは、{ [A1,B1],[A2,B2],[A3,B3] } , { [A1,B1],[A2,B3],[A3,B2] } , { [A1,B2],[A2,B1],[A3,B3] } , { [A1,B2],[A2,B3],[A3,B1] } , { [A1,B3],[A2,B1],[A3,B2] } , { [A1,B3],[A2,B2],[A3,B1] }の６通りとなる。一般に、ｎ個の文字列があれば、組み合わせはｎ！通りとなる。そこで、ステップ４２６では、これらの組み合わせのうちの１つの組み合わせに着目する。
【００６２】
次に、第２検証部４０は、着目した組み合わせに含まれる１つの文字列の組に着目する（ステップ４２７）。例えば、組み合わせが{ [A1,B1],[A2,B2],[A3,B3] }であるとすると、その中の組[A1,B1]に着目する。
次いで、第２検証部４０は、この着目した組について、後述する文字列差分算出処理を実行する（ステップ４２８）。上述した通り、この文字列差分算出処理では、言語Ａのブロックに出現したあるカテゴリに属する文字列と言語Ｂのブロックに出現した同じカテゴリに属する文字列との差分を算出する処理であり、２つの文字列の差分が戻り値として返される。
その後、第２検証部４０は、着目した組み合わせに含まれる複数の組の中に未処理の組があるかどうかを判定する（ステップ４２９）。
その結果、未処理の組があると判定されれば、ステップ４２７〜４２８の処理を繰り返す。
【００６３】
一方、未処理の組がないと判定されれば、第２検証部４０は、ステップ４２８で返された差分に基づいて、現在着目している組み合わせを採用した場合のばらつき度合の一例である標準偏差を算出する（ステップ４３０）。
その後、第２検証部４０は、考えられる複数の組み合わせの中に未処理の組み合わせがあるかどうかを判定する（ステップ４３１）。
その結果、未処理の組み合わせがあると判定されれば、ステップ４２６〜４３０の処理を繰り返す。
一方、未処理の組み合わせがないと判定されれば、ステップ４３０で算出した標準偏差を最少とする組み合わせを、言語Ａの文字列と言語Ｂの文字列の最適な対応付けとして選択する（ステップ４３２）。
【００６４】
例えば、文字列Ａ１が「2008/10/20」、文字列Ａ２が「2008/10/22」、文字列Ａ３が「2008/10/24」、文字列Ｂ１が「2008/10/22」、文字列Ｂ２が「2008/10/24」、文字列Ｂ３が「2008/10/26」である場合を考える。この場合、組み合わせとして{ [A1,B1],[A2,B2],[A3,B3] }を採用したとすると、各組の差分は2008/10/22 - 2008/10/20 = 2 , 2008/10/24 - 2008/10/22 = 2 , 2008/10/26 - 2008/10/24 = 2となり、その平均は２となる。従って、ステップ４３０では、標準偏差として、０（＝√（（２−２）２＋（２−２）２＋（２−２）２）／３）が算出される。また、組み合わせとして{ [A1,B3],[A2,B1],[A3,B2] }を採用したとすると、各組の差分は2008/10/26 - 2008/10/20 = 6 , 2008/10/22 - 2008/10/22 = 0 , 2008/10/24 - 2008/10/24 = 0となり、その平均は２となる。従って、ステップ４３０では、標準偏差として、√８（＝√（（６−２）２＋（０−２）２＋（０−２）２）／３）が算出される。更に、他の組み合わせを採用したとしても、標準偏差が０を下回ることはないので、上記の標準偏差を０とする組み合わせを選択する。
【００６５】
次に、第２検証部４０は、選択した組み合わせに含まれる１つの文字列の組に着目する（ステップ４３３）。例えば、組み合わせが{ [A1,B1],[A2,B2],[A3,B3] }であるとすると、その中の組[A1,B1]に着目する。
次いで、第２検証部４０は、この着目した組に含まれる２つの文字列の差分が予め設定された許容範囲内であるかを判定する（ステップ４３４）。言語Ａのコンテンツを作成してから言語Ｂのコンテンツを作成するまでに日数があいた場合、言語Ａのコンテンツに記載される作成日付と、言語Ｂのコンテンツに記載される作成日付とが異なる場合がある。そのような場合、全く同じ日付しか許容しないようにすると、ユーザは本来正しいはずの日付にまで目を向けなければならず煩わしい。そこで、ここでは一定の許容範囲内であるかを判定している。このような許容範囲は、日付だけではなく、時刻や数値、金額、位置情報といったカテゴリに対しても設けることができる。
そして、第２検証部４０は、差分が許容範囲内でなければ、文字列が整合しない旨の情報をコンテンツ更新部５０に通知する（ステップ４３５）。また、差分が許容範囲内であれば、そのような情報は通知しない。
その後、第２検証部４０は、選択した組み合わせに含まれる複数の組の中に未処理の組があるかどうかを判定する（ステップ４３６）。
その結果、未処理の組があると判定されれば、ステップ４３３〜４３５の処理を繰り返す。
【００６６】
一方、未処理の組がないと判定されれば、第２検証部４０は、他に未処理のカテゴリがあるかどうかを判定する（ステップ４３７）。
その結果、未処理のカテゴリがあると判定されれば、ステップ４２１〜４３６の処理を繰り返す。
一方、未処理のカテゴリがないと判定されれば、未処理のブロックＩＤの組があるかどうかを判定する（ステップ４３８）。
その結果、未処理のブロックＩＤの組があると判定されれば、ステップ４０７〜４３７の処理を繰り返す。
一方、未処理のブロックＩＤの組がないと判定されれば、処理を終了する。
【００６７】
次いで、図１０−２のステップ４２３及びステップ４２８における文字列差分算出処理について説明する。
図１２は、文字列差分算出処理の流れの一例を示したフローチャートである。
まず、第２検証部４０は、差分を算出する対象の２つの文字列が完全に一致しているかどうかを判定する（ステップ４４１）。
その結果、２つの文字列が完全に一致していると判定されると、第２検証部４０は、戻り値である差分に「０」をセットする（ステップ４４２）。
一方、２つの文字列が完全に一致しているわけではないと判定されると、第２検証部４０は、２つの文字列を正規化する（ステップ４４３）。ここで、正規化とは、特定の記述形式に変換することにより、文字列の表記のゆれをなくすことである。例えば、日付に関し、特定の記述形式を「YYYY-MM-DD」とする（「YYYY」は年４桁、「MM」は月２桁、「DD」は日２桁を表す）。すると、「08/08/2007」は「2007-08-08」に、「09/08/2007」は「2007-08-09」又は「2007-09-08」に、「17/10/2007」は「2007-10-17」に、それぞれ正規化される。尚、このとき、ブロックのロケールを参照して、正規化後の候補が２つ以上にならないようにすることもできる。
そして、第２検証部４０は、正規化後の文字列（正規化文字列）が一致するかどうかを判定する（ステップ４４４）。
【００６８】
その結果、正規化文字列が一致すると判定されると、第２検証部４０は、戻り値である差分に「０」をセットする（ステップ４４２）。
一方、正規化文字列が一致しないと判定されると、２つの正規化文字列の差分が許容範囲外で、かつ、文字単位で正規化すべきかどうかを判定する（ステップ４４５）。ここで、正規化文字列が一致しないと判定される場合の例としては、２つの文字列が、例えば、図５に示した「1.02 quadrillion」と図６に示した「1.020兆」である場合が挙げられる。ここで、「quadrillion」は「千兆」を意味するので、図６の日本語のコンテンツにおいて仮に「1,020兆」と表記されていれば、これは「1.02 quadrillion」と整合する。ところが、３桁区切りの記号を「.」で表す言語が指定されると、このような誤りが生ずる。この場合、「1.02 quadrillion」を正規化すると「1.02 × 1015」となるが、「1.020兆」を正規化すると「1.020 × 1012」となり、正規化文字列は一致しない。尚、この２つの文字列は、図１０−２のステップ４２４又は４３４で許容範囲内ではないと判定されることになるので、検証結果は、例えば「警告」となる。
【００６９】
また、２つの正規化文字列の差分が許容範囲外で、かつ、文字単位で正規化すべきかどうかの判定は、カテゴリごとに許容範囲及び指示情報を定義したテーブルを参照することによって行われる。ここで、指示情報とは、文字単位で正規化すべきかどうかを指示する情報であり、指示情報「Ｙｅｓ」は文字単位で正規化すべきことを意味し、指示情報「Ｎｏ」は文字単位で正規化すべきでないことを意味する。例えば、カテゴリ「日付」に対して、許容範囲「後方１週間以内」、指示情報「Ｎｏ」がテーブルに定義されている場合に、日付に関する文字列差分算出処理を行ったとする。この場合は、一方の正規化文字列が他方の正規化文字列の後方１週間以内になかったとしても、指示情報が「Ｎｏ」なので、文字列単位での正規化は行われない。一方、カテゴリ「数値」に対して、許容範囲「±１００」、指示情報「Ｙｅｓ」がテーブルに定義されている場合に、数値に関する文字列差分算出処理を行ったとする。この場合は、２つの正規化文字列の差分が１００を超えていれば、指示情報が「Ｙｅｓ」なので、文字列単位での正規化が行われる。
【００７０】
また、ステップ４４５での判定の結果、２つの正規化文字列の差分が許容範囲内、又は、文字単位で正規化すべきではないと判定されれば、２つの正規化文字列の差分を、戻り値である差分にセットする（ステップ４４６）。
一方、２つの正規化文字列の差分が許容範囲外で、かつ、文字単位で正規化すべきと判定されれば、２つの正規化文字列の少なくとも何れか一方を更に文字単位で正規化する（ステップ４４７）。ここで、文字単位での正規化としては、例えば、漢数字をアラビア数字に置き換えることが考えられる。
そして、文字単位で正規化された文字列における文字の数及び順序（出現頻度及び出現順序）が同じであるかどうかを判定する（ステップ４４８）。上記のように、漢数字をアラビア数字に置き換えた場合であれば、個々のアラビア数字に着目して、その数及び順序が同じかどうかを判定する。
その結果、文字の数及び順序が同じであると判定されると、第２検証部４０は、戻り値である差分に「０」をセットする（ステップ４４２）。
一方、文字の数及び順序が異なると判定されると、第２検証部４０は、文字の数及び順序の違いを示す数値を、戻り値である差分にセットする（ステップ４４９）。
【００７１】
以下、この文字列差分算出処理について具体例を用いて説明する。尚、この文字列差分算出処理は、１つの文字列に対し１つの文字列を対応付け、差分を算出するものであるが、ここでは、便宜上、１つの文字列に対し複数の文字列を対応付け、組ごとの差分をまとめて算出するものとして説明する。また、カテゴリ「日付」に対して、許容範囲「後方１週間以内」、指示情報「Ｎｏ」が定義され、カテゴリ「数値」に対して、許容範囲「±１００」、指示情報「Ｙｅｓ」が定義されたテーブルが保持されていることを前提とする。
【００７２】
第一に、言語Ａの文字列「平成19年10月13日」と、言語Ｂの文字列「08/08/2007」、「09/08/2007」、「17/10/2007」との差分を算出する場合を例にとる。
この場合、文字列「平成19年10月13日」に対し、言語Ｂの何れの文字列を組み合わせたとしても、ステップ４４１で完全一致することにはならない。
そこで、ステップ４４３で文字列を正規化する。即ち、言語Ａの文字列「平成19年10月13日」を「2007-10-13」に変換し、言語Ｂの文字列「08/08/2007」、「09/08/2007」、「17/10/2007」を、それぞれ、「2007-08-08」、「2007-08-09」、「2007-10-17」に変換する。
【００７３】
しかしながら、言語Ａの正規化文字列「2007-10-13」に対し、言語Ｂの正規化文字列の何れを組み合わせても、ステップ４４４で一致することにはならない。
そこで、この例は日付の差分算出の例で、指示情報が「Ｎｏ」であり、ステップ４４５で差分の値に関わらず文字単位での正規化は行わないと判断されるので、言語Ａの文字列と言語Ｂの各文字列との組み合わせについて差分を算出する。即ち、ステップ４４６において、「平成19年10月13日」と「08/08/2007」、「09/08/2007」、「17/10/2007」との差分に、それぞれ、「−６６」、「−６５」、「４」をセットする。
尚、この例において、最終的な表示における許容範囲としても「後方１週間以内」が定義されているとすると、言語Ａの文字列「平成19年10月13日」は言語Ｂの文字列「17/10/2007」と整合していると判断されることになる。
【００７４】
第二に、言語Ａの文字列「参兆弐万」と、言語Ｂの文字列「3020000」、「400000000」との差分を算出する場合を例にとる。
この場合、文字列「参兆弐万」に対し、言語Ｂの何れの文字列を組み合わせたとしても、ステップ４４１で完全一致することにはならない。
そこで、ステップ４４３で文字列を正規化する。即ち、言語Ａの文字列「参兆弐万」を「3000000020000」に変換する。
【００７５】
しかしながら、言語Ａの正規化文字列「3000000020000」に対し、言語Ｂの正規化文字列の何れを組み合わせても、ステップ４４４で一致することにはならない。
そこで、この例は数値の差分算出の例で、許容範囲が「±１００」、指示情報が「Ｙｅｓ」であり、ステップ４４５で差分が１００を超えており文字単位での正規化を行うと判断されるので、ステップ４４７で文字列を文字単位で正規化する。即ち、言語Ａの文字列「参兆弐万」は、文字単位で、「参」を「3」、「兆」を「1000000000000」、「弐」を「2」、「万」を「10000」と正規化できるので、これらを繋げて文字列「31000000000000210000」を生成する。
【００７６】
しかしながら、この正規化文字列の文字の並びが「3, 1, 0, 2, 1, 0」であるのに対し、言語Ｂの文字列「3020000」、「400000000」のの文字の並びはそれぞれ「3, 0, 2, 0」、「4, 0」であり、ステップ４４８で一致することにはならない。
そこで、ステップ４４９において、文字の数及び順序の違いを表す数値を差分にセットすることになる。この場合、文字の数及び順序の違いは、例えば、２つの文字列の一致する部分を対応付け、その他の部分において一方の文字列に存在し、他方の文字列に存在しない文字の数をカウントすることで表すことができる。つまり、「3, 1, 0, 2, 1, 0」と「3, 0, 2, 0」の文字の順序の違いは、前者に現れている２つの「1」が後者に現れていないので「２」とすることができる。また、「3, 1, 0, 2, 1, 0」と「4, 0」の文字の並びの違いは、前者に現れている「3」、「1」、「0」、「2」、「1」が後者に現れておらず、後者に現れている「4」が前者に現れていないので「６」とすることができる。
【００７７】
尚、この例では、「兆」が、日本語では１０１２を意味するのに対して、中国語では１０６を意味することを踏まえて、言語Ａのコンテンツにおける「参兆弐万」が、言語Ｂのコンテンツにおいて「3020000」と表記されたことを想定したが、このような誤りであっても発見することができる。
【００７８】
そして、本実施の形態では、コンテンツ更新部５０が、コンテンツ記憶部５に記憶されたコンテンツをこれらの検証の結果に基づいて更新し、検証作業支援装置１の画面に分かり易く表示できるようにする。
図１３は、このような処理の結果として表示された内容の一例を示した図である。
ここでは、第１検証部３０において「注意」と判定された「2008年6月18号」と、第２検証部４０において「警告」と判定された「1.020兆」とが、太枠囲みで強調表示されている。尚、図では、「注意」と「警告」を同じ太さの枠で囲んだが、異なる装飾を施すことにより、誤りのレベルを区別できるようにしてもよい。また、図では、地域／文化型データとして抽出された文字列であっても、検証の結果が「ＯＫ」であるものについては、何も表示しないようにした。しかしながら、地域／文化型データとして抽出されたことを目立たないマークで示すようにしても構わない。
【００７９】
以上、本実施の形態について説明してきた。
このように、本実施の形態では、地域／文化型データの検証を支援するために、検証者が閲覧する画面上のデータ（主にテキストデータ）から地域／文化型データを自動的に検出し、検証者が視認し易く表示するようにした。また、その際、検出された地域／文化型データに関する正否や、検証を容易にする補助的情報も表示するようにした。
具体的には、上述した各機能部の組み合わせにより、グローバリゼーションテストの効率的かつ正確な実施をサポートする。
即ち、コンテンツ解析部１０及びコンテンツ更新部５０により、冒頭に述べた問題の（１），（２），（４）に関して、注目すべきデータを検証者が容易に視認し、結果を判定することが可能になる。
また、第１検証部３０及びコンテンツ更新部５０により、冒頭に述べた問題の（３）に関して、典型的なパターンで表示されているデータの検証結果を確認可能となる。
更に、解析結果記憶部２０、第２検証部４０、コンテンツ更新部５０により、冒頭に述べた問題の（５）に関して、抜け落ちやコンテンツの比較を可能とする。
【００８０】
尚、本実施の形態のユースケースとしては、次のようなものが考えられる。
第一に、アプリケーションが出力するコンテンツを対象として本装置による処理を行い、注意すべき地域／文化型データを視認し易くして、テストを行う、というケースである。これは、単独のコンテンツに対するケースである。
第二に、同一内容を複数の言語で表示するためのアプリケーションの検証者が、ベースとなる言語とそれ以外の言語とを見比べて検証を行う、というケースである。これは、主に、アプリケーションが扱う地域／文化型データをシステムから自動的に取得してコンテンツを生成するケースである。
第三に、プレスリリースや発表レター等の複数の言語に翻訳されるコンテンツを作成した後、検証者が、翻訳に依存しない日付、数値、金額等のデータがそれぞれの言語のコンテンツで一致しているかを検証するケースである。これは、主に人手によって作成されたコンテンツを検証するケースである。
【００８１】
最後に、本実施の形態を適用するのに好適なコンピュータのハードウェア構成について説明する。図１４は、このようなコンピュータのハードウェア構成の一例を示した図である。図示するように、コンピュータは、演算手段であるＣＰＵ（Central Processing Unit）９０ａと、Ｍ／Ｂ（マザーボード）チップセット９０ｂを介してＣＰＵ９０ａに接続されたメインメモリ９０ｃと、同じくＭ／Ｂチップセット９０ｂを介してＣＰＵ９０ａに接続された表示機構９０ｄとを備える。また、Ｍ／Ｂチップセット９０ｂには、ブリッジ回路９０ｅを介して、ネットワークインターフェイス９０ｆと、磁気ディスク装置（ＨＤＤ）９０ｇと、音声機構９０ｈと、キーボード／マウス９０ｉと、フレキシブルディスクドライブ９０ｊとが接続されている。
【００８２】
尚、図１４において、各構成要素は、バスを介して接続される。例えば、ＣＰＵ９０ａとＭ／Ｂチップセット９０ｂの間や、Ｍ／Ｂチップセット９０ｂとメインメモリ９０ｃの間は、ＣＰＵバスを介して接続される。また、Ｍ／Ｂチップセット９０ｂと表示機構９０ｄとの間は、ＡＧＰ（Accelerated Graphics Port）を介して接続されてもよいが、表示機構９０ｄがＰＣＩ Ｅｘｐｒｅｓｓ対応のビデオカードを含む場合、Ｍ／Ｂチップセット９０ｂとこのビデオカードの間は、ＰＣＩ Ｅｘｐｒｅｓｓ（ＰＣＩｅ）バスを介して接続される。また、ブリッジ回路９０ｅと接続する場合、ネットワークインターフェイス９０ｆについては、例えば、ＰＣＩ Ｅｘｐｒｅｓｓを用いることができる。また、磁気ディスク装置９０ｇについては、例えば、シリアルＡＴＡ（AT Attachment）、パラレル転送のＡＴＡ、ＰＣＩ（Peripheral Components Interconnect）を用いることができる。更に、キーボード／マウス９０ｉ、及び、フレキシブルディスクドライブ９０ｊについては、ＵＳＢ（Universal Serial Bus）を用いることができる。
【００８３】
ここで、本発明は、全てハードウェアで実現してもよいし、全てソフトウェアで実現してもよい。また、ハードウェア及びソフトウェアの両方により実現することも可能である。また、本発明は、コンピュータ、データ処理システム、コンピュータプログラムとして実現することができる。このコンピュータプログラムは、コンピュータにより読取り可能な媒体に記憶され、提供され得る。ここで、媒体としては、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（装置又は機器）、或いは、伝搬媒体が考えられる。また、コンピュータにより読取り可能な媒体としては、半導体、ソリッドステート記憶装置、磁気テープ、取り外し可能なコンピュータディスケット、ランダムアクセスメモリ（ＲＡＭ）、リードオンリーメモリ（ＲＯＭ）、リジッド磁気ディスク、及び光ディスクが例示される。現時点における光ディスクの例には、コンパクトディスク−リードオンリーメモリ（ＣＤ−ＲＯＭ）、コンパクトディスク−リード／ライト（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００８４】
以上、本発明を実施の形態を用いて説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の精神及び範囲から逸脱することなく様々に変更したり代替態様を採用したりすることが可能なことは、当業者に明らかである。
【符号の説明】
【００８５】
１…検証作業支援装置、５…コンテンツ記憶部、１０…コンテンツ解析部、２０…解析結果記憶部、３０…第１検証部、４０…第２検証部、５０…コンテンツ更新部、６０…制御部
【図１】
2010186406.tif 000003
【図２】
2010186406.tif 000004
【図３】
2010186406.tif 000005
【図４】
2010186406.tif 000006
【図５】
2010186406.tif 000007
【図６】
2010186406.tif 000008
【図７】
2010186406.tif 000009
【図８】
2010186406.tif 000010
【図９】
2010186406.tif 000011
【図１０−１】
2010186406.tif 000012
【図１０−２】
2010186406.tif 000013
【図１１】
2010186406.tif 000014
【図１２】
2010186406.tif 000015
【図１３】
2010186406.tif 000016
【図１４】
2010186406.tif 000017