(57)【要約】【課題】テキストや入力コントロールを有するデジタルコンテンツの開発者の負担を、テキストを検索キーとして既存のデジタルコンテンツを検索し流用する方法よりも軽減する。【課題を解決するための手段】  記憶資源が、一のデジタルコンテンツにつき複数のコンテンツ部品情報グループを記憶する。コンテンツ部品情報グループは、コンテンツ部品を表し、テキスト情報要素と入力コントロール種類情報要素とを含んだ情報パッケージを一つ以上有する。検索装置が、テキスト情報要素と入力コントロール種類情報要素との組合せを含んだ検索条件の入力を受け、その検索条件と記憶資源内の各コンテンツ部品情報グループとの類似度を、該検索条件と各コンテンツ部品情報グループ内のそれぞれのテキスト情報要素及び入力コントロール種類情報要素に基づいて算出し、コンテンツ部品候補に関する情報を算出された類似度に基づいて表示する。【選択図】図１
2008287311.tif 000002
【特許請求の範囲】
【請求項１】
テキストを表すテキスト情報要素と入力コントロールの種類を表す入力コントロール種類情報要素との組合せを含んだ検索条件の入力を受け付ける検索条件入力部と、
一つ以上のコンテンツ部品情報グループを記憶する記憶部と、前記コンテンツ部品情報グループは、テキストと入力コントロールとを含んだコンテンツ部品を表し、一以上の情報パッケージを含み、前記情報パッケージには、表示されるテキストを表すテキスト情報要素と入力コントロールの種類を表す入力コントロール種類情報要素とが含まれ、
各コンテンツ部品情報グループと前記入力された検索条件との類似度を、該検索条件に含まれているテキスト情報要素及び入力コントロール種類情報要素とコンテンツ部品情報グループに含まれているテキスト情報要素及び入力コントロール種類情報要素とに基づいて算出する部品検索部と、
前記検索条件についてのコンテンツ部品候補に関する情報を前記算出された類似度に基づいて表示画面に表示する部品候補表示部と
を備えるコンテンツ部品検索装置。
【請求項２】
前記類似度は、前記検索条件に含まれている一以上のテキスト情報要素と前記コンテンツ部品情報グループに含まれている一以上のテキスト情報要素との第一の類似度と、前記検索条件に含まれている一以上の入力コントロール種類情報要素と前記コンテンツ部品情報グループに含まれている一以上の入力コントロール種類情報要素との第二の類似度とに基づいて算出された値である、
請求項１記載のコンテンツ部品検索装置。
【請求項３】
前記類似度は、前記検索条件に含まれているテキスト情報要素及び入力コントロール種類情報要素の一以上のセットと、コンテンツ部品情報グループに含まれているテキスト情報要素及び入力コントロール種類情報要素の一以上のセットとの類似度である、
請求項１記載のコンテンツ部品検索装置。
【請求項４】
画面コンテンツを表すコンテンツファイルを解析することで、テキスト情報要素、テキスト配置位置、入力コントロール種類情報要素、及び入力コントロール配置位置を特定するコンテンツ解析部と、
前記コンテンツファイルの解析の結果を基に、それぞれの入力コントロール配置位置関係を特定し、特定された位置関係が所定の条件を満たす場合に、前記条件を満たす複数の入力コントロールをグループとして抽出するグルーピング部と、
前記抽出したグループを構成する前記複数の入力コントロールに対応した複数の入力コントロール種類情報要素を含んだ複数の情報パッケージを有するパッケージグループを生成するパッケージグループ生成部と、
前記コンテンツファイルの解析の結果を基に、情報パッケージにおける前記入力コントロール種類情報要素に対応するテキスト情報要素を取得し、取得したテキスト情報要素をその情報パッケージに含めるテキスト付与部と、
テキスト情報要素がそれぞれ含められた複数の情報パッケージを有するパッケージグループであるコンテンツ情報グループを前記解析されたコンテンツファイルに関連付けて前記記憶部に格納する部品登録部と
を更に備える請求項１記載のコンテンツ部品検索装置。
【請求項５】
前記所定の条件は、入力コントロール同士の配置位置間の距離が所定の値以下である、
請求項４記載のコンテンツ部品検索装置。
【請求項６】
情報パッケージに含められるテキスト情報要素は、その情報パッケージ内の入力コントロール種類情報要素に対応した入力コントロールとの間の配置位置関係が所定の条件を満たすテキストを表す情報要素である、
請求項４記載のコンテンツ部品検索装置。
【請求項７】
前記所定の条件は、テキストの配置位置と入力コントロールの配置位置との間の距離が所定の値以下である、
請求項６記載のコンテンツ部品検索装置。
【請求項８】
前記コンテンツ情報グループは、最低階層レベルの末端に対応する情報パッケージをリーフとし、最低階層レベル以外の階層レベルの先頭に対応する情報パッケージをブランチとする情報パッケージツリーであり、
前記コンテンツ部品情報グループは、前記コンテンツ情報グループそれ自体又はそれのサブセットである、
請求項１記載のコンテンツ部品検索装置。
【請求項９】
前記コンテンツ部品候補に関する情報には、コンテンツ部品情報グループの最上位にある情報パッケージ内のテキスト情報要素が含まれる、
請求項４記載のコンテンツ部品検索装置。
【請求項１０】
前記コンテンツ部品候補は、前記算出された類似度が所定の閾値以上であるコンテンツ部品情報グループに対応したコンテンツ部品である、
請求項１記載のコンテンツ部品検索装置。
【請求項１１】
前記部品候補表示部が、更に、コンテンツ部品候補の数を表示する、
請求項１０記載のコンテンツ部品検索装置。
【請求項１２】
前記部品候補表示部は、入力された検索条件が複数個存在し、それらの検索条件が階層関係にある場合、上位の検索条件についてのコンテンツ部品候補に関する情報を優先的に表示する、
請求項１記載のコンテンツ部品検索装置。
【請求項１３】
前記部品登録部が、同一又は類似のコンテンツ部品情報グループの集まりである部品グループを作成し、
前記部品検索部が、前記入力された検索条件と各部品グループとの類似度を算出し、
前記部品候補表示部が、コンテンツ部品候補に関する情報として部品グループに関する情報を表示する、
請求項４記載のコンテンツ部品検索装置。
【請求項１４】
前記部品登録部が、更に、一の部品グループについて複数のスタイルグループを作成し、
スタイルグループは、同一又は類似のスタイルを有する複数のコンテンツ部品情報グループの集まりであり、
前記部品候補表示部が、部品グループに関する情報に加えスタイルグループに関する情報を表示する、
請求項１３記載のコンテンツ部品検索装置。
【請求項１５】
前記部品登録部が、新規のコンテンツファイルを前記記憶部に登録する際に、該新規のコンテンツファイルについてのコンテンツ部品情報グループを、そのコンテンツ部品情報グループと同一又は類似の部品グループに分類する、
請求項１３記載のコンテンツ部品検索装置。
【請求項１６】
前記部品登録部が、登録性能よりも検索性能を重視することが入力された場合に、新規のコンテンツファイルを前記記憶部に登録する際に、該新規のコンテンツファイルについてのコンテンツ部品情報グループを、そのコンテンツ部品情報グループと同一又は類似の部品グループに分類する、
請求項１５記載のコンテンツ部品検索装置。
【請求項１７】
前記部品検索部が、どの部品グループにも分類されていないコンテンツ部品情報グループと前記検索条件との類似度を算出し、
前記部品登録部が、どの部品グループにも分類されていないコンテンツ部品情報グループに対応したコンテンツ部品がコンテンツ部品候補とされた場合に、そのコンテンツ部品情報グループをそれに該当する部品グループに分類する、
請求項１３記載のコンテンツ部品検索装置。
【請求項１８】
前記部品登録部が、検索性能よりも登録性能を重視することが入力された場合に、どの部品グループにも分類されていないコンテンツ部品情報グループに対応したコンテンツ部品がコンテンツ部品候補とされた場合に、そのコンテンツ部品情報グループをそれに該当する部品グループに分類する、
請求項１７記載のコンテンツ部品検索装置。
【請求項１９】
複数のコンテンツ部品情報グループが二以上の部品グループに分類されており、
前記部品検索部が、前記入力された検索条件と各部品グループとの類似度を算出し、
前記部品候補表示部が、前記コンテンツ部品候補に関する情報として、部品グループに関する情報を表示する、
請求項１記載のコンテンツ部品検索装置。
【請求項２０】
一の部品グループについて、複数のスタイルグループがあり、スタイルグループは、同一又は類似のスタイルを有する複数のコンテンツ部品情報グループの集まりであり、
前記部品候補表示部が、部品グループに関する情報に加えスタイルグループに関する情報を表示する、
請求項１９記載のコンテンツ部品検索装置。
【請求項２１】
第一の部品グループに属する既存部品サブツリー内の情報パッケージが、第一の部品グループとは別の第二の部品グループにも属していれば、その第二の部品グループが、第一の部品グループに含まれる部品グループであり、
前記部品候補表示部が、第一の部品グループに含まれる第二の部品グループに関する情報を表示する、
請求項１９記載のコンテンツ部品検索装置。
【請求項２２】
前記部品候補表示部が、スタイルグループに対応したコンテンツ部品情報グループの数を表示する、
請求項２０記載のコンテンツ部品検索装置。
【請求項２３】
前記検索条件は、階層構造を持つ画面コンテンツの定義情報又はそれのサブセットである、
請求項８記載のコンテンツ部品検索装置。
【請求項２４】
テキストを表すテキスト情報要素と入力コントロールの種類を表す入力コントロール種類情報要素との組合せを含んだ検索条件の入力を受け付け、
記憶部内の各コンテンツ部品情報グループ（前記コンテンツ部品情報グループは、テキストと入力コントロールとを含んだコンテンツ部品を表し、一以上の情報パッケージを含み、前記情報パッケージには、表示されるテキストを表すテキスト情報要素と入力コントロールの種類を表す入力コントロール種類情報要素とが含まれ、）と前記入力された検索条件との類似度を、該検索条件に含まれているテキスト情報要素及び入力コントロール種類情報要素とコンテンツ部品情報グループに含まれているテキスト情報要素及び入力コントロール種類情報要素とに基づいて算出し、
前記検索条件についてのコンテンツ部品候補に関する情報を前記算出された類似度に基づいて表示画面に表示する、
コンテンツ部品検索方法。
【請求項２５】
表示されるテキストと入力コントロールとを含んだコンテンツ部品を表す情報であって、テキストを表すテキスト情報要素と入力コントロールの種類を表す入力コントロール種類情報要素との組合せを含んだ検索条件の入力を受け付け、
記憶部内の各コンテンツ部品情報グループ（前記コンテンツ部品情報グループは、テキストと入力コントロールとを含んだコンテンツ部品を表し、一以上の情報パッケージを含み、前記情報パッケージには、表示されるテキストを表すテキスト情報要素と入力コントロールの種類を表す入力コントロール種類情報要素とが含まれ、）と前記入力された検索条件との類似度を、該検索条件に含まれているテキスト情報要素及び入力コントロール種類情報要素とコンテンツ部品情報グループに含まれているテキスト情報要素及び入力コントロール種類情報要素とに基づいて算出し、
前記検索条件についてのコンテンツ部品候補に関する情報を前記算出された類似度に基づいて表示画面に表示する、
ことをコンピュータに実行させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータを利用した情報検索技術に関する。
【背景技術】
【０００２】
例えば、情報検索技術の一つとして、特許文献１（特開２００３−１５８７２）に開示の技術がある。特許文献１に開示の技術によれば、オブジェクト指向で開発されたソフトウェアの各オブジェクトを検索キーに基づいて効率的に検索するオブジェクト検索装置が提供される。
【特許文献１】特開２００３−１５８７２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、テキストや入力コントロール（例えば、テキストボックス、ラジオボタン或いはチェックボックスなど）を有する画面コンテンツの設計が必要となるケースがある。例えば、電子申請システムでは、そのような画面コンテンツとして、たくさんの入出力画面（例えば、電子申請システムが大規模であれば数千の入出力画面）の設計が必要となる。このケースにおいて、そのような画面コンテンツを人手で一から設計するとなると、開発者の負担が大きい。
【０００４】
そのような画面コンテンツの設計を支援する方法として、例えば、所望のテキストを検索キーとして入力し、その検索キーと一致するテキストを有した既存の画面コンテンツを検索し、その既存の画面コンテンツを流用する方法が考えられる。しかし、この方法よりも開発者の負担を軽減することが望ましい。
【０００５】
従って、本発明の目的は、テキストや入力コントロールを有する画面コンテンツの開発者の負担を、テキストを検索キーとして既存の画面コンテンツを検索し流用する方法よりも軽減することにある。
【０００６】
本発明の他の目的は、後の説明から明らかになるであろう。
【課題を解決するための手段】
【０００７】
記憶部が、一の画面コンテンツにつき一以上のコンテンツ部品情報グループを記憶する。コンテンツ部品情報グループは、テキストと入力コントロールとを含んだコンテンツ部品を表し、一以上の情報パッケージを含む。情報パッケージには、表示されるテキストを表すテキスト情報要素と入力コントロールの種類を表す入力コントロール種類情報要素とが含まれる。検索装置が、テキスト情報要素と入力コントロール種類情報要素との組合せを含んだ検索条件の入力を受け、その検索条件と記憶部内の各コンテンツ部品情報グループとの類似度を、該検索条件に含まれているテキスト情報要素及び入力コントロール種類情報要素とコンテンツ部品情報グループに含まれているテキスト情報要素及び入力コントロール種類情報要素とに基づいて算出する。そして、検索装置が、その検索条件についてのコンテンツ部品候補に関する情報を上記算出された類似度に基づいて表示画面に表示する。
【発明を実施するための最良の形態】
【０００８】
一つの実施形態では、検索装置に、検索条件入力部、部品検索部及び部品候補表示部を備えることで、コンテンツ部品検索装置が構築される。検索条件入力部は、テキストを表すテキスト情報要素と入力コントロールの種類を表す入力コントロール種類情報要素との組合せを含んだ検索条件の入力を受け付ける。部品検索部が、記憶部（例えば記憶資源）内の各コンテンツ部品情報グループと入力された検索条件との類似度を、該検索条件に含まれているテキスト情報要素及び入力コントロール種類情報要素とコンテンツ部品情報グループに含まれているテキスト情報要素及び入力コントロール種類情報要素とに基づいて算出する。部品候補表示部が、検索条件についてのコンテンツ部品候補に関する情報を算出された類似度に基づいて表示画面に表示する。
【０００９】
ここで、コンテンツ部品とは、テキスト又は入力コントロールを最小単位とし、テキストと入力コントロールとの一つの組合せ、その組合せを複数個含んだグループ、或いは画面コンテンツそれ自体であっても良い。具体的には、例えば、階層構造を有する画面コンテンツについて、階層レベルが最高の場合には、コンテンツ部品は、画面コンテンツそれ自体であり、階層レベルが最低の場合には、コンテンツ部品は、一のテキスト、一の入力コントロール又はそれらの一の組合せであり、階層レベルが最高でも最低でも無い場合には、コンテンツ部品は、テキスト及び入力コントロールの組合せを複数個有したグループであって良い。
【００１０】
また、「表示画面」は、一又は複数の表示装置がそれぞれ有するハードウェアとしての一又は複数の表示画面であっても良いし、一又は複数のハードウェアとしての表示画面に表示されるソフトウェアとしての表示画面であっても良い。
【００１１】
また、「コンテンツ部品候補に関する情報」としては、コンテンツ部品の識別子、そのコンテンツ部品に対応した類似度、或いは、そのコンテンツ部品に対応したコンテンツ部品情報グループの或る情報パッケージに含まれているテキスト情報要素など、種々の情報を採用することができる。
【００１２】
また、「コンテンツ部品候補に関する情報を算出された類似度に基づいて表示する」とは、例えば、類似度の降順に表示することであっても良いし、所定の閾値以上の類似度であるコンテンツ部品候補に関する情報を表示することであっても良い。
【００１３】
一つの実施形態では、類似度は、検索条件に含まれている一以上のテキスト情報要素とコンテンツ部品情報グループに含まれている一以上のテキスト情報要素との第一の類似度と、検索条件に含まれている一以上の入力コントロール種類情報要素とコンテンツ部品情報グループに含まれている一以上の入力コントロール種類情報要素との第二の類似度とに基づいて算出された値（例えば所定の計算式に第一の類似度及び第二の類似度を代入することで算出された値）とすることができる。
【００１４】
一つの実施形態では、類似度は、検索条件に含まれているテキスト情報要素及び入力コントロール種類情報要素の一以上のセットと、コンテンツ部品情報グループに含まれているテキスト情報要素及び入力コントロール種類情報要素の一以上のセットとの類似度であるとすることができる。
【００１５】
一つの実施形態では、コンテンツ部品検索装置が、更に、コンテンツ解析部、グルーピング部、パッケージグループ生成部、テキスト付与部及び部品登録部を備えることができる。コンテンツ解析部は、画面コンテンツ（例えば入力フォーム）を表すコンテンツファイルを解析することで、テキスト情報要素、テキスト配置位置、入力コントロール種類情報要素、及び入力コントロール配置位置を特定することができる。具体的には、例えば、コンテンツ解析部は、コンテンツファイルを解析することで、テキスト情報要素及びテキスト配置位置情報要素の組合せであるテキスト／位置組合せと、入力コントロール種類情報要素及び入力コントロール配置位置情報要素の組合せである入力コントロール／位置組合せとを特定し、特定されたテキスト／位置組合せをテキスト管理情報に格納し、特定された入力コントロール／位置組合せを入力コントロール管理情報に格納することができる。グルーピング部は、コンテンツファイルの解析の結果を基に（例えば入力コントロール管理情報を参照することにより）、それぞれの入力コントロール配置位置関係を特定し、特定された位置関係が所定の第一の条件を満たす場合に、前記条件を満たす複数の入力コントロールをグループとして抽出することができる。パッケージグループ生成部は、抽出したグループを構成する複数の入力コントロールに対応した複数の入力コントロール種類情報要素を含んだ複数の情報パッケージを有するパッケージグループを生成することができる。テキスト付与部は、例えば、コンテンツファイルの解析の結果を基に（例えばテキスト管理情報から）、情報パッケージにおける入力コントロール種類情報要素に対応するテキスト情報要素を取得し、取得したテキスト情報要素をその情報パッケージに含めることができる（例えば、取得したテキスト情報要素をラベルとして情報パッケージに含めることができる）。部品登録部は、テキスト情報要素がそれぞれ含められた複数の情報パッケージを有するパッケージグループであるコンテンツ情報グループを、解析されたコンテンツファイルに関連付けて記憶部に格納することができる。
【００１６】
一つの実施形態では、所定の第一の条件は、入力コントロール同士の配置位置間の距離が所定の値以下であるとすることができる。
【００１７】
一つの実施形態では、情報パッケージに含められるテキスト情報要素は、その情報パッケージ内の入力コントロール種類情報要素に対応した入力コントロールとの間の配置位置関係が所定の第二の条件を満たすテキストを表す情報要素であるとすることができる。
【００１８】
一つの実施形態では、所定の第二の条件は、テキストの配置位置と入力コントロールの配置位置との間の距離が所定の値以下であるとすることができる。
【００１９】
一つの実施形態では、コンテンツ情報グループは、最低階層レベルの末端に対応する情報パッケージをリーフとし、最低階層レベル以外の階層レベルの先頭に対応する情報パッケージをブランチとする情報パッケージツリーであるとすることができる。コンテンツ部品情報グループは、コンテンツ情報グループそれ自体又はそれのサブセットであるとすることができる。
【００２０】
一つの実施形態では、コンテンツ部品候補に関する情報には、コンテンツ部品情報グループの最上位にある情報パッケージ内のテキスト情報要素が含まれてもよい。
【００２１】
一つの実施形態では、コンテンツ部品候補は、算出された類似度が所定の閾値以上であるコンテンツ部品情報グループに対応したコンテンツ部品であるとすることができる。
【００２２】
一つの実施形態では、部品候補表示部が、更に、コンテンツ部品候補の数を表示することができる。
【００２３】
一つの実施形態では、部品候補表示部は、入力された検索条件が複数個存在し、それらの検索条件が階層関係（例えば親子関係）にある場合、上位（例えば親）の検索条件についてのコンテンツ部品候補に関する情報を優先的に表示することができる。
【００２４】
一つの実施形態では、部品登録部が、同一又は類似のコンテンツ部品情報グループの集まりである部品グループを作成することができる。部品検索部が、入力された検索条件と各部品グループとの類似度を算出することができる。部品候補表示部が、コンテンツ部品候補に関する情報として部品グループに関する情報を表示することができる。
【００２５】
ここで、検索条件と部品グループとの類似度としては、その部品グループに属する一のコンテンツ部品情報グループと検索条件との類似度であっても良いし、その部品グループに属する複数のコンテンツ部品情報グループと検索条件との複数の類似度を用いた所定の計算により算出された値（例えば複数の類似度の平均）であっても良い。
【００２６】
また、コンテンツ部品情報グループと類似する部品グループとしては、類似度が所定の閾値を越えている部品グループのうちの一の（例えば最も類似度が高い）部品グループであるとすることができる。
【００２７】
一つの実施形態では、部品登録部が、更に、一の部品グループについて複数のスタイルグループを作成することができる。スタイルグループは、同一又は類似のスタイルを有する複数のコンテンツ部品情報グループの集まりであるとすることができる。部品候補表示部が、部品グループに関する情報に加えスタイルグループに関する情報を表示することができる。
【００２８】
ここで、テキストのスタイルは、例えば、テキストのフォントサイズ、フォントタイプ（例えば、明朝、ゴシックなど）、フォントスタイル（例えば、通常、太字、斜体など）、フォントの色、或いはテキストの長さなど一以上のテキストスタイル属性により定義することができる。
【００２９】
また、スタイルが類似しているとは、スタイルに関する複数の要素（例えば、テキスト、テキストの並び順、テキストのフォントサイズ、フォントタイプなど）が所定の割合（例えば８０％）以上に一致していることとすることができる。
【００３０】
一つの実施形態では、部品登録部が、新規のコンテンツファイルを記憶部に登録する際に、該新規のコンテンツファイルについてのコンテンツ部品情報グループを、そのコンテンツ部品情報グループと同一又は類似の部品グループに分類することができる。
【００３１】
一つの実施形態では、部品登録部が、登録性能よりも検索性能を重視することが入力された場合に、新規のコンテンツファイルを前記記憶部に登録する際に、該新規のコンテンツファイルについてのコンテンツ部品情報グループを、そのコンテンツ部品情報グループと同一又は類似の部品グループに分類することができる。
【００３２】
一つの実施形態では、部品検索部が、どの部品グループにも分類されていないコンテンツ部品情報グループと前記検索条件との類似度を算出することができる。部品登録部が、どの部品グループにも分類されていないコンテンツ部品情報グループに対応したコンテンツ部品がコンテンツ部品候補とされた場合に、そのコンテンツ部品情報グループをそれに該当する部品グループに分類することができる。
【００３３】
一つの実施形態では、部品登録部が、検索性能よりも登録性能を重視することが入力された場合に、どの部品グループにも分類されていないコンテンツ部品情報グループに対応したコンテンツ部品がコンテンツ部品候補とされた場合に、そのコンテンツ部品情報グループをそれに該当する部品グループに分類することができる。
【００３４】
一つの実施形態では、複数のコンテンツ部品情報グループが二以上の部品グループに分類されており、部品検索部が、前記入力された検索条件と各部品グループとの類似度を算出し、部品候補表示部が、コンテンツ部品候補に関する情報として、部品グループに関する情報を表示することができる。
【００３５】
一つの実施形態では、一の部品グループについて、複数のスタイルグループがあり、スタイルグループは、同一又は類似のスタイルを有する複数のコンテンツ部品情報グループの集まりであり、部品候補表示部が、部品グループに関する情報に加えスタイルグループに関する情報を表示することができる。
【００３６】
一つの実施形態では、第一の部品グループに属する既存部品サブツリー内の情報パッケージが、第一の部品グループとは別の第二の部品グループにも属していれば、その第二の部品グループが、第一の部品グループに含まれる部品グループであり、部品候補表示部が、第一の部品グループに含まれる第二の部品グループに関する情報を表示することができる。
【００３７】
一つの実施形態では、部品候補表示部が、スタイルグループに対応したコンテンツ部品情報グループの数を表示することができる。
【００３８】
一つの実施形態では、検索条件は、階層構造を持つ画面コンテンツの定義情報又はそれのサブセットであるとすることができる。
【００３９】
上述した複数の実施形態のうちの二以上の実施形態を組み合わせることができる。また、上述した各部（例えば、検索条件入力部、部品検索部、部品候補表示部、コンテンツ解析部、グルーピング部、パッケージグループ生成部、テキスト付与部及び部品登録部）は、各手段と言い換えてもよい。各部は、ハードウェア（例えば回路）、コンピュータプログラム、或いはそれらの組み合わせ（例えば、一部をコンピュータプログラムで実行し一部をハードウェア回路で実行すること）によって実現することもできる。各コンピュータプログラムは、コンピュータマシンに備えられる記憶資源（例えばメモリ）から読み込むことができる。その記憶資源には、ＣＤ−ＲＯＭやＤＶＤ（Digital Versatile Disk）等の記録媒体を介してインストールすることもできるし、インターネットやＬＡＮ等の通信ネットワークを介してダウンロードすることもできる。
【００４０】
以下、図面を参照して、本発明の幾つかの実施形態を詳細に説明する。
【００４１】
＜第一の実施形態＞。
【００４２】
画面コンテンツとして、Ｗｅｂコンテンツを例に採ることができる。Ｗｅｂコンテンツとしては、ＨＴＭＬ（HyperText Markup Language）コンテンツ、独自形式のＷｅｂコンテンツ、あるいは文書作成アプリケーションで作成された電子化文書など、画像や動画を除くテキストを主体としたデジタルコンテンツとすることができる。第一の実施形態では、Ｗｅｂコンテンツとして、ＨＴＭＬ形式の入力フォームを例に採ることができる。以下の説明では、入力フォームなどのようなＷｅｂコンテンツを、単に「コンテンツ」と呼ぶことにする。
【００４３】
第一の実施形態において行われる処理を、部品登録ステップと部品検索ステップとに大別することができる。
【００４４】
部品登録ステップでは、既存のコンテンツ中に含まれる要素（テキストや入力コントロール）の位置情報などのレイアウト情報を用いて要素間をグループ化するグルーピングステップと、各グループおよび要素に対してラベルを付与するラベル付与ステップと、それらグルーピングステップとラベル付与ステップの結果からコンテンツの構成を表すツリー（以下、コンテンツ構成ツリーと呼ぶ）を生成するコンテンツ構成ツリー生成ステップと、コンテンツ構成ツリーをコンテンツと関連付けてレポジトリに登録するコンテンツ登録ステップとが行われる。
【００４５】
部品検索ステップでは、階層構造を持つ新規コンテンツの定義情報のサブツリー（以下、クエリツリーと呼ぶ）と、レポジトリに蓄積されている各コンテンツ構成ツリーのサブツリー（以下、既存部品サブツリーと呼ぶ）との類似度を算出する部品検索ステップと、クエリツリーに対して類似度の高い（例えば所定の閾値以上の）既存部品サブツリーを、クエリツリーに対する部品候補として出力する部品候補出力ステップとが行われる。
【００４６】
以下、より詳細に説明する。
【００４７】
図１は、本発明の第一の実施形態に係るコンテンツ部品検索システムの全体構成例を示す。
【００４８】
コンテンツ部品検索システムは、一又は複数の計算機で構成することができる。コンテンツ部品検索システムには、例えば、ＣＰＵ１００、磁気ディスク装置１０１、主メモリ１０２、フロッピーディスクドライブ（以下、ＦＤＤ１０３と呼ぶ）、及びこれらを結ぶバス１０４が備えられる。コンテンツ部品検索システムは、他の機器とネットワーク１０５を介して接続することもできる。
【００４９】
磁気ディスク装置１０１は、二次記憶装置の一つであり、コンテンツのソースを含むコンテンツファイル１６０とコンテンツ構成ツリー１６１が格納される。ＦＤＤ１０３を介してフロッピーディスク１０６に格納されている情報が、磁気ディスク装置１０１あるいは主メモリ１０２へ読み込まれる。
【００５０】
主メモリ１０２には、システム制御処理部１１０、部品登録制御処理部１１１、部品検索制御処理部１１２、コンテンツ取得処理部１２１、コンテンツ内情報取得処理部１２２、コンテンツ構成ツリー生成処理部１２３、グルーピング処理部１３０、ラベル付与処理部１３１、部品登録処理部１２６、入出力定義情報取得処理部１４０、入出力定義情報解析処理部１４１、部品検索処理部１４２、部品候補出力処理部１４３が格納され、ワークエリア１５０が確保される。なお、本実施形態におけるシステム制御、部品登録制御、部品検索制御、コンテンツ取得、コンテンツ内情報取得、コンテンツ構成ツリー生成、グルーピング、ラベル付与、部品登録、入出力定義情報取得、入出力定義情報解析、部品検索および部品候補出力の各処理は、システム制御処理部１１０、部品登録制御処理部１１１、部品検索制御処理部１１２、コンテンツ取得処理部１２１、コンテンツ内情報取得処理部１２２、コンテンツ構成ツリー生成処理部１２３、グルーピング処理部１３０、ラベル付与処理部１３１、部品登録処理部１２６、入出力定義情報取得処理部１４０、入出力定義情報解析処理部１４１、部品検索処理部１４２および部品候補出力処理部１４３をＣＰＵ１００で実行することにより実現するが、各処理を行なうプログラムとして集積回路化するなどしてハードウェアで実現することもできる。以下説明を簡略化するため、各種プログラムをＣＰＵ１００が実行することで実現される各プログラムを各処理の主体として説明する。なお各処理部をハードウェアで実現した場合にはその各処理部が主体となって各処理を行なう。
【００５１】
システム制御処理部１１０は、部品登録制御処理部１１１および検索制御処理部１２１の制御を行なう。
【００５２】
部品登録制御処理部１１１は、コンテンツ取得処理部１２１、コンテンツ内情報取得処理部１２２、コンテンツ構成ツリー生成処理部１２３、グルーピング処理部１３０、ラベル付与処理部１３１および部品登録処理部１２６の制御を行なう。
【００５３】
コンテンツ構成ツリー生成処理部１２３は、グルーピング処理部１３０およびラベル付与処理部１３１の制御を行なう。
【００５４】
部品検索制御処理部１１２は、入出力定義情報取得処理部１４０、入出力定義情報解析処理部１４１、部品検索処理部１４２および部品候補出力処理部１４３の制御を行なう。
【００５５】
本実施形態では、これらの処理部を主メモリ１０２に格納するものとしたが、磁気ディスク装置１０１、フロッピーディスク１０６、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ等の記憶媒体（図１には示していない）に格納し、駆動装置を介して主メモリ１０２に読み込み、ＣＰＵ１００によって実行することも可能である。
【００５６】
また、本実施形態では、コンテンツファイル１６０およびコンテンツ構成ツリー１６１は、磁気ディスク装置１０１に格納されるものとしたが、フロッピーディスク（登録商標）１０６、ＭＯ（Magneto-Optical disk）、ＣＤ−ＲＯＭ、ＤＶＤ等の記憶媒体（図１には示していない）に格納されるものとしてもよいし、あるいはネットワーク１０５を介して、他のシステムに接続された記憶装置（図１には示していない）に格納されるものとしてもよい。また、さらにはネットワーク１０５に直接接続された記憶媒体（図１には示していない）に格納されるものとしても構わない。
【００５７】
以下、本実施形態に係るコンテンツ部品検索システムで行われる処理の概要を説明する。
【００５８】
システム制御処理部１１０は、キーボード１０１（他種の入力装置でも良い）から入力されたコマンドを解析する。この結果が、登録実行のコマンドであると解析された場合には、システム制御処理部１１０が、部品登録制御処理部１１１を起動し、部品登録制御処理部１１１が、コンテンツファイル１６０およびコンテンツ構成ツリー１６１を磁気ディスク装置１０１へ登録する。また、検索実行のコマンドであると解析された場合には、システム制御処理部１１０が、部品検索制御処理部１１２を起動し、部品検索制御処理部１１２が、指定されたクエリツリー１７１（図１１参照）に基づいて部品検索の処理を行なう。
【００５９】
以下、部品検索制御処理部１１２が行う処理の流れを説明する。
【００６０】
まず、部品検索制御処理部１１２は、入出力定義情報取得処理部１４０を起動し、入出力定義情報取得処理部１４０が、新規作成コンテンツの定義情報（以下、「入出力定義情報」と呼ぶ）１７０（図１１参照）を取得し、取得された入出力定義情報１７０をワークエリア１５０に格納する。
【００６１】
次に、部品検索制御処理部１１２は、入出力定義情報解析処理部１４１を起動し、入出力定義情報解析処理部１４１が、入出力定義情報１７０から、ユーザ（例えば開発者）によって指定されたクエリツリー１７１を取得し、取得されたクエリツリー１７１を、ワークエリア１５０に格納する。
【００６２】
次に、部品検索制御処理部１１２は、部品検索処理部１４２を起動し、部品検索処理部１４２が、各コンテンツファイル１６０に含まれるすべての部品（以下、既存部品サブツリー１７４と呼ぶ）に対し、クエリツリー１７１との類似度を算出し、算出結果を評価結果１８３（図１２参照）としてワークエリア１５０に格納する。
【００６３】
最後に、部品検索制御処理部１１２は、部品候補出力処理部１４３を起動し、部品候補出力処理部１４３が、クエリツリー１７１に対して類似度の高い既存部品サブツリー１７４を、クエリツリー１７１に対する部品候補として出力する。
【００６４】
入出力定義情報取得処理部１４０は、ユーザによって入力された入出力定義情報１７０をワークエリア１５０に格納する。入出力定義情報１７０は、例えば、図１１に示すように、ＸＭＬ（Extensible Markup Language）形式で表すことができる。新規作成コンテンツの入力項目の構造情報をＸＭＬの構造で表現し、入力項目のラベル（ラベルとは実質的に入力項目名を意味する）を、ＸＭＬのタグ名で表現し、入力コントロールの種類を、各エレメントのｔｙｐe属性で表現することができる。なお、本実施形態では、入出力定義情報１７０のデータ形式を、ＸＭＬ形式としているが、入力項目の構造情報、入力項目のラベルおよび入力コントロールの種類を定義できるものならどのようなデータ形式であってもよい。また、入出力定義情報１７０は、ユーザから入力されるものとしたが、ＦＤＤ１０３等のドライブを介してフロッピーディスク１０６、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ等の記憶媒体（図１には示していない）に格納されているもの、あるいはネットワーク１０５を介して他のシステムに接続された記憶装置（図１には示していない）に格納されているもの、さらにはネットワーク１０５に直接接続された記憶媒体（図１には示していない）に格納されているものから入力されてもよい。
【００６５】
入出力定義情報解析処理部１４１は、入出力定義情報取得処理部１４０によって取得された入出力定義情報１７０から、ユーザによって指定された構造情報（以下、「ユーザ指定構造情報）と呼ぶ）１７２（図１１参照）に対応するクエリツリー１７１を取得し、取得されたクエリツリー１７１をワークエリア１５０に格納する。なお、クエリツリー１７１は、入出力定義情報１７０のサブセットである。
【００６６】
部品検索処理部１４２が行う処理の流れを、図１０及び図１２を参照して説明する。
【００６７】
まず、部品検索処理部１４２は、入出力定義情報解析処理部１４１で取得されたすべてのクエリツリー１７１に対して、ステップ２０１０〜２０１１を繰り返す（ステップ２０００）。
【００６８】
次に、部品検索処理部１４２は、クエリツリー１７１から、部品内情報１７７Ａ（ラベル情報１７５Ａおよび入力コントロール情報１７６Ａを含んだ情報）を取得し、取得された部品内情報１７７Ａを、ワークエリア１５０に格納する（ステップ２０１０）。
【００６９】
次に、部品検索処理部１４２は、磁気ディスク装置１０１に登録されているすべてのコンテンツファイル１６０に対して、ステップ２０１２を繰り返す（ステップ２０１１）。
【００７０】
次に、部品検索処理部１４２は、該コンテンツファイル１６０に対応するコンテンツ構成ツリー１６１に含まれるすべての既存部品サブツリー１７４に対して、ステップ２１１３〜２０１５を繰り返す（ステップ２０１２）。
【００７１】
次に、部品検索処理部１４２は、該既存部品サブツリー１７４の部品内情報１７７Ｂ（ラベル情報１７５Ｂと入力コントロール情報１７６Ｂを含んだ情報）を取得し、取得された部品内情報１７７Ｂを、ワークエリア１５０に格納する（ステップ２０１３）。
【００７２】
次に、部品検索処理部１４２は、クエリツリー１７１の部品内情報１７７Ａと既存部品サブツリー１７４の部品内情報１７７Ｂから、類似度算出のためのベクトル空間とベクトルを表現したテーブル形式のベクトル情報１８２（ラベル情報１７８、入力コントロール情報１７９、クエリツリーベクトル情報１８０および既存部品サブツリーベクトル情報１８１を含んだ情報）を生成し、生成されたベクトル情報１８２を、ワークエリア１５０に格納する（ステップ２０１４）。
【００７３】
最後に、部品検索処理部１４２は、ベクトル情報１８２を用いて、該クエリツリー１７１に対する該既存部品サブツリー１７４の類似度を（式１）により算出し（ステップ２０１５）、その類似度算出結果を、該クエリツリー１７１に対する各既存部品サブツリー１７４の評価結果１８３（コンテンツＩＤ情報１８３１、ノード番号情報１８３２および類似度情報１８３３を含んだ情報）を、ワークエリア１５０に格納する。類似度は、ベクトル情報１８２からベクトル空間法のよる余弦尺度により算出される。  
【００７４】
【数１】
2008287311.tif 000003
【００７５】
なお、ステップ２０１５では類似度の算出式におけるベクトル空間を、類似度を算出するクエリツリーと既存部品サブツリーのみが含まれる空間（次元）で計算するものとしたが、磁気ディスク装置１０１に含まれるすべてのコンテンツ１６０およびクエリツリーに関する共通空間（次元）で計算するものとしてもよい。
【００７６】
まず、部品候補出力処理部１４３は、部品検索処理部１４２によって算出された評価結果１８３から、各クエリツリー１７１に対して、類似度の降順で既存部品サブツリー１７４に対応する部品の候補に関する情報の一覧（以下、「部品候補一覧」と呼ぶ）を部品候補一覧表示画面１８７（図１３参照）に表示する。なお、部品候補一覧には、各部品候補について、部品ＩＤ（例えば、“コンテンツＩＤ＿コンテンツ構成ツリーのノード番号”で表現される部品の識別子）、類似度、および既存部品サブツリーのルートノードに格納されているラベルが含まれる。
【００７７】
次に、部品候補出力処理部１４３は、部品候補一覧よりユーザによって選択された部品候補に対して、コンテンツファイル１６０から、選択された部品に対応するコードを取得し、取得したコードを、ワークエリア１５０に格納する。
【００７８】
最後に、部品候補出力処理部１４３は、上記で取得されたコードを用いて、ユーザによって選択された部品を、プレビュー画面１８４（図１３参照）に表示する。
【００７９】
以上が、部品候補出力処理部１４３の処理手順である。
【００８０】
なお、部品候補一覧よりユーザによって部品候補が選択されることにより該部品候補がプレビュー画面１８４に表示されるものとしたが、部品候補出力処理部１４３は、ユーザ操作を介さずにクエリツリー１７１に対して類似度が最も高い既存部品サブツリーに対応する部品をプレビュー画面１８４に表示してもよい。
【００８１】
また、ユーザによって指定されたクエリツリーが複数個存在する場合は、クエリツリーの情報（以下、「クエリツリー情報」と呼ぶ）として、複数のクエリツリー間の関係をクエリツリー情報画面１８６（図１３参照）に表示してもよい。
【００８２】
また、部品候補一覧において、或る閾値以上の類似度を持たない既存部品サブツリーについては、部品候補として含まれなくてよい。この際、クエリツリー情報表示画面１８６に、各クエリツリーに対して検索された部品数（既存部品サブツリーの数）が表示されてもよい。
【００８３】
また、ユーザによって指定された複数のクエリツリー間に階層関係（例えば親子関係）が存在する場合（入出力定義情報１７０に含まれるすべてのサブツリーをクエリツリー１７１とした場合も含む）、上位（例えば親）のクエリツリーの部品候補から優先的に部品候補一覧表示画面１８７に表示されてもよい。優先的に表示するとは、例えば、上位のクエリツリーの部品候補の類似度がそれよりも下位のクエリツリーの部品候補の類似度より低くても、上位のクエリツリーの部品候補が、下位のクエリツリーの部品候補よりも、降順で上位に位置することを言う。
【００８４】
また、現在表示されている部品候補一覧に対するクエリツリー１７１の内容が判断しやすいように、部品候補出力処理部１４３が、入出力定義情報表示画面１８５に表示される入出力定義情報において、クエリツリー１７１の部分が強調表示（例えば網掛け表示）してもよい。
【００８５】
以上が、部品検索制御処理部１１２が行う処理についての説明である。
【００８６】
次に、部品登録制御処理部１１１が行う処理について説明する。
【００８７】
まず、部品登録制御処理部１１１は、コンテンツ取得処理部１２１を起動し、コンテンツ取得処理部１２１が、ＦＤＤ１０４を介してフロッピーディスク１０８に格納されているコンテンツファイル１６０を読み込む。
【００８８】
次に、部品登録制御処理部１１１は、コンテンツ内情報取得処理部１２２を起動し、コンテンツ内情報取得処理部１２２が、コンテンツファイル１６０のソース中に含まれるテキストや入力コントロール（例えばテキストボックスやラジオボタン等）と、これらのコンテンツ内要素の位置情報やサイズ（例えば、テキストの場合はフォントサイズ、入力コントロールの場合は領域サイズ）を取得する。
【００８９】
次に、部品登録制御処理部１１１は、コンテンツ構成ツリー生成処理部１２３を起動し、コンテンツ構成ツリー生成処理部１２３が、コンテンツ内情報取得処理部１２２によって抽出されたコンテンツ内の要素情報を用いて、要素間のグルーピング、および要素やグループに対するラベルを付与することで、コンテンツ構成ツリー１６１を生成する。
【００９０】
最後に、部品登録制御処理部１１１は、部品登録処理部１２６を起動し、部品登録処理部１２６が、コンテンツファイル１６０とコンテンツファイル１６０に対応するコンテンツ構成ツリー１６１を磁気ディスク装置１０１へ登録する。
【００９１】
コンテンツ取得処理部１２１は、ＦＤＤ１０４を介してフロッピーディスク１０８に格納されているコンテンツファイル１６０を読み込み、ワークエリア１５０に格納する。なお、コンテンツファイル１６０はフロッピーディスク１０８に格納されているものとしたが、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ等の記憶媒体（図１には示していない）に格納されるものとしてもよいし、ネットワーク１０５を介して、他のシステムに接続された記憶媒体（図１には示していない）に格納されるものとしてもよい。
【００９２】
コンテンツ内情報取得処理部１２２は、まず、コンテンツ取得処理部１２１によって取得されたコンテンツファイル１６０の中から、磁気ディスク装置１０１や主メモリ１０２に格納されたルールに基づいて、テキスト情報要素や入力コントロール種類情報要素（以下、これらを「コンテンツ内情報」と呼ぶことがある）を抽出する。抽出された全てのテキスト情報要素が記録されたテキストリスト情報１６２と、抽出された全ての入力コントロール種類情報要素が記録された入力コントロールリスト情報１６３とが、ワークエリア１５０に格納される。ここでいう「テキスト」とは、コンテンツファイルが例えばＨＴＭＬファイルの場合、画面上に表示されないタグなどではなく、実際に画面上で表示される文字列のことをいう。また、ここでいう「入力コントロール」とは、コンテンツファイルが例えばＨＴＭＬファイルの場合、ＩＮＰＵＴタグ、ＳＥＬＥＣＴタグおよびＴＥＸＴＡＲＥＡタグで表現されたものなど、ユーザからの指定を受け付ける要素をいう。
【００９３】
なお、テキストリスト情報１６２や入力コントロールリスト情報１６３は、ワークエリア１５０に格納されるが、磁気ディスク装置１０１に格納されてもよい。コンテンツファイルの中のどのようなものをテキストとして抽出するかを示す情報や、コンテンツファイルの中のどのようなものを入力コントロールとして抽出するかを示す情報は、主メモリ１０２または磁気ディスク装置１０１に格納されている。
【００９４】
次に、コンテンツ内情報取得処理部１２２は、抽出されたコンテンツ内要素の配置位置情報をコンテンツファイルの中から抽出する。ここで、配置位置情報は、コンテンツ内要素がコンテンツ内での位置と占める範囲の定義を表す情報である。具体的には、例えば、テキストの配置位置情報には、基準位置情報とフォントサイズ情報とが含まれ、入力コントロールの配置位置情報には、基準位置情報と領域サイズ情報とが含まれる。テキストの基準位置情報やフォントサイズ情報は、テキストリスト情報１６２に記録され、入力コントロールの基準位置情報や領域サイズ情報は、入力コントロールリスト情報１６３に記録される。なお、テキストリスト情報１６２は、図５に例示するように、例えばテーブルであり、コンテンツファイルから検出されたテキスト毎に、テキスト番号７００（例えば通し番号）、テキスト情報要素７１０、基準位置情報７２０（例えばコンテンツの所定位置を原点とした場合の基準位置の座標）、およびフォントサイズ７３０が記録される。また、入力コントロールリスト情報１６３は、図６に例示するように、例えばテーブルであり、コンテンツファイルから検出された入力コントロール毎に、入力コントロール番号８００（例えば通し番号）、入力コントロール種類情報要素８１０（例えばタグ付きの情報）、基準位置情報８２０、および領域サイズ８３０（例えば、基準位置を中心とした幅及び高さのサイズ）が記録される。
【００９５】
コンテンツ構成ツリー生成処理部１２３は、まず、グルーピング処理部１３０を起動し、グルーピング処理部１３０が、コンテンツ内情報取得処理部１２２によって抽出された入力コントロールリスト情報１６３を用いて、コンテンツファイル１６０に含まれる入力コントロールのグルーピングを行ない、そのグルーピング結果（例えば図８参照）をワークエリア１５０に格納する。
【００９６】
次に、コンテンツ構成ツリー生成処理部１２３は、ラベル付与処理部１３１を起動し、ラベル付与処理部１３１が、グルーピング処理部１３０によって生成されたグルーピング結果に対して、テキストリスト情報１６２や入力コントロールリスト情報１６３に格納されている配置位置情報を用いて、各入力コントロールの名前やグルーピングによって生成されたグループの名前（以下、まとめてラベルと呼ぶ）を付与することで、最終的なコンテンツ構成ツリー１６１を生成し、その生成されたコンテンツ構成ツリー１６１をワークエリア１５０に格納する。
【００９７】
なお、コンテンツ構成ツリー１６１は、各ノードに、ノード属性情報として、ノード番号、ラベル、基準点、親ノード番号（直近の上位のノード番号）およびコントロール種類を持つ。コンテンツ構成ツリーの概念図と各ノードの属性情報の格納例を図９に示す。図９には、コンテンツ構成ツリーの上位部分が示されており、下位部分は図示が省略されている。コンテンツ構成ツリー１６１は、ワークエリア１５０に格納されるが、磁気ディスク装置１０１に格納されてもよい。
【００９８】
部品登録処理部１２６は、まず、各コンテンツファイル１６０にコンテンツIDを付与する。コンテンツIDは、主メモリ１０２または磁気ディスク装置１０１に格納されているルールに基づいて生成され付与される。
【００９９】
次に、部品登録処理部１２６は、同コンテンツにおけるコンテンツファイル１６０とコンテンツ構成ツリー１６１を関連付けた上で、それぞれを磁気ディスク装置１０１へ登録する。
【０１００】
図２は、グルーピング処理部１３０が行う処理の流れの一例を示す。
【０１０１】
グルーピング処理部１３０は、まず、コンテンツ内情報取得処理部１２２によって抽出された入力コントロールリスト情報１６３に含まれるＮ個の入力コントロールに対して、ステップ３０１〜ステップ３０２を、ｎ＝１〜（Ｎ−１）まで繰り返し実行する（ステップ３００）。
【０１０２】
次に、グルーピング処理部１３０は、磁気ディスク装置１０１又は主メモリ１０２に格納された値Ｍに基づいて、Ｍ個の階層レベルに対して、ステップ３０２を、ｍ＝２〜（Ｍ−１）まで繰り返し実行する（ステップ３０１）。なお、階層レベルｍとは、階層レベル１がコンテンツ全体を表し、ｍが大きいほど詳細な内容に関するグルーピングを行ない、最下位階層レベル（つまりｍ＝Ｍ−１）では、１グループ１入力コントロールとなる。
【０１０３】
次に、グルーピング処理部１３０は、階層レベルｍにおけるグルーピング条件を、階層レベルｍに関し、ｎ番目とｎ＋１番目の入力コントロール間が同じグループに属するか否かの判定を行ない、判定結果をワークエリア１５０に格納する（ステップ３０２）。なお、階層レベルｍにおいて、ｎ番目とｎ＋１番目の入力コントロール間が同じグループと判定され、さらにｎ＋１番目とｎ＋２番目の入力コントロール間が同じグループと判定された場合、ｎ番目〜ｎ＋２番目の入力コントロールは階層レベルｍにおいて同じグループとみなす。すなわち、同じグループと判定された入力コントロールペアが複数個存在し、入力コントロールペアにおける一方の入力コントロールが別の入力コントロールペアにおける他方の入力コントロールとなっている場合、複数の入力コントロールペアにおける入力コントロールが同一のグループとみなされる。なお、ｎ番目の入力コントロールとは、コンテンツ中でｎ番目に入力される入力コントロール（例えば、ｎは図６の入力コントロール番号８００）を表す。
【０１０４】
最後に、グルーピング処理部１３０は、ステップ３０２によって階層レベル別にグルーピングされた結果をツリー構造で管理するために、コンテンツ構成ツリー１６１における各ノードに属性情報として親ノード番号を格納する（ステップ３０３）。なお、コンテンツ構成ツリー１６１は、各ノードの属性情報として、ノード番号、ラベル、コンテンツ内で該当する領域（入力コントロールが占める範囲）の基準点、親ノードのノード番号、および、入力コントロール種類（コントロール種類）を有するが、グルーピング処理部１３０の処理完了時点では、ラベルおよび基準点は格納されない。
【０１０５】
ここで、ステップ３０２で行なわれるｎ番目とｎ＋１番目の入力コントロール間のグルーピング方法について詳しく説明する。
【０１０６】
ｎ番目とｎ＋１番目の入力コントロール間のグルーピング方法については、ｎ番目とｎ＋１番目の入力コントロール間の配置位置関係によって、以下の８つのケースで判定ルール（以下、グルーピング条件と呼ぶ）を決めて判定を行なう。なお、以下の説明で出てくる基準点は、入力コントロールの左上を表す。また、最右端、最左端、最上端および最下端は、基準点と領域サイズ８３０から定まる、入力コントロールの最も端の点を表す。
【０１０７】
まず、ｎ番目の入力コントロールの基準点に対してｎ＋１番目の入力コントロールの基準点が真右に位置する場合（以下、第１のケースと呼ぶ）、ｎ番目の入力コントロールの最右端とｎ＋１番目の入力コントロールの最左端との水平距離が、第１のケースにおける階層レベルｍでのグルーピング条件を満たすとき、ｎ番目とｎ＋１番目の入力コントロールは、階層レベルｍで同じグループに属するとみなされる。
【０１０８】
ｎ番目の入力コントロールの基準点に対してｎ＋１番目の入力コントロールの基準点が真下に位置する場合（以下、第２のケースと呼ぶ）、ｎ番目の入力コントロールの最下端とｎ＋１番目の入力コントロールの最上端との垂直距離が、第２のケースにおける階層レベルｍでのグルーピング条件を満たすとき、ｎ番目とｎ＋１番目の入力コントロールは、階層レベルｍで同じグループに属するとみなされ。
【０１０９】
ｎ番目の入力コントロールの基準点に対してｎ＋１番目の入力コントロールの基準点が右下に位置する場合（以下、第３のケースと呼ぶ）、ｎ番目の入力コントロールの最右端とｎ＋１番目の入力コントロールの最左端との水平距離が第３のケースにおける階層レベルｍでのグルーピング条件を満たし、かつｎ番目の入力コントロールの最下端とｎ＋１番目の入力コントロールの最上端との垂直距離が第３のケースにおける階層レベルｍでのグルーピング条件を満たすとき、ｎ番目とｎ＋１番目の入力コントロールは、階層レベルｍで同じグループに属するとみなされる。
【０１１０】
ｎ番目の入力コントロールの基準点に対してｎ＋１番目の入力コントロールの基準点が右上に位置する場合（以下、第４のケースと呼ぶ）、ｎ番目の入力コントロールの最右端とｎ＋１番目の入力コントロールの最左端との水平距離が第４のケースにおける階層レベルｍでのグルーピング条件を満たすとき、かつｎ番目の入力コントロールの最上端とｎ＋１番目の入力コントロールの最下端との垂直距離が第４のケースにおける階層レベルｍでのグルーピング条件を満たすとき、ｎ番目とｎ＋１番目の入力コントロールは、階層レベルｍで同じグループに属するとみなされる。
【０１１１】
ｎ番目の入力コントロールの基準点に対してｎ＋１番目の入力コントロールの基準点が左下に位置する場合（以下、第５のケースと呼ぶ）、ｎ番目の入力コントロールの最下端とｎ＋１番目の入力コントロールの最上端との垂直距離が第５のケースにおける階層レベルｍでのグルーピング条件を満たすとき、ｎ番目とｎ＋１番目の入力コントロールは、階層レベルｍで同じグループに属するとみなされる。
【０１１２】
その他、ｎ番目の入力コントロールの基準点に対してｎ＋１番目の入力コントロールの基準点が真左に位置する場合（以下、第６のケースと呼ぶ）、ｎ番目の入力コントロールの基準点に対してｎ＋１番目の入力コントロールの基準点が真上に位置する場合（以下、第７のケースと呼ぶ）、ｎ番目の入力コントロールの基準点に対してｎ＋１番目の入力コントロールの基準点が左上に位置する場合（以下、第８のケースと呼ぶ）、ｎ番目とｎ＋１番目の入力コントロールは、階層レベル１を除くすべての階層レベルにおいて同じグループに属さないとみなされる。
【０１１３】
図７は、グルーピング条件９３０を格納するグルーピング条件リスト情報９００の例を示す図である。グルーピング条件情報９００は、例えばテーブルであり、各ケースについて、ケース番号９１０、ｎ番目の入力コントロールに対するｎ＋１番目の入力コントロールの配置位置関係を表す情報（以下、「位置関係情報」と呼ぶ）９２０、およびグルーピング条件９３０を有する。たとえば、第１のケースの場合、ケース番号９１０には“１”、位置関係情報９２０には“真右”、グルーピング条件９３０には“ｎ番目の最右端とｎ＋１番目の最左端との距離が１００ｐｘ未満”、といった情報を格納する。
【０１１４】
グルーピング条件９２０は、階層レベル毎に設定される。このため、例えば、グルーピング条件リスト情報９００が、一の階層レベルにつき一つである場合、各階層レベルに対応した各グルーピング条件リスト情報９００が用意される。グルーピング条件リスト情報９００は、例えば、主メモリ１０２または磁気ディスク装置１０１に格納されている。
【０１１５】
なお、図７で示したグループピング条件９３０は、例えば、一般的な入力フォーム（コンテンツ）に基づいて、ｎ番目とｎ＋１番目の入力コントロール間の相対距離に関する閾値が設定されたものとすることができる。しかし、それに限らず、例えば、コンテンツファイル１６０に対して実際にｎ番目とｎ＋１番目の入力コントロール間の相対距離を抽出した上で、その平均値に基づいて動的にグルーピング条件９３０中の相対距離の閾値が設定されてもよい。具体的には、たとえば、第２のケースの場合、グルーピング条件として、“ｎ番目の最下端とｎ＋１番目の最上端との垂直距離が、［垂直方向に関して、隣接する入力コントロール間の平均間隔］以内”としてもよい。このような動的な閾値設定（条件設定）により、最適なグルーピング条件の設定が容易になることや、コンテンツ間の作成基準における開発者の個人差を吸収することができる。
【０１１６】
また、ステップ３０２では、入力コントロールの位置情報を用いてグルーピングを行なったが、コンテンツ内情報取得処理部１２２によって生成されたテキストリスト情報１６２のフォントサイズ情報を用いて、ある閾値以上のフォントサイズを持つテキストの位置を階層レベルｍにおけるｎ番目とｎ＋１番目の入力コントロール間をグループの境界をみなすといった方法をとってもよい。
【０１１７】
また、コンテンツ内情報取得処理部１２２によって生成されたテキストリスト情報１６２のＨ１などの文書構造情報を用いて、階層レベルｍにおけるｎ番目とｎ＋１番目の入力コントロール間をグループの境界をみなすといった方法をとってもよい。これらフォントサイズや文書構造情報と、位置情報を併用してグルーピング処理を行なうことで、グルーピングの精度が高くなる。
【０１１８】
図３は、ラベル付与処理部１３１が行う処理の流れの一例を示す。
【０１１９】
ラベル付与処理部１３１は、まず、コンテンツ構成ツリー１６１のＭ個の階層レベルに対し、ステップ４１０〜ステップ４１１および４１５をｍ＝Ｍ〜１まで繰り返す（ステップ４００）。
【０１２０】
次に、ラベル付与処理部１３１は、階層レベルが最下位階層レベルであるかどうか（ｍ＝Ｍであるかどうか）を判定する（ステップ４１０）。
【０１２１】
ステップ４１０の判定の結果、階層レベルが最下位階層レベル（ｍ＝Ｍ）である場合、ラベル付与処理部１３１は、コンテンツ全体に含まれるＮ個の入力コントロールに対し、ステップ４１２〜ステップ４１４をｎ＝１〜Ｎまで繰り返し実行する（ステップ４１１）。
【０１２２】
次に、ラベル付与処理部１３１は、ｎ番目の入力コントロールの基準点を領域の左上として設定し、ワークエリア１５０に格納する（ステップ４１２）。
【０１２３】
次に、ラベル付与処理部１３１は、ｎ番目の入力コントロールの基準点に対し、テキストリスト情報１６２に格納されているコンテンツ中のテキストの中から上方向と左方向（距離が同じ場合は左より上優先）で最も近い距離にあるテキストを、ｎ番目の入力コントロールのラベルとして抽出し、そのラベルをコンテンツ構成ツリー１６１における階層レベルＭのｎ番目のノードの属性情報として、ワークエリア１５０に格納する（ステップ４１３）。
【０１２４】
次に、ラベル付与処理部１３１は、ラベルを含めたｎ番目の入力コントロールの基準点を、ラベル領域の左上とし、その基準点をコンテンツ構成ツリー１６１における階層レベルＭのｎ番目のノードの属性情報として、ワークエリア１５０に格納する（ステップ４１４）。なお、ステップ４１３でラベルが抽出できなかった場合には、ラベル付与処理部１３１は、ステップ４１２で設定した入力コントロールの左上を基準点とする。
【０１２５】
次に、ラベル付与処理部１３１は、ステップ４１０の判定の結果、階層レベルが最下位階層レベルでない場合、階層レベルｍに含まれるＮ個のグループに対し、ステップ４１５〜ステップ４１８をｎ＝１〜Ｎまで繰り返し実行する（ステップ４１５）。
【０１２６】
次に、ラベル付与処理部１３１は、ｎ番目のグループに含まれる要素（子ノード）の中で、最も左上（例えば、距離が同じ場合は左より上優先）の基準点をもつ要素の基準点をｎ番目のグループの基準点として、ワークエリア１５０に格納する（ステップ４１６）。
【０１２７】
次に、ラベル付与処理部１３１は、ステップ４１６で設定されたｎ番目のグループの基準点に対し、テキストリスト情報１６２に格納されているコンテンツ中のテキストの中から上方向と左方向（距離が同じ場合は左より上優先）で最も近い距離にあるテキストであって、未だラベルとして抽出されていないテキストを、ｎ番目のグループのラベルとして抽出し、そのラベルをコンテンツ構成ツリー１６１における該ノードの属性情報として、ワークエリア１５０に格納する（ステップ４１７）。
【０１２８】
なお、未だラベルとして抽出されていないテキストがｎ番目のグループではないグループに属してしまう場合や、未だラベルとして抽出されていないテキストが無い場合には、ラベル付与処理部１３１は、ｎ番目のグループの基準点のノードのラベルを、ｎ番目のグループのラベルとする。
【０１２９】
次に、ラベル付与処理部１３１は、ラベルを含めたｎ番目のグループの基準位置を、ラベル領域の左上とし、その基準位置をコンテンツ構成ツリー１６１における該ノードの属性情報として、ワークエリア１５０に格納する（ステップ４１８）。
【０１３０】
ラベル付与処理部１３１は、グルーピング結果を表すノードツリーのリーフからルートにかけてボトムアップ式に順次にラベルを付与していくことができる。
【０１３１】
なお、ステップ４１３では、ｎ番目の入力コントロールのラベルをテキストリスト情報１６２に格納されているコンテンツ中のテキストの中から、入力コントロールの基準点に対して上方向と左方向（距離が同じ場合は左より上優先）で最も近い距離にあるテキストとしたが、ラジオボタンやチェックボックスについては入力コントロールの基準点に対して右方向と下方向（距離が同じ場合は下より右優先）で最も近い距離にあるテキストとしてもよい。
【０１３２】
また、隣接する入力コントロール間が間隔なく配置されているグループについては、ｎ行×ｍ列のテーブル構造とみなし、１行目の各列に付与されたラベルを、ｎ行目以降の各列にも同じラベル付与する。例えば、１行目の１列目の入力コントロールに付与されたラベルは、２行目の１列目の入力コントロールに付与されるラベルとしても使われる。
【０１３３】
また、本実施形態におけるグループのラベル抽出方法は、グループ（ノード）の基準位置に対し、テキストリスト情報１６２に格納されているコンテンツ中のテキストの中から上方向と左方向で最も近い距離にあるテキストをラベルとして抽出するものとしたが、距離に関する閾値を抽出条件として設定してもよい。これにより、誤ったラベル付与が少なくなる。
【０１３４】
また、本実施形態におけるグループのラベル抽出方法は、グループ（ノード）の基準点に対し、テキストリスト情報１６２に格納されているコンテンツ中のテキストの中から上方向と左方向で最も近い距離にあるテキストをラベルとして抽出するものとしたが、グループの中に含まれる要素（子ノード）のラベルの中から代表値として抽出してもよいし、他のコンテンツによるトレーニングデータによって、トレーニングデータ中でラベル付与したいグループと類似するグループに付与されたラベルを用いてもよい。これにより、コンテンツ中にラベルに該当するテキストが存在しない場合でも、各コンテンツ内要素やグループにラベルを付与することができる。
【０１３５】
以上が、部品登録制御処理部１１１によって行われる処理の説明である。
【０１３６】
以下、部品検索制御処理部１１２及び部品登録制御処理部１１１によって行われる処理について、更に詳細に説明する。まず、部品検索制御処理部１１２の具体的な処理を説明する。
【０１３７】
図１１は、入出力定義情報解析処理部１４１の具体的な処理を説明した図である。
【０１３８】
入出力定義情報解析処理部１４１は、入出力定義情報取得処理部１４０によって取得された入出力定義情報１７０から、ユーザによって指定されたユーザ指定構造情報１７２に対応するサブツリーを抽出し、クエリツリー１７１を取得する。本図の例では、ユーザ指定構造情報１７２として“Applicant Information”が指定されており、入出力定義情報１７０から“Applicant Information”の部分のサブツリーがクエリツリー１７１として取得されている。
【０１３９】
図１２は、部品検索処理部１４２の具体的な処理を説明した図である。
【０１４０】
部品検索処理部１４２は、磁気ディスク装置１０１に登録されているすべてのコンテンツファイル１６０に含まれるすべての既存部品サブツリー１７４に対して、１つのクエリツリー１７１との類似度を算出する。なお、既存部品サブツリー１７４は、コンテンツ構成ツリー１６１のサブセットであり、最小単位として、コンテンツ構成ツリー１６１のリーフであることがある。
【０１４１】
図１２の例では、“Applicant Information”の部分のクエリツリー１７１と、図４に示すコンテンツ５００（コンテンツファイル１６０が示すコンテンツ）におけるコンテンツ構成ツリー１６１の既存部品サブツリー１７４（図９で示すコンテンツ構成ツリー１１００のノード番号２のサブツリー）の類似度算出処理の詳細な具体例を示している。
【０１４２】
まず、部品検索処理部１４２は、クエリツリー１７１から部品内情報１７７Ａ（ラベル情報１７５Ａと入力コントロール情報１７４Ａを含んだ情報）を取得し、同様に、既存部品サブツリー１７４から、部品内情報１７７Ｂ（ラベル情報１７５Ｂと入力コントロール情報１７４Ｂを含んだ情報）を取得する。本図の例では、クエリツリー１７１からは、７個のラベル情報要素（テキスト情報要素）および入力コントロール種類情報要素が取得され、既存部品サブツリー１７４からは、８個のラベル情報要素および入力コントロール種類情報要素が取得される。
【０１４３】
次に、部品検索処理部１４２は、各部品内情報１７７から、類似度算出に必要なベクトル空間とベクトルを生成するために、ベクトル情報１８２として、ラベル情報１７８、入力コントロール情報１７９、クエリツリーベクトル１８０および既存部品サブツリーベクトル１８１を生成する。本図の例では、ベクトル空間を表す次元として、言い換えれば、ラベル情報１７８と入力コントロール情報１７９として、部品内情報１７７Ａ及び１７７Ｂを用いて、（Name・text、Address・text、Telephone Number・text、Company Name・text、Year・select、Month・select、Day・select、First・text、Last・text、Email Address・text）が生成される（上記カッコ内では、ラベル情報要素・入力コントロール種類情報要素、となっている）。また、生成されたベクトル空間におけるクエリツリーベクトル１８０として（１、１、１、１、１、１、１、０、０、０）、既存部品サブツリーベクトル１８１として（０、１、１、０、１、１、１、１、１、１）が生成されている。各ベクトルの要素については、例えば、ラベル“Name”と入力コントロール種類“text”との組合せが存在する場合は“１”、その組合せが存在しない場合は“０”となる。
【０１４４】
次に、部品検索処理部１４２は、生成されたベクトル情報１８２から、（式１）によりクエリツリー１７１に対する既存部品サブツリー１７４の類似度を算出し、コンテンツＩＤ情報１８３１、ノード番号情報１８３２及び類似度情報１８３３を含んだ評価結果１８３を生成し、ワークエリア１５０に格納する。
【０１４５】
本図の例では、クエリツリー１７１に対する既存部品サブツリー１７４の類似度として“０．６７”が算出され、該算出結果は、評価結果１８３のコンテンツＩＤ情報１８３１として“０００１”、ノード番号情報１８３２として“２”、類似度情報１８３３として“０．６７”が格納される。
【０１４６】
図１３は、部品候補出力処理部１４３の具体的な処理を説明した図である。
【０１４７】
部品候補出力処理部１４３は、部品検索処理部１４３によって生成された類似度算出結果（評価結果１８３）から、部品候補一覧表示１８７を出力する。本図の例では、コンテンツＩＤ０００１〜０００３のコンテンツに含まれる部品に対して、類似度の降順でクエリツリー１７１に対する部品候補の一覧が部品候補一覧表示画面１８７に表示される。その一覧によれば、第１位の部品候補は、部品ＩＤが“０００１_２”、類似度が“０．６７”、ラベルが“Applicant Information”の部品である。
【０１４８】
また、本図の例では、部品のプレビューをするためのプレビューボタンが部品候補一覧表示画面１８７に各部品について表示される。ユーザが第１位の部品候補（部品ＩＤ：０００１_２）のプレビューボタンを押下することで、部品候補出力処理部１４３は、第１位の部品候補に対応したコードを該部品候補を含んだコンテンツのコンテンツファイルから取得し、取得したコードに基づき、プレビュー画面１８４に、第１位の部品候補の部品イメージを表示する。
【０１４９】
また、本図の例では、入出力定義情報表示画面１８５が表示され、入出力定義情報表示画面１８５で、現在出力されている部品候補一覧に対応する入出力定義情報１７０中のクエリツリー１７１部分が、網掛けで示されている。
【０１５０】
また、本図の例では、複数のクエリツリー１７１として、“Applicant Information”、“Date of Birth”および“Service”が指定されており、それらのクエリツリー間の関係（例えば階層関係）が、クエリツリー情報表示画面１８６に表示される。クエリツリー情報表示画面１８６から、クエリツリー“Applicant Information”を親としクエリツリー“Date of Birth”を子とした親子関係があることがわかる。また、これら３つのクエリツリー１７１の中で、部品候補が存在しかつ最上位階層レベルであるクエリツリー“Applicant Information”に対する部品候補が、部品候補一覧表示１８７に優先的に表示される。
【０１５１】
また、本図の例では、類似度の閾値が“０．５０”で設定されており、部品候補一覧表示画面１８７には、類似度が０．５０以上の４件の部品が部品候補として表示されている。すなわち、部品候補出力処理部１４３は、類似度の閾値が“０．５０”未満の部品を部品候補として表示しない。なお、類似度の閾値に代えて又は加えて、類似度が高い部品から上位所定件数の部品のみが表示されても良い。
【０１５２】
また、クエリツリー情報表示画面１８６に、各クエリツリー１７１に対する部品候補数が表示される。その画面１８６からは、クエリツリー“Applicant Information”に対しては４件の部品候補が存在することがわかる。また、クエリツリー“Service”に対しては、０件、すなわち部品候補がないことがわかる。
【０１５３】
また、図１３によれば、入出力定義情報表示画面１８５、プレビュー画面１８４、クエリツリー情報表示画面１８６及び部品候補一覧表示画面１８７の組合せにより一つの表示画面が構成されているが、それらの画面は互いに離れていても重なっても良い。
【０１５４】
以上が、部品検索御処理部１１２の具体的な処理である。開発者は、部品候補一覧の中から所望の部品候補を選択し、その部品候補をそのまま或いは編集することで、新規のコンテンツを作成することができる。開発者は、その新規のコンテンツを表すコンテンツファイルを、磁気ディスク装置１０１に登録することができる。
【０１５５】
次に、部品登録制御処理部１１１の具体的な処理を説明する。
【０１５６】
コンテンツ取得処理部１２１とコンテンツ内情報取得処理部１２２の具体的な処理例を図４、図５および図６を用いて説明する。
【０１５７】
図４は、コンテンツ５００の一例として、クライアント端末からアクセスされたＨＴＭＬコンテンツのカンファレンス申し込みフォームの例を示す。
【０１５８】
まず、コンテンツ内情報取得処理部１２２は、コンテンツ取得処理部１２１によって取得されたコンテンツ５００のＨＴＭＬソース（コンテンツファイル１６０）から、テキスト情報要素およびそれらテキストの配置位置情報（例えば基準位置情報やフォントサイズ）を抽出し、テキスト番号７００、テキスト情報７１０、基準位置情報７２０およびフォントサイズ７３０をテキストリスト情報１６２に記録する。テキストリスト情報１６２の具体例を図５に示す。図５の例では、テキストリスト情報１６２に、全部で１３個のテキスト情報要素が記録されている（例えば、１番目のテキスト情報要素７１０として、“○○ Conference Form”が記録され、基準位置情報７２０として“Ｘ：１７７ｐｘ  Ｙ：３５ｐｘ”が記録され、フォントサイズ７３０として“＋４”が記録される）。
【０１５９】
次に、コンテンツ内情報取得処理部１２２は、コンテンツ取得処理部１２１によって取得されたコンテンツ５００のＨＴＭＬソースから、ＩＮＰＵＴタグとＳＥＬＥＣＴタグ（入力コントロールの種類を表す情報要素）、およびそれら入力コントロールの配置位置情報（例えば基準位置情報及び領域サイズ）を抽出し、入力コントロール番号８００、入力コントロール種類情報要素８１０、基準位置情報８２０および領域サイズ８３０を入力コントロールリスト情報１６３へ格納する。入力コントロールリスト情報１６３の具体例を図６に示す。図６の例では、入力コントロールリスト情報１６３に、全部で１５個の入力コントロール種類情報要素が記録される（例えば、１番目の入力コントロール種類情報要素８１０として、“＜INPUT type=”text”＞”が記録され、基準位置情報８２０として“Ｘ：３１５ｐｘ  Ｙ：１６１ｐｘ”が記録され、領域サイズ８３０として“ｗｉｄｔｈ：７３ｐｘ  ｈｅｉｇｈｔ：２０ｐｘ”が記録される）。
【０１６０】
図４に示すコンテンツ５００に対し、５つの階層レベルを持つコンテンツ構成ツリーを生成する場合のコンテンツ構成ツリー生成処理部１２３の具体的な処理の流れを、図５〜図９を用いて説明する。
【０１６１】
グルーピング処理部１３０は、図６に示す入力コントロールリスト情報１６３を読み込み、各階層レベル（２〜Ｍ−１）に対して、入力順が隣り合う入力コントロール間が同じグループに属するか否かを、主メモリ１０２または磁気ディスク装置１０１に格納されたグルーピング条件リスト９００に基づいて判定する。
【０１６２】
図７は、階層レベル２におけるグルーピング条件リスト９００の例である。図５および図６の例では、階層レベル２のグルーピング処理に関して、まず、図６に示す入力コントロールリスト情報１６３より、１番目の入力コントロールに対する２番目の入力コントロールの位置関係は“真右”であることから、図７に示すグルーピング条件リスト９００における第１のケースが用いられる。
【０１６３】
そして、入力コントロールリスト情報１６３に示されている基準位置情報と領域サイズより、１番目の入力コントロールの最右端と２番目の入力コントロールの最左端との水平距離が５２ｐｘであることから、１番目の入力コントロールと２番目の入力コントロールの配置位置関係は、グルーピング条件９００における第１のケースの条件である“ｎ番目の入力コントロールの最右端とｎ＋１番目の入力コントロールの最左端との水平距離が１００ｐｘ未満”を満たす。この結果、１番目の入力コントロールと２番目の入力コントロールは階層レベル２において同じグループとみなされる。
【０１６４】
次に、入力コントロールリスト情報１６３より、２番目の入力コントロールに対する３番目の入力コントロールの位置関係は“左下”であることから、グルーピング条件９００における第５のケースが用いられる。そして、入力コントロールリスト情報１６３に示されている基準位置情報と領域サイズより、２番目の入力コントロールの最下端と３番目の入力コントロールの最上端との垂直距離が１５ｐｘであることから、２番目の入力コントロールと３番目の入力コントロールの配置位置関係は、グルーピング条件９００における第５のケースの条件である“ｎ番目の入力コントロールの最下端とｎ＋１番目の入力コントロールの最上端との垂直距離が２０ｐｘ未満”を満たす。この結果、２番目の入力コントロールと３番目の入力コントロールは階層レベル２において同じグループとみなされる。
【０１６５】
次に、入力コントロールリスト情報１６３により、９番目の入力コントロールに対する１０番目の入力コントロールの位置関係は“左下”であることから、グルーピング条件９００における第５のケースが用いられる。そして、入力コントロールリスト情報１６３に示されている基準点と領域サイズの情報より、９番目の入力コントロールの最下端と１０番目の入力コントロールの最上端との垂直距離が１０８ｐｘであることから、９番目の入力コントロールと１０番目の入力コントロールの配置位置関係は、グルーピング条件９００における第５のケースの条件である“ｎ番目の入力コントロールの最下端とｎ＋１番目の入力コントロールの最上端との垂直距離が２０ｐｘ未満”を満たさない。この結果、９番目の入力コントロールと１０番目の入力コントロール間は、階層レベル２において異なるグループ、すなわちグループの境界とみなされる。
【０１６６】
この結果、１番目から９番目までの入力コントロールが、階層レベル２における１つのグループとみなされ、１０番目の入力コントロールが次のグループの先頭とされる。
【０１６７】
このように、入力順が隣接するすべての入力コントロール間に対して、上記のように各階層レベルでグルーピング判定を行ない、グループを生成していく。そして、グルーピング結果は、ノード番号、ラベル、基準点、親ノード番号およびコントロール種類を各ノードの属性情報として持つ図８に示すようなツリー構造で管理され、グルーピング処理部１３０の処理が終了した時点におけるコンテンツ構成ツリー１０００が生成される。
【０１６８】
図８では、１番目から９番目までの入力コントロールをノード番号５〜９およびノード番号１３〜１７のノードとし、これを束ねるグループをブランチノードとしてノード番号２とする。また、ノード番号２〜４の３つのブランチノードはコンテンツ全体を表す階層レベル１のルートノード（ノード番号１）に束ねられる。コンテンツ構成ツリーのデータ構造は、例えば、リーフからルート方向へ順次１つ上位階層のノードのデータ格納領域へのポインタを指定してツリー構造を形成する。また、ルートからリーフ方向へ順次１つ下位階層のノードのデータ格納領域へのポインタを指定して、ツリー構造を形成することもできる。また、ルートからリーフ方向、リーフからルート方向の両方のポインタをノードが有することもできる。
【０１６９】
なお、図８で示すようにコンテンツ構成ツリー１０００の各ノードの属性情報であるラベルと基準点は、グルーピング処理部１３０の実行完了時点ではまだ格納されない。
【０１７０】
また、本実施形態では、入力コントロールのみを対象としてグルーピングを行なっているが、入力コントロールだけでなく、一般的にＷｅｂコンテンツに対してはテキストや画像などをグルーピング処理の対象としてもよい。
【０１７１】
また、本実施形態では、コンテンツ構成ツリー生成処理部１２３が、グルーピング処理部１３０を起動し、グルーピング処理部１３０が、グループの生成とコンテンツ構成ツリー１０００の生成を行っているが、グルーピング処理部１３０はグループの生成だけ行い、コンテンツ構成ツリー生成処理部１２３が、コンテンツ構成ツリー１０００の生成を行ってもよい。
【０１７２】
ラベル付与処理部１３１は、階層レベルＭ（最下位階層レベル）から階層レベル１の順で、図８に示すコンテンツ構成ツリー１０００の各ノードにおけるラベルの抽出および基準点の設定を行なう。
【０１７３】
ラベル付与処理部１３１は、階層レベルが階層レベルＭ（最下位階層レベル）のリーフノードの場合、各入力コントロールの基準位置を領域の左上とした上で、テキストリスト情報１６２および入力コントロールリスト情報１６３を用いて、ｎ番目の入力コントロールの基準点に対し、上方向あるいは左方向（距離が同じ場合は左より上優先）で、配置位置的に最も近いテキストをｎ番目の入力コントロールのラベルとして抽出し、ラベルを含めたｎ番目の入力コントロールの基準点を再設定する。
【０１７４】
図５および図６の例では、入力コントロールリスト情報１６３より３番目の入力コントロールの基準点“Ｘ：２８５ｐｘ  Ｙ：１９６ｐｘ”に対し、テキスト情報１６２より６番目のテキストの基準点“Ｘ：１００ｐｘ  Ｙ：１９２ｐｘ”が位置的に最も近いため、３番目の入力コントロールのラベルとして、６番目のテキスト“Address”が抽出され、抽出結果は、ラベル付与処理部１３１の処理実行後におけるコンテンツ構成ツリー１１００（図９参照）のノード番号６のノードに属性情報として格納されている。さらに、ラベルを含めた３番目の入力コントロール（ノード番号６）の基準位置を、６番目のテキストの基準位置“Ｘ：１００ｐｘ  Ｙ：１９２ｐｘ”として再設定され、コンテンツ構成ツリー１１００のノード番号６のノードに属性情報として格納されている。
【０１７５】
このように、コンテンツ５００に含まれるすべての入力コントロールに対して、上述と同様の処理が行なわれることで、階層レベルＭ（最下位階層レベル）の各ノードのラベル名および基準位置が、コンテンツ構成ツリー１１００の各ノードの属性情報として格納される。
【０１７６】
なお、本具体例では、ｎ番目の入力コントロールのラベルをテキストリスト情報１６２に格納されているコンテンツ中のテキストの中から、入力コントロールの基準点に対して上方向と左方向（距離が同じ場合は左より上優先）で最も近い距離にあるテキストとしたが、ラジオボタンやチェックボックスについては入力コントロールの基準点に対して右方向と下方向（距離が同じ場合は下より右優先）で最も近い距離にあるテキストとされてもよい。
【０１７７】
次に、ラベル付与処理部１３１は、階層レベルが階層レベルＭ（最下位層レベル）以外のブランチノードの場合、テキストリスト情報１６２および入力コントロールリスト情報１６３を用いて、ノード番号ｎの基準点に対し、上方向あるいは左方向（距離が同じ場合は左より上優先）で位置的に最も近いテキストであって、未だラベルとして抽出されていないテキストをノード番号ｎのラベルとして抽出し、ラベルを含めたノード番号ｎの基準点を再設定する。
【０１７８】
図５および図６の例では、図８に示すコンテンツ構成ツリー１０００のノード番号２に関して、ノード番号２に属する要素（子ノード）の中で、最も左上（距離が同じ場合は左より上優先）の基準位置をもつノード番号５の基準点“Ｘ：１００ｐｘ  Ｙ：１５８ｐｘ”がノード番号２の基準位置に設定される。そのノード番号２の基準点に対し位置的に最も近いテキストの基準位置は、テキストリスト情報１６２の４番目のテキスト情報“First”であるが、これはすでにノード番号：５のラベルに使用されている。そこで、テキストリスト情報１６２の２番目のテキストの基準位置“Ｘ：９０ｐｘ  Ｙ：１１８ｐｘ”が、未だラベルとして抽出されておらず位置的に最も近いテキスト情報要素であるため、ノード番号２のラベルとして、２番目のテキスト“Applicant Information”が抽出され、抽出結果がコンテンツ構成ツリー１１００のノード番号２のノードに属性情報として格納される。さらに、ラベルを含めたノード番号２の基準位置をラベル（２番目のテキスト）の基準位置“Ｘ：９０ｐｘ  Ｙ：１１８ｐｘ”として再設定され、図９で示すコンテンツ構成ツリー１１００のノード番号２のノードに属性情報として格納される。
【０１７９】
このように、階層レベルが階層レベルＭ（最下位階層レベル）以外のすべてのノードに対して、上述と同様の処理が行われることで、階層レベルが階層レベルＭ（最下位階層レベル）以外の各ノードのラベルおよび基準位置が、コンテンツ構成ツリー１１００の各ノードの属性情報として格納される（なお、前述したように、図９のコンテンツ構成ツリーは一部が図示省略されている）。
【０１８０】
なお、本具体例におけるグルーピング処理部１３０では、グルーピング方法として、各入力コントロールの基準位置情報を用いて行ったが、図５に示すテキストリスト情報１６２のフォントサイズ情報を用いて、或る閾値以上のフォントサイズを持つテキストの位置を階層レベルｍにおける入力コントロール間のグループ境界とみなすという方法をとってもよい。たとえば、フォントサイズが“＋３”以上あるテキストの位置の直前を階層レベル２におけるグループの境界とみなすというグルーピング条件が設定されていた場合に、図５および図６の例では、テキストリスト情報１６２の２番目のテキスト“Applicant Information”と１３番目のテキスト“Elective Conference”と２６番目のテキスト”Payment”が“＋３”のフォントサイズを持つので、入力コントロールリスト情報１６３の１番目と２番目と、９番目と１０番目と、１２番目と１３番目の入力コントロール間が階層レベル２におけるグループの境界とみなされ、１番目〜９番目、１０番目〜１２番目および１３番目〜１５番目の入力コントロールが階層レベル２における１つのグループとみなされる。
【０１８１】
以上が、部品登録制御処理部１１１の具体的な処理の流れである。
【０１８２】
上述した第一の実施形態によれば、コンテンツを複数の部品に分け、複数の部品をそれぞれ表す複数の既存部品サブツリーもリポジトリ（例えば磁気ディスク装置１０１）に格納され、各既存部品サブツリーも、検索の対象となる。これにより、コンテンツファイルそれ自体のみを検索対象とすることに比べて、ユーザが作成しようとするコンテンツにより近いコンテンツとしての部品の検索でき、以って、ユーザの負担を軽減することができる。
【０１８３】
また、上述した第一の実施形態によれば、クエリツリー及び既存部品サブツリーに、テキスト情報要素に加えて入力コントロール種類情報要素が含まれており、テキスト情報要素だけでなく入力コントロール種類情報要素をも基に、クエリツリーと既存部品サブツリーの類似度が算出される。これにより、テキストのみが検索キーとして入力される検索方法に比べて、ユーザが作成しようとするコンテンツにより近いコンテンツとしての部品を検索することができ、以って、以って、ユーザの負担を軽減することができる。
【０１８４】
また、上述した第一の実施形態によれば、コンテンツファイルをリポジトリに登録するだけで、コンテンツ部品を表す既存部品サブツリーをリポジトリに蓄積できるとともに、それら蓄積された既存部品サブツリーに対して、人手によってあらかじめメタ情報を付与しなくても、開発者が所望するコンテンツ部品を検索することができる。
【０１８５】
また、上述した第一の実施形態によれば、同一のコンピュータシステムや異なるコンピュータシステム（コンピュータシステムは例えば電子申請システム）でも、コンテンツ（例えば入力フォーム）のデザインの統一が図れる。
【０１８６】
＜第二の実施形態＞。
【０１８７】
次に、本発明の第二の実施形態について説明する。なお、以下、第一の実施形態の相違点を主に説明し、第一の実施形態との共通点については説明を省略或いは簡略する。
【０１８８】
第二の実施形態では、レポジトリに登録される全ての既存部品サブツリーが、部品検索前に（具体的には部品登録の際に）、機能別およびスタイル別にグルーピングされ、部品候補一覧では、機能別およびスタイル別に部品候補に関する情報が提示される。この結果、複数の部品候補に関する情報を、機能単位およびスタイル単位で表示することができる。
【０１８９】
第一の実施形態と異なる点は、図１４に示すとおり、部品登録処理部１２６に、機能別クルーピング処理部１２７とスタイル別グルーピング１２８が追加されている点と、部品検索処理部１４２と部品候補出力処理部１４３の処理がそれぞれ一部変更されている点である（変更後の部品登録処理部１２６、部品検索処理部１４２および部品候補出力処理部１４３を、それぞれ部品登録処理部１２６ｃ、部品グループ検索処理部１４２ｃおよび部品候補出力処理部１４３ｃと呼ぶ）。
【０１９０】
以下、第二の実施形態で行われる処理を、第一の実施形態で行われる処理と異なる部分を主に説明する。
【０１９１】
図１５は、機能別グルーピング処理部１２７が行う処理の流れの一例を示す。
【０１９２】
まず、機能別グルーピング処理部１２７は、磁気ディスク装置１０１又はワークエリア１５０に登録されている本処理を実行していないすべてのコンテンツファイル１６０に対して、ステップ２５１１およびステップ２５１７〜２５１９を繰り返す（ステップ２５１０）。
【０１９３】
次に、機能別グルーピング処理部１２７は、該コンテンツファイル１６０に対応するコンテンツ構成ツリー１６１に含まれるすべてのサブツリー（既存部品サブツリー１７４）に対して、ステップ２５１２〜２５１３を繰り返す（ステップ２５１１）。
【０１９４】
次に、機能別グルーピング処理部１２７は、該既存部品サブツリーの部品内情報１７７Ｂ（ラベル情報１７５Ｂと入力コントロール情報１７６Ｂを含んだ情報）を取得し、取得した部品内情報１７７Ｂをワークエリア１５０に格納する（ステップ２５１２）。
【０１９５】
次に、機能別グルーピング処理部１２７は、すべての機能グループ１８８に対して、ステップ２５１４〜２５１６を繰り返す（ステップ２５１３）。なお、機能グループとは、同一又は類似の機能を持つ部品に対応した既存部品サブツリーの集まりである。
【０１９６】
次に、機能別グルーピング処理部１２７は、該機能グループ１８８の部品内情報１７７Ｃ（ラベル情報１７５Ｃと入力コントロール情報１７６Ｃを含んだ情報）を取得し、取得された部品内情報１７７Ｃ（図１９参照）を、ワークエリア１５０に格納する（ステップ２５１４）。
【０１９７】
次に、機能別グルーピング処理部１２７は、該既存部品サブツリー１７４の部品内情報１７７Ｂと該機能グループ１８８の部品内情報１７７Ｃとから、類似度算出のためのベクトル空間とベクトルを表現したテーブル形式のベクトル情報１８２を生成し、生成したベクトル情報１８２をワークエリア１５０に格納する（ステップ２５１５）。
【０１９８】
次に、機能別グルーピング処理部１２７は、ベクトル情報１８２を用いて、該既存部品サブツリーに対する該機能グループの類似度を式２により算出する。類似度は、ベクトル情報１８２からベクトル空間法のよる余弦尺度（式２）により算出し、図１８に例示する機能グループ別類似度算出結果１８９（機能グループＩＤ情報１８９１と類似度情報１８９２を含んだ情報）を、ワークエリア１５０に格納する（ステップ２５１６）。
【０１９９】
【数２】
2008287311.tif 000004
【０２００】
次に、機能別グルーピング処理部１２７は、該既存サブツリー１７４に対して、閾値以上の類似度を持つ機能グループ１８８が存在するか否かを判定する（ステップ２５１７）。
【０２０１】
ステップ２５１７の判定の結果、閾値以上の類似度を持つ機能グループ１８８が存在する場合は、機能別グルーピング処理部１２７は、該既存部品サブツリー１７４を、最も高い類似度を持つ機能グループ１８８のメンバとし、該既存部品サブツリー１７４に対応する該コンテンツ構成ツリー１６１のノード１９５（図２２参照）に機能グループIDを格納する（ステップ２５１８）。
【０２０２】
ステップ２５１７の判定の結果、閾値以上の類似度を持つ機能グループ１８８が存在しない場合は、機能別グルーピング処理部１２７は、該既存部品サブツリーをメンバとする新たな機能グループを生成し、機能グループIDを付与した上で（ステップ２５１９）、磁気ディスク装置１０１又はワークエリア１５０に、その既存部品サブツリーを登録する。なお、機能グループIDは、主メモリ１０２または磁気ディスク装置１０１に格納されているルールに基づいて機能グループIDを生成して付与することができる。また、一の機能グループについて、その機能グループに最後にメンバとされた既存部品サブツリーを、代表の既存部品サブツリーとすることができる。代表の既存部品サブツリーがどれであるかは、例えば、既存部品サブツリーのルートノードに代表であることを表すコード（以下、代表コード）を含めることで、特定することができる（代表となる既存部品サブツリーが変わる場合には、既存の代表の既存部品サブツリーのルートノードから代表コードを削除することができる）。
【０２０３】
図１６は、スタイル別グルーピング処理部１２８が行う処理の流れの一例を示す。
【０２０４】
まず、スタイル別グルーピング処理部１２８は、磁気ディスク装置１０１又はワークエリア１５０に登録されている本処理を実行していないすべての機能グループ１８８に対して、ステップ２６１１を繰り返す（ステップ２６１０）。
【０２０５】
次に、スタイル別グルーピング処理部１２８は、該機能グループに含まれるすべての既存部品サブツリーに対して、ステップ２６１２〜２６１３を繰り返す（ステップ２６１１）。
【０２０６】
次に、スタイル別グルーピング処理部１２８は、該既存部品サブツリーに対応するコンテンツファイル１６０のソースから、該既存部品サブツリーに対応した部品のスタイル情報を取得し（ステップ２６１２）、取得したスタイル情報を、ワークエリア１５０に格納する。なお、類似性を比較する部品間のテキスト数が二以上である場合、図２０に例示するスタイル情報１９３（二以上のテキストとそれら二以上のテキストのコンテンツにおける並び順（図２０では、一番左が先頭））が取得される。また、類似性を比較する部品間のテキスト数が１である場合、図２１に例示するスタイル情報１９４（ラベル情報１９４１、ｔｙｐｅ情報１９４２、ｓｉｚｅ情報１９４３、ｆｏｎｔ−ｓｉｚｅ情報１９４４、ｃｏｌｏｒ情報１９４５およびｍａｘｌｅｎｇｔｈ情報１９４６を含んだ情報）が取得される。なお、スタイル情報１９３及び１９４は、ＨＴＭＬソース（コンテンツファイル）の属性情報等から構築することができるが、ソースから抽出できる他の情報要素から構築されても良い。また、スタイル情報１９４に含まれる情報要素は、一のテキストに関する属性を表す情報要素であれば何でもよい。また、類似性を比較する部品間のテキスト数が二以上であっても、各テキストについてスタイル情報１９４が作成され、スタイル情報１９４同士の比較が行われても良い。
【０２０７】
次に、スタイル別グルーピング処理部１２８は、すべてのスタイルグループ１９０に対して、ステップ２６１４〜２６１７を繰り返す（ステップ２６１３）。なお、スタイルグループとは、画面上に表示されるスタイルが同一又は類似している既存部品サブツリーの集まりである。
【０２０８】
次に、スタイル別グルーピング処理部１２８は、該スタイルグループからスタイル情報１９３又は１９４を取得し、取得したスタイル情報１９３又は１９４を、ワークエリア１５０に格納する（ステップ２６１４）。
【０２０９】
次に、スタイル別グルーピング処理部１２８は、既存部品サブツリーのスタイル情報１９３又は１９４とスタイルグループ１９０のスタイル情報１９３又は１９４とを比較し、スタイル情報が完全一致するか否かを判定する（ステップ２６１５）。
【０２１０】
ステップ２６１５の判定の結果、それぞれのスタイル情報が完全一致した場合は、スタイル別グルーピング処理部１２８は、該部品を該スタイルグループ１９０のメンバとし、該既存部品サブツリー１７４に対応する該コンテンツ構成ツリー１６１のノード１９５（図２２参照）に、スタイルグループIDを格納する（ステップ２５１６）。
【０２１１】
ステップ２６１５の判定の結果、それぞれのスタイル情報が完全一致しない場合は、スタイル別グルーピング処理部１２８は、該既存部品サブツリーをメンバとする新たなスタイルグループを生成し、スタイルグループIDを付与した上で（ステップ２６１７）、磁気ディスク装置１０１又はワークエリア１５０に登録する。なお、スタイルグループIDは、主メモリ１０２または磁気ディスク装置１０１に格納されているルールに基づいて機能グループIDを生成して付与することができる。また、一のスタイルグループについて、最後にメンバとされた既存部品サブツリーを代表の既存部品サブツリーとすることができる。
【０２１２】
なお、ステップ２６１５の類似性判定処理では、既存部品サブツリーおよび該スタイルグループ１９０のそれぞれのスタイル情報が互いに完全一致しないと類似しているとみなさないとしたが、条件を詳細に設けて、小さな差異については吸収して類似しているとみなしてもよい。具体的には、例えば、スタイル情報１９３同士の比較において、テキストが完全一致であれば並び順が違っていても、比較対象の既存部品サブツリーが比較対象のスタイルグループのメンバとされても良いし、或いは、並び順が完全一致であれば所定数のテキストが違っていても、比較対象の既存部品サブツリーが比較対象のスタイルグループのメンバとされても良い。また、例えば、スタイル情報１９４同士の比較において、所定割合以上の情報要素が互いに一致していれば、比較対象の既存部品サブツリーが比較対象のスタイルグループのメンバとされても良い。
【０２１３】
なお、機能別グルーピング処理部１２７およびスタイル別グルーピング処理部１２８の処理結果は、図２２に例示する既存部品グルーピング情報１９６、すなわち、機能グループＩＤ情報１９６１、スタイルグループＩＤ情報１９６２、部品ＩＤ情報１９６３（スタイルグループに含まれる既存部品サブツリーに対応した部品のＩＤ）および出現数情報１９６４（スタイルグループに含まれる既存部品サブツリーの数）が含まれている情報であっても良い。既存部品グルーピング情報１９６は、磁気ディスク装置１０１又はワークエリア１５０に格納されてもよい。
【０２１４】
図１７は、部品グループ検索処理部１４２ｃが行う処理の流れの一例を示す。
【０２１５】
まず、部品グループ検索処理部１４２ｃは、入出力定義情報解析処理部１４１で取得されたすべてのクエリツリー１７１に対して、ステップ２７１０〜２７１１を繰り返す（ステップ２７００）。
【０２１６】
次に、部品グループ検索処理部１４２ｃは、該クエリツリー１７１の部品内情報１７７Ａを取得し、取得された部品内情報１７７Ａをワークエリア１５０に格納する（ステップ２７１０）。
【０２１７】
次に、部品グループ検索処理部１４２ｃは、磁気ディスク装置１０１又はワークエリア１５０に登録されているすべての機能グループ１８８に対して、ステップ２７１２〜２７１３を繰り返す。
【０２１８】
次に、部品グループ検索処理部１４２ｃは、該機能グループ１８８の部品内情報１７７Ｃを取得し、取得された部品内情報１７７Ｃをワークエリア１５０に格納する（ステップ２７１２）。
【０２１９】
最後に、部品グループ検索処理部１４２ｃは、該クエリツリー１７１に対する該機能グループ１８８の類似度を算出し、図２３に例示する機能グループ別類似度算出結果１８９（機能グループＩＤ情報１８９１と類似度情報１８９２を含んだ情報）をワークエリア１５０に格納する（ステップ２７１３）。このステップ２７１３では、機能別グルーピング処理部１２７の処理流れにおけるステップ２５１６と実質的に同じ処理を行う（例えば、（式２）で類似度を算出する）ことができる。
【０２２０】
部品候補出力処理部１４３ｃは、部品グループ検索処理部１４２ｃで生成された機能グループ別類似度算出処理結果１８９と、機能別グルーピング処理部１２７とスタイル別グルーピング処理部１２８によって生成された既存部品グルーピング情報１９６とを用いて、クエリツリー１７１に対する機能グループ１８８に関する情報および機能グループ１８８内におけるスタイルグループに関する情報の一覧（以下、部品グループ候補一覧）を、部品グループ候補一覧表示画面１９７に表示することができる。この画面１９７は、例えば、第一の実施形態における部品候補一覧表示画面１８７に代わりに用意された画面である。
【０２２１】
部品グループ候補一覧には、機能グループのＩＤ、クエリツリー１７１に対する機能グループ１８８の類似度、該機能グループに含まれるサブ機能グループのＩＤ、該機能グループ１８８に含まれるスタイルグループのＩＤおよび該スタイルグループに含まれる部品数が含まれる。また、各スタイルグループの代表部品をプレビューするためのプレビューボタンが表示される。なお、該機能グループに含まれるサブ機能グループのＩＤは、該機能グループに含まれる既存部品サブツリー１７４内のノード１９５に記録されている機能グループＩＤである。すなわち、第一の機能グループに属する既存部品サブツリー内のノードに、第一の機能グループとは別の第二の機能グループのＩＤが記録されていれば、その第二の機能グループが、第一の機能グループのサブ機能グループとなる。
【０２２２】
以下、部品登録処理部１２６ｃの具体的な処理を、図１８〜図２２を用いて説明する。
【０２２３】
図１８は、機能別グルーピング処理部１２７の具体的な処理の説明図である。
【０２２４】
機能別グルーピング処理部１２７は、磁気ディスク装置１０１に登録されているすべてのコンテンツファイル１６０に含まれるすべての既存部品サブツリー１７４について、登録されている機能グループ１８８との類似度を算出することで、各既存部品サブツリー１７４に対応する部品がどの機能グループに属すかを決定する。
【０２２５】
図１８の例では、グルーピング対象の既存部品サブツリー１７４が、３つの機能グループ１８８（ＩＤ“００１”〜“００３”）の中のどの機能グループに属するかを決定するために、該既存部品サブツリー１７４に対する各機能グループ１８８の類似度が算出される。具体的には、機能グループＩＤ“００１”については類似度“０．５０”が算出され、機能グループＩＤ“００２”については類似度“０．６７”が算出され、機能グループＩＤ“００３”については類似度“０．４２”が算出され、それぞれ機能グループＩＤ情報１８９１と類似度情報１８９２が機能グループ別類似度算出結果１８９に格納される。この結果、例えば類似度の閾値が“０．５０”の場合、該既存部品サブツリー１７４は、類似度が最も高いＩＤ“００２”の機能グループのメンバに追加される。また、類似度の閾値が“０．７０”の場合、該既存部品サブツリー１７４の部品は、どの機能グループにも属さないものとして、該既存部品サブツリー１７４の部品をメンバとする新たな機能グループ（ＩＤ“００４”）が生成される。
【０２２６】
図１９は、機能別グルーピング処理部１２７における類似度算出の具体的な処理の説明図である。
【０２２７】
まず、機能別グルーピング処理部１２７は、既存部品サブツリー１７４から部品内情報１７７Ｂを取得し、機能グループ１８８から部品内情報１７７Ｃを取得する。図１９の例では、部品内情報１７７Ｂは、図１２の部品内情報１７７Ａと同じ内容であり、部品内情報１７７Ｃは、図１２の部品内情報１７７Ｂと同じ内容である。このため、これらの部品内情報１７７Ｂ及び１７７Ｃを基に作成されたベクトル情報１８２を参照して上記（式２）を利用して算出された類似度は、０．６７となる。機能別グルーピング処理部１２７は、機能グループ別類似度算出結果１８９に、機能グループＩＤ情報１８９１“００２”と、類似度情報１８９２“０．６７”とを記録する。
【０２２８】
なお、グルーピング対象の既存部品サブツリー１７４と機能グループ１８８との類似度算出では、機能グループ１８８における代表の既存部品サブツリーとグルーピング対象の既存部品サブツリー１７４とが比較されても良い。或いは、グルーピング対象の既存部品サブツリー１７４は、機能グループ１８８における二以上の（例えば全ての）既存部品サブツリー１７４と比較され、算出された二以上の類似度の平均が、グルーピング対象の既存部品サブツリー１７４と機能グループ１８８との類似度とされても良い。
【０２２９】
以上のように、機能グループとグルーピング対象の既存部品サブツリー１７４と
【０２３０】
図２０は、類似性を比較する部品間のテキスト数が二以上である場合のスタイル別グルーピング処理部１２８の具体的な処理の説明図である。
【０２３１】
まず、スタイル別グルーピング処理部１２８は、コンテンツファイル１６０（ソース）から、グルーピング対象の既存部品サブツリーのスタイル情報１９３を取得する。スタイル情報１９３は、テキスト（例えば入力項目名）と順番を表現した情報であり、本図の例では、“氏名”、“住所”及び“電話番号”といった３つの入力項目名が、“氏名”、“住所”、“電話番号”の順でコンテンツ上にレイアウトされていることを示す。
【０２３２】
次に、スタイル別グルーピング処理部１２８は、スタイルグループ１９０についても、スタイルグループ１９０の代表既存部品ツリーからスタイル情報１９３を取得する。本図の例では、スタイルグループＩＤ“００１”について、スタイル情報１９３として、“性”  名  住所  電話番号”が取得され、スタイルグループＩＤ“００２”について、スタイル情報１９３として、“氏名  電話番号  住所”が取得され、スタイルグループＩＤ“００３”について、スタイル情報１９３として、“氏名  住所  電話番号”が取得される。
【０２３３】
次に、スタイル別グルーピング処理部１２８は、グルーピング対象の既存部品サブツリー１７４のスタイル情報１９３と各スタイルグループ１９０の各スタイル情報１９３とを比較し、完全一致するかどうかを判定する。本図の例では、３つのスタイルグループ１９０のうち、スタイルグループＩＤ“００１”については入力項目名が異なり、スタイルグループＩＤ“００２”については入力項目名の順番が異なり、スタイルグループＩＤ“００３”に対応したスタイル情報１９３のみが、グルーピング対象の既存部品サブツリー１７４のスタイル情報１９３と完全一致することになる。このため、判定結果を表す情報であるスタイル別類似性判定結果１９２には、グルーピング対象の既存部品サブツリー１７４はスタイルグループＩＤ“００３”のスタイルグループ１９０のメンバとなることが示される。
【０２３４】
図２１は、類似性を比較する部品間のテキスト数が１である場合のスタイル別グルーピング処理部１２８の具体的な処理の説明図である。
【０２３５】
まず、スタイル別グルーピング処理部１２８は、コンテンツファイル１６０（ソース）から、グルーピング対象の既存部品ツリー１７４のスタイル情報１９４を取得する。スタイル情報１９４には、一つの入力項目名（テキスト）のスタイルに関する属性を示す情報要素が含まれ、本図の例では、ラベル情報１９４１“氏名”、ｔｙｐｅ情報１９４２“text”、ｓｉｚｅ情報１９４３“１０”、ｆｏｎｔ−ｓｔｙｌｅ情報１９４４“normal”、ｆｏｎｔ−ｓｉｚｅ情報１９４５“medium”、ｃｏｌｏｒ情報１９４６“black”、およびｍａｘｌｅｎｇｔｈ情報１９４７“１０”が含まれる。
【０２３６】
スタイル別グルーピング処理部１２８は、各スタイルグループ１９０についても、スタイルグループ１９０の代表既存部品サブツリーからスタイル情報１９４を取得する。本図の例では、スタイルグループＩＤ“００１”に対応したスタイル情報１９４には、ラベル情報１９４１“名前”、ｔｙｐｅ情報１９４２“text”、ｓｉｚｅ情報１９４３“１０”、ｆｏｎｔ−ｓｔｙｌｅ情報１９４４“normal”、ｆｏｎｔ−ｓｉｚｅ情報１９４５“medium”、ｃｏｌｏｒ情報１９４６“black”およびｍａｘｌｅｎｇｔｈ情報１９４７“１０”が含まれる。以下、スタイルグループＩＤ“００２”と“００３”についても、同様にスタイル情報１９４が取得される。
【０２３７】
次に、スタイル別グルーピング処理部１２８は、グルーピング対象の既存部品サブツリー１７４のスタイル情報１９４とスタイルグループ１９０のスタイル情報１９４とを比較し、それらが互いに完全一致するかどうかを判定する。本図の例では、スタイルグループＩＤ“００１”はラベル情報１９４１が異なり、スタイルグループＩＤ“００２”はｆｏｎｔ−ｓｉｚｅ情報１９４４が異なり、スタイルグループＩＤ“００３”のスタイル情報１９４のみが、グルーピング対象の部品のスタイル情報１９４とすべての情報が一致している。スタイル別グルーピング処理部１２８は、そのことを検出し、スタイル別類似性判定結果１９２に、グルーピング対象の既存部品ツリー１７４はＩＤ“００３”のスタイルグループのメンバとなることを記録する。
【０２３８】
なお、本図には示されていないが、仮にグルーピング対象の既存部品サブツリーのスタイル情報がどのスタイルグループのスタイル情報１９３或いは１９４とも一致しなかった場合は、グルーピング対象の既存部品サブツリーをメンバとする新たなスタイルグループを生成し、スタイルグループＩＤを付与した上で磁気ディスク装置１０１又はワークエリア１５０に登録することができる。また、この場合、グルーピング対象の既存部品サブツリーは新たに生成されたスタイルグループの代表既存部品サブツリーとなる。
【０２３９】
また、機能別グルーピング処理部１２７とスタイル別グルーピング処理部１２８のグルーピング結果は、グルーピング対象の既存部品サブツリーに対応するコンテンツ構成ツリー１６１のノード１９５の中に機能グループＩＤとスタイルグループＩＤとして格納される。図２２の例では、コンテンツ構成ツリー１６１のノード１９５に、機能グループＩＤ“００２”とスタイルグループＩＤ“００３”がそれぞれ格納されている。
【０２４０】
また、前述したように、機能別グルーピング処理部１２７とスタイル別グルーピング処理部１２８のグルーピング結果は、部品候補出力処理部１４３ｃにおける情報取得の高性能化のために、既存部品グルーピング情報１９６（機能グループＩＤ情報１９６１、スタイルグループＩＤ情報１９６２、部品ＩＤ情報１９６３及び出現数情報１９６４を含んだ情報）が磁気ディスク装置１０１又はワークエリア１５０に格納されてもよい。本図の例では、既存部品グルーピング情報１９６の２レコード目の情報として、機能グループＩＤ情報１９６１“００１”、スタイルグループＩＤ情報１９６２“００２”、部品ＩＤ情報１９６３“００３１_３、００６５_２”および出現数情報１９６４“２”がそれぞれ格納されている。また、部品ＩＤ情報１９６３で先頭に格納された（下線で示された）部品ＩＤについては、そのスタイルグループにおける代表既存部品サブツリーであることを示している。代表既存部品サブツリーがどれであるかを示す方法としては、代表既存部品サブツリーに対応した部品ＩＤを先頭に格納することに代えて、下線で示すなど、他の方法を採用することができる。
【０２４１】
以上が、部品登録処理部１２６ｃの具体的な処理である。
【０２４２】
部品検索処理部１４２は、ユーザによって指定されたクエリツリー１７１に対して、磁気ディスク装置１０１又はワークエリア１５０に登録されているすべての機能グループ１８８との類似度を算出する。クエリツリー１７１に対する機能グループ１８８の類似度算出については、図１９で示したグルーピング対象の既存部品サブツリーから部品内情報１７７Ｂを取得する処理が、クエリツリー１７１から部品内情報１７７Ａを取得する処理に変わる以外は、図１９で示した処理例を同じである。
【０２４３】
図２３は、部品候補出力処理部１４３ｃの具体的な処理の説明図である。
【０２４４】
部品候補出力処理部１４３ｃは、部品グループ検索処理部１４２ｃで生成された機能グループ別類似度算出結果１８９と、機能別グルーピング処理部１２７とスタイル別グルーピング処理部１２８によって生成された既存部品グルーピング情報１９６から、クエリツリー１７１に対する機能グループ１８８に関する情報および機能グループ１８８内におけるスタイルグループ１９０に関する情報の一覧を部品グループ候補一覧表示画面１９７に表示する。図２３の例では、第１位の機能グループとして、機能グループＩＤ“００２”、クエリツリー１７１に対する機能グループ１８８の類似度“０．６７”、該機能グループに含まれるサブ機能グループのＩＤ“００４  ００５”が表示されている。サブ機能グループＩＤは、機能グループに含まれる既存部品サブツリー１７４におけるノード１９５内の、その機能グループのＩＤ以外の機能グループＩＤである。また、第１位の機能グループ（ＩＤ：００２）の中に含まれるスタイルグループの一覧として、スタイルグループＩＤ“００１”、“００２”および“００３”が表示されており、それぞれのスタイルグループに含まれる部品数（出現数）として“３０”、“２”および“１”がそれぞれ表示されている。
【０２４５】
また、本図の例では、各スタイルグループの代表既存部品サブツリーが表す部品をプレビューするためのプレビューボタンが設けられている。部品候補出力処理部１４３ｃは、或るプレビューボタンが押下された場合、そのプレビューボタンに対応するスタイルグループ内の代表既存部品サブツリーが表すコードをソースから取得し、取得したコードを基に、代表既存部品サブツリーに対応した部品のイメージを表示することができる。
【０２４６】
以上が、本発明の第二の実施形態についての説明である。
【０２４７】
上述した第二の実施形態によれば、検索前に機能及びスタイルごとに既存部品サブツリーをグルーピングしておくことで、クエリツリーに対する部品候補を、機能およびスタイルの観点で重複することなく、異なる機能およびスタイルの部品ごとに一覧表示することができる。この結果、ユーザは効率よく所望の部品を部品候補一覧表示から探し出すことができる。
【０２４８】
＜第三の実施形態＞。
【０２４９】
次に、本発明の第三の実施形態について説明する。
【０２５０】
第三の実施形態では、第一の実施形態における部品検索方法で既存部品サブツリーの集合を或る程度絞った上で、その集合における各既存部品サブツリーについて、第二の実施形態で説明した機能別およびスタイル別のグルーピング処理を行なう。
【０２５１】
本実施形態において、第一の実施形態と異なる点は、図２４に示すとおり、部品候補出力処理部１４３に機能別クルーピング処理部１２７、スタイル別グルーピング１２８、部品グループ検索処理部１４２ｃおよび部品候補出力処理部１４３ｃを追加する点である（変更後の部品候補出力処理部１４３を部品候補出力制御処理部１４４と呼ぶ）。
【０２５２】
以下、第一の実施形態及び第二の実施形態と異なる処理を主に説明する。
【０２５３】
部品候補出力制御処理部１４４は、まず、部品検索処理部１４２によって算出された各既存部品サブツリーの類似度に対して、磁気ディスク装置１０１又はワークエリア１５０に格納されている類似度の閾値と比較し、閾値以上の類似度を持つ既存部品サブツリーを抽出する。以下、抽出された既存部品サブツリーの集合を「一次検索結果部品集合」と呼ぶ。
【０２５４】
次に、部品候補出力制御処理部１４４は、機能別グルーピング処理部１２７を実行し、機能別グルーピング処理部１２７が、一次検索結果部品集合における各既存部品サブツリーについて、機能別にグルーピングを行なう。機能別グルーピング処理部１２７の処理手順は、処理対象が一次検索結果部品集合における既存部品サブツリーとなる他は、第二の実施形態と同様である。
【０２５５】
次に、部品候補出力制御処理部１４４は、スタイル別グルーピング処理部１２８を実行し、スタイル別グルーピング処理部１２８が、登録された全ての機能グループ１８８に対して、スタイル別にグルーピングを行なう。スタイル別グルーピング処理部１２８の処理手順は、処理対象が一次検索結果部品集合に対して機能別にグルーピングされた各機能グループ１８８となる他は、第二の実施形態と同様である。
【０２５６】
次に、部品グループ検索処理部１４２ｃを実行し、ステップ３４１０によって登録されたすべて機能グループ１８８に対して、クエリサブツリー１７１との類似度を算出する。部品グループ検索処理部１４２ｃの処理手順は、処理対象が一次検索結果部品集合に対して機能別にグルーピングされた各機能グループ１８８となる他は第二の実施形態と同様である。
【０２５７】
次に、部品候補出力制御処理部１４４は、部品候補出力処理部１４３ｃを実行し、部品候補出力処理部１４３ｃが、生成された機能グループ別類似度算出結果１８９と、機能別グルーピング処理部１２７とスタイル別グルーピング処理部１２８によって生成された既存部品グルーピング情報１９６から、クエリツリー１７１に対する部品グループ候補一覧を部品グループ候補一覧表示画面１９７に表示する。部品候補出力処理部１４３ｃの処理手順は、部品候補出力の対象が一次検索結果部品集合となる他は、第二の実施形態と同様である。
【０２５８】
第三の実施形態で行われる処理は、機能別およびスタイル別のグルーピングの処理対象が一次検索結果部品集合となる他は、第二の実施形態と略同様である。
【０２５９】
以上、第三の実施形態によれば、機能別およびスタイル別のグルーピングの処理対象を、第一の実施形態による部品検索方法によって、ある程度絞った部品集合とすることで、新規に作成しようとしているコンテンツの分野の中で使われている部品グループのみを出力することができる。この結果、ユーザは効率よく所望の部品を部品グループ候補一覧から探し出すことができる。
【０２６０】
＜第四の実施形態＞。
【０２６１】
第四の実施形態では、テキストの類似度と入力コントロールの類似度とを別々に算出し、それらの類似度に基づいて、クエリツリーと既存部品サブツリー（或いは機能グループ）との類似度を算出することができる。具体的には、例えば、下記（式３）
クエリツリーと既存部品サブツリー（或いは機能グループ）との類似度＝α（テキストの類似度）＋β（入力コントロールの類似度）…（式３）
で算出することができる。α及びβは、それぞれ、余弦尺度を用いて求めることができる。
【０２６２】
例えば、クエリツリーに、５つのテキスト（入力項目名）として、氏名、住所、電話番号及びメールアドレスがあり、８つの入力コントロールとして、５つのテキストボックス、チェックリスト、ラジオボタン、プルダウンがあるとする。一方、比較対象の既存部品サブツリーに、７つのテキストとして、氏名、性、名、メールアドレス、職業、住所及び電話番号があり、６つの入力コントロールとして、５つのテキストボックス、プルダウンがあるとする。このため、クエリツリーと比較対象の既存部品サブツリーとの間で、テキストについては、氏名、住所、電話番号及びメールアドレスの４つが一致し、入力コントロールについては、５つのテキストボックスとプルダウンの６つが一致する。
【０２６３】
また、テキスト及び入力コントロールの８つのセットうち、クエリツリーについては、一致するセットとして３つあり、比較対象の既存部品サブツリーについては一致するセットとして７つあり、クエリツリーと比較対象の既存部品サブツリーとの間で互いに一致するセットが３つあるとする。
【０２６４】
この場合、第一乃至第三の実施形態によれば、類似度が０．５７として算出される。なぜなら、余弦尺度（（式１）及び（式２））において、分子が、１２＋１２＋１２＝３となり、分母が、｛（１２＋１２＋１２＋１２）の平方根｝×｛（１２＋１２＋１２＋１２＋１２＋１２＋１２）の平方根｝となるからである。
【０２６５】
しかし、第四の実施形態では、上記（式３）を用いて類似度が求められる。具体的には、例えば、αは０．７６であり、βは０．９６となり、そのため、類似度は、１．７２となる。αが０．７６となる理由は、余弦尺度において、分子が、１２＋１２＋１２＋１２＝４となり、分母が、｛（１２＋１２＋１２＋１２）の平方根｝×｛（１２＋１２＋１２＋１２＋１２＋１２＋１２）の平方根｝となるからである。βが０．９６となる理由は、余弦尺度において、分子が、５２＋１２＝２６となり、分母が、｛（５２＋１２＋１２＋１２）の平方根｝×｛（５２＋１２）の平方根｝となるからである。
【０２６６】
なお、α及びβは、余弦尺度により算出されることとしたが、他の方法により算出されても良い。
【０２６７】
＜第五の実施形態＞。
【０２６８】
第五の実施形態は、第二と第三の実施形態の組合せであり、且つ、登録性能を重視するか検索性能を重視するかの入力を受け付ける機能がコンテンツ部品検索システムに設けられる。コンテンツ部品検索システムでは、登録性能を重視することが開発者から入力された場合には、第三の実施形態で説明したように、一次検索結果部品集合について機能別及びスタイル別のグルーピング処理が行われ、検索性能を重視することが開発者から入力された場合は、第二の実施形態で説明したように、新規に登録されるコンテンツの各部品を表す各既存部品サブツリーについて、機能別及びスタイル別のグルーピング処理が行われる。
【０２６９】
以上、本発明の幾つかの実施形態を説明したが、これらの実施形態は本発明の説明のための例示にすぎず、本発明の範囲をそれらの実施形態にのみ限定する趣旨ではない。本発明は、その要旨を逸脱することなく、その他の様々な態様でも実施することができる。例えば、既存部品サブツリーや評価結果などの格納先は、主メモリ又は磁気ディスク装置に限らず、他種の記憶資源であってもよい。
【図面の簡単な説明】
【０２７０】
【図１】図１は、本発明の第一の実施形態におけるコンテンツ部品検索システムの全体構成例を示す。
【図２】図２は、グルーピング処理部が行う処理の流れの一例を示す。
【図３】図３は、ラベル付与処理部が行う処理の流れの一例を示す。
【図４】図４は、コンテンツの表示例を示す。
【図５】図５は、テキストリスト情報の一例を示す。
【図６】図６は、入力コントロール情報の一例を示す。
【図７】図７は、グルーピング条件リストの一例を示す。
【図８】図８は、ラベル付与処理部によるラベル付与前のコンテンツ構成ツリーの一例を示す。
【図９】図９は、ラベル付与処理部によるラベル付与後のコンテンツ構成ツリーの一例を示す。
【図１０】図１０は、部品検索処理部が行う処理の流れの一例を示す。
【図１１】図１１は、入出力定義情報からのクエリツリーの取得の説明図である。
【図１２】図１２は、部品検索処理部が行う処理の一例の説明図である。
【図１３】図１３は、部品候補出力処理部が行う処理の一例の説明図である。
【図１４】図１４は、本発明の第二の実施形態における部品登録処理部および部品検索制御処理部の構成例を示す。
【図１５】図１５は、機能別グルーピング処理部が行う処理の流れの一例を示す。
【図１６】図１６は、スタイル別グルーピング処理部が行う処理の流れの一例を示す。
【図１７】図１７は、本発明の第二の実施形態における部品グループ検索処理部が行う処理の流れの一例を示す。
【図１８】図１８は、機能別グルーピング処理部が行う処理概要の説明図である。
【図１９】図１９は、機能別グルーピング処理部の類似度算出処理の説明図である。
【図２０】図２０は、類似性を比較する部品間のテキスト数が二以上である場合のスタイル別グルーピング処理部の具体的な処理の説明図である。である。
【図２１】図２１は、類似性を比較する部品間のテキスト数が１である場合のスタイル別グルーピング処理部の具体的な処理の説明図である。
【図２２】図２２は、コンテンツ構成ツリーにおけるノードと、既存部品グルーピング情報との一例を示す。
【図２３】図２３は、本発明の第二の実施形態における部品候補出力処理部が行う処理の説明図である。
【図２４】図２４は、本発明の第三の実施形態における部品検索制御処理部の構成例を示す。
【符号の説明】
【０２７１】
１００…中央演算処理装置（ＣＰＵ）  １０１…磁気ディスク装置  １０２…主メモリ  １０３…フロッピーディスクドライブ（ＦＤＤ）  １０４…バス  １０５…ネットワーク  １０６…フロッピーディスク  １１０…システム制御処理部  １１１…部品登録制御処理部  １１２…部品検索制御処理部  １１２ｃ…部品検索制御処理部  １２１…コンテンツ取得処理部  １２２…コンテンツ内要素情報取得処理部  １２３…コンテンツ構成ツリー生成処理部  １２６…部品登録処理部  １２６ｃ…部品登録処理部  １２７…機能別グルーピング処理部  １２８…スタイル別グルーピング処理部  １３０…グルーピング処理部  １３１…ラベル付与処理部  １４０…入出力定義情報取得処理部  １４１…入出力定義情報解析処理部  １４２…部品検索処理部  １４２ｃ…部品グループ検索処理部  １４３…部品候補出力処理部  １４３ｃ…部品候補出力処理部  １４４…部品候補出力制御処理部  １５０…ワークエリア  １６０…コンテンツファイル  １６１…コンテンツ構成ツリー
【図１】
2008287311.tif 000005
【図２】
2008287311.tif 000006
【図３】
2008287311.tif 000007
【図５】
2008287311.tif 000008
【図６】
2008287311.tif 000009
【図７】
2008287311.tif 000010
【図８】
2008287311.tif 000011
【図９】
2008287311.tif 000012
【図１０】
2008287311.tif 000013
【図１１】
2008287311.tif 000014
【図１２】
2008287311.tif 000015
【図１４】
2008287311.tif 000016
【図１５】
2008287311.tif 000017
【図１６】
2008287311.tif 000018
【図１７】
2008287311.tif 000019
【図１８】
2008287311.tif 000020
【図１９】
2008287311.tif 000021
【図２０】
2008287311.tif 000022
【図２１】
2008287311.tif 000023
【図２２】
2008287311.tif 000024
【図２３】
2008287311.tif 000025
【図２４】
2008287311.tif 000026
【図４】
2008287311.tif 000027
【図１３】
2008287311.tif 000028