(57)【特許請求の範囲】
【請求項１】
コンピュータが実行する、動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理を支援する方法であって、
（ａ）前記コンピュータが、修正作業者によるウェブ・アプリケーションの問題の修正に応答して、前記問題を修正するための操作を示す操作情報と該操作情報の適用条件とを含むメタデータＭ１であって、前記適用条件として、ウェブページ内の前記問題の発生箇所を含む意味的にまとまりのあるブロック情報と、前記問題が発生する前記ウェブ・アプリケーションの状態を特定するグローバル変数群及びクッキー情報とを含む前記メタデータＭ１を生成するステップと、
（ｂ）前記コンピュータが、前記修正作業者による前記ウェブ・アプリケーション上の操作ログを参照して、修正作業中に遷移したウェブページ内のブロックのうち前記メタデータＭ１の前記ブロック情報と一致する１以上のブロックＢ０の各々に対し、該ブロックＢ０を含む前記ウェブページを出力した前記ウェブ・アプリケーションの状態を特定するグローバル変数群とクッキー情報とを含むメタデータを算出するステップと、
（ｃ）前記コンピュータが、前記メタデータＭ１と各ブロックＢ０とに対しそれぞれ求めた全ての前記グローバル変数群及び前記クッキー情報の各々をkey-valueのペア構造に変換して共通する部分を取り出し、取り出した前記共通する部分で前記メタデータＭ１の前記グローバル変数群及び前記クッキー情報を更新するステップと、
を含む支援方法。
【請求項２】
前記算出するステップ（ｂ）は、前記コンピュータが、前記メタデータＭ１の前記ブロック情報と一致する前記１以上のブロックＢ０を前記修正作業者に提示し、前記メタデータＭ１の前記操作情報が示す操作を適用可能であるブロックＳＢを選択させるサブステップ（ｂ−１）を含み、前記コンピュータは、選択された各ブロックＳＢに対し前記グローバル変数群と前記クッキー情報を含むメタデータの算出を行う、請求項１に記載の支援方法。
【請求項３】
前記更新するステップ（ｃ）は、前記コンピュータが、全ての前記グローバル変数群または全ての前記クッキー情報に共通に含まれるkeyを抜き出し、抜き出したkeyに対応するvalueが全ての前記グローバル変数群または全ての前記クッキー情報について同一であるkey-valueのペア構造を前記共通する部分として取り出すサブステップ（ｃ−１）を含む、請求項２に記載の支援方法。
【請求項４】
前記更新するステップ（ｃ）は、前記コンピュータが、前記グローバル変数群または前記クッキー情報に含まれる配列オブジェクトに対し、配列の要素の値を、該要素を取り出すキーと該要素の値とからなるkey-valueのペア構造に更に変換するサブステップ（ｃ−２）を含む、請求項３に記載の支援方法。
【請求項５】
前記更新するステップ（ｃ）は、前記コンピュータが、全ての前記グローバル変数群または全ての前記クッキー情報に共通に含まれるkeyに対応するvalueが配列オブジェクトである場合、該配列オブジェクトの各要素について前記サブステップ（ｃ−１）を行うサブステップ（ｃ−３）を含む、請求項４に記載の支援方法。
【請求項６】
前記更新するステップ（ｃ）は、前記コンピュータが、前記グローバル変数群または前記クッキー情報に含まれる階層オブジェクトを、変数を値としてもつ配列として取り扱うことでkey-valueのペア構造に変換するサブステップ（ｃ−４）を含む、請求項３に記載の支援方法。
【請求項７】
前記更新するステップ（ｃ）において、前記コンピュータは、単一情報からなる前記クッキー情報を、keyとvalueが同一のkey-valueのペア構造に変換する、請求項３に記載の支援方法。
【請求項８】
前記生成するステップ（ａ）において、前記コンピュータは、前記ウェブ・アプリケーションの状態を特定するのに有効であるとして予め前記コンピュータに設定されている種類のグローバル変数群及びクッキー情報についてそれぞれ値を求め、前記メタデータＭ１の前記適用条件とする、請求項２に記載の支援方法。
【請求項９】
前記動的なウェブ・アプリケーションの問題を修正するためのメタデータは、前記適用条件として、前記ブロック情報内で前記発生箇所を特定する位置特定情報を更に含み、
（ｄ）前記コンピュータが、前記修正作業者によるウェブ・アプリケーションの現在の問題の発生箇所の特定に応答して、前記発生箇所を含むブロック情報と、該ブロック情報内で前記発生箇所を特定する位置特定情報とを生成するステップと、
（ｅ）前記コンピュータが、生成した前記ブロック情報と前記位置特定情報を検索キーとして、一致するメタデータを過去に生成されたメタデータを格納するメタデータ格納部から取り出して前記修正作業者に提示し、前記修正作業者に前記現在の問題の発生箇所に適用可能なメタデータＭ０を選択させるステップと、
（ｆ）前記コンピュータが、選択された前記メタデータＭ０の操作情報を参照して、前記ウェブ・アプリケーションの前記現在の問題を修正するためのメタデータＭ２を生成するステップと、
を更に含む請求項１に記載の支援方法。
【請求項１０】
（ｇ）前記コンピュータが、前記メタデータＭ２を用いて前記メタデータＭ０の前記適用条件を汎化することにより既存の前記メタデータＭ０を更新するステップを更に含む、請求項９に記載の支援方法。
【請求項１１】
前記動的なウェブ・アプリケーションの問題を修正するためのメタデータは、前記適用条件として、前記問題が生じたウェブページの場所を特定するアドレス特定情報と、前記ブロック情報内で前記発生箇所を特定する位置特定情報と、前記問題の発生時における前記ブロック情報の前記ウェブページ内の位置を特定するブロック特定情報とを更に含み、
（ｈ）前記コンピュータが、現在の前記ウェブ・アプリケーションが出力したウェブページのアドレス情報と、前記ウェブ・アプリケーションの現在の状態を特定するグローバル変数群及びクッキー情報とを算出するステップと、
（ｉ）前記コンピュータが、算出した前記アドレス情報、前記グローバル変数群、及び前記クッキー情報を検索キーとして、一致するメタデータＭ０を過去に生成されたメタデータを格納するメタデータ格納部から取り出すステップと、
（ｊ）前記コンピュータが、取り出した前記メタデータＭ０の前記ブロック情報を、該メタデータＭ０のブロック特定情報から取り出される前記現在のウェブ・アプリケーションが出力した前記ウェブページ内の対応するブロックと比較し、一致しない場合に前記メタデータＭ０を前記修正作業者に提示して修正を促し、修正された前記ブロック特定情報を受け取るステップと、
（ｋ）前記メタデータＭ０の前記ブロック特定情報を、修正された前記ブロック特定情報を用いて汎化することにより既存の前記メタデータＭ０を更新するステップを更に含む、
請求項１に記載の支援方法。
【請求項１２】
動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援装置であって、
修正作業者によるウェブ・アプリケーションの問題の修正に応答して、前記問題を修正するための操作を示す操作情報と該操作情報の適用条件とを含むメタデータＭ１であって、前記適用条件として、ウェブページ内の前記問題の発生箇所を含む意味的にまとまりのあるブロック情報と、前記問題が発生する前記ウェブ・アプリケーションの状態を特定するグローバル変数群及びクッキー情報とを含む前記メタデータＭ１を生成するメタデータ生成部と、
前記修正作業者による前記ウェブ・アプリケーション上の操作ログを格納する操作ログ格納部と、
前記操作ログ格納部から読み出した前記操作ログを参照して、修正作業中に遷移したウェブページ内のブロックのうち前記メタデータＭ１の前記ブロック情報と一致する１以上のブロックＢ０の各々に対し、該ブロックＢ０を含む前記ウェブページを出力した前記ウェブ・アプリケーションの状態を特定するグローバル変数群とクッキー情報とを含むメタデータを算出する類似ブロック検索部と、
前記メタデータＭ１と各ブロックＢ０とに対しそれぞれ求めた全ての前記グローバル変数群及び前記クッキー情報の各々をkey-valueのペア構造に変換して共通する部分を取り出し、取り出した前記共通する部分で前記メタデータＭ１の前記グローバル変数群及び前記クッキー情報を更新するメタデータ汎化部と、
を含む支援装置。
【請求項１３】
前記動的なウェブ・アプリケーションの問題を修正するためのメタデータは、前記適用条件として、前記ブロック情報内で前記発生箇所を特定する位置特定情報を更に含み、
過去に生成されたメタデータを格納するメタデータ格納部と、
前記修正作業者によるウェブ・アプリケーションの現在の問題の発生箇所の特定に応答して、前記発生箇所を含むブロック情報と、該ブロック情報内で前記発生箇所を特定する位置特定情報とを生成するブロック抽出部と、
前記ブロック抽出部により生成された前記ブロック情報と前記位置特定情報とを検索キーとして、一致するメタデータを前記メタデータ格納部から取り出して前記修正作業者に提示し、前記現在の問題の発生箇所に適用可能な既存のメタデータＭ０を選択させる類似メタデータ検索部とを更に含み、
前記メタデータ生成部は、選択された前記既存のメタデータＭ０の操作情報を参照して、前記ウェブ・アプリケーションの現在の問題を修正するためのメタデータＭ２を生成する、
請求項１２に記載の支援装置。
【請求項１４】
前記メタデータ汎化部は、前記メタデータＭ２を用いて前記既存のメタデータＭ０の適用条件を汎化することにより前記既存のメタデータＭＳを更新する、請求項１３に記載の支援装置。
【請求項１５】
前記動的なウェブ・アプリケーションの問題を修正するためのメタデータは、前記適用条件として、前記問題が生じたウェブページの場所を特定するアドレス特定情報と、前記ブロック情報内で前記発生箇所を特定する位置特定情報と、前記問題の発生時における前記ブロック情報の前記ウェブページ内の位置を特定するブロック特定情報とを更に含み、
過去に生成されたメタデータを格納するメタデータ格納部と、
過去に生成されたメタデータの適用条件を検証するメタデータ検証部であって、前記ウェブ・アプリケーションの現在の状態を特定する前記アドレス特定情報、前記グローバル変数群、及び前記クッキー情報を検索キーとして、一致するメタデータＭ０を前記メタデータ格納部から取り出し、前記メタデータＭ０の前記ブロック情報を、該メタデータＭ０のブロック特定情報から取り出される前記現在の状態のウェブ・アプリケーションが出力した前記ウェブページ内の対応するブロックと比較し、一致しない場合に前記メタデータＭ０を前記修正作業者に提示して修正を促し、修正された前記ブロック特定情報を受け取る、前記メタデータ検証部とを更に含み、
前記メタデータ汎化部は、前記メタデータＭ０の前記ブロック特定情報を、修正された前記ブロック特定情報を用いて汎化することにより既存の前記メタデータＭ０を更新する、
請求項１２に記載の支援装置。
【請求項１６】
請求項１乃至１１のいずれか一項に記載の方法をコンピュータに実行させる、動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理技術に関係し、より詳しくは、動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理を支援する装置、方法、およびプログラムに関する。
【背景技術】
【０００２】
静的なウェブ・サイト上のアクセシビリティ問題を解決するために、ソーシャル・ネットワークの力を活用して外部メタデータを作成し、適用するプロジェクト（例えば、Ｓｏｃｉａｌ Ａｃｃｅｓｓｉｂｉｌｉｔｙ（ＳＡ、http://sa.watson.ibm.com/））やシステム（例えば、Ｗｅｂ Ａｃｃｅｓｓｉｂｉｌｉｔｙ Ｉｍｐｒｏｖｅｍｅｎｔ Ｓｙｓｔｅｍ（ＷＡＩＳ、http://wais−distr1.tori-info.co.jp/））が存在する。ここで、ＳＡを例にそのワークフローを説明する。ＳＡでは図１に示すようにまず、１）利用者６０はアクセスできないウェブページに遭遇すると、（２）そのウェブページ上の問題をソーシャル・アクセシビリティ・サーバ６５に報告する。続いて、（３）報告を受けたソーシャル・アクセシビリティ・サーバ６５は、ウェブページ上の問題をボランティア（サポータ）７０に通知し、サポータ７０は通知されたウェブページ上の問題をブラウザで確認する。続いて（４）サポータ７０は、ウェブページ上の問題を修正してメタデータを作成し、メタデータをソーシャル・アクセシビリティ・サーバ６５へ送る。最後に（５）利用者６０は、対応するメタデータをソーシャル・アクセシビリティ・サーバ６５から読み込み、これを用いて修正されアクセス可能となったウェブページをブラウズする。
【０００３】
ここでサポータ７０が作成するメタデータの構造は、非特許文献１において次のように定義されている。
・Ｕｎｉｆｏｒｍ Ｒｅｓｏｕｒｃｅ Ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）アドレス：メタデータを適用する文書を特定するターゲットＵＲＩ
・エレメント・アドレス：メタデータを適用するＨＴＭＬ要素の記述（一例としてＸＰａｔｈ）
・条件：メタデータの適用条件
・セマンティック：メタデータの意味
【０００４】
また、メタデータ等の修正情報を似通った別の問題に適用させるための技術が特許文献１〜３及び非特許文献２において開示されている。
【０００５】
特許文献１は、ＵＲＩパターンはワイルドカードを含むＵＲＩもしくは正規表現などであらわされ、ポインタはＸＰａｔｈや画像を指し示すためのＵＲＩ(ワイルドカードもしくは正規表現も含む)などによってあらわされることを開示する。特許文献１はまた、ページ間におけるメタデータの拡張方法として、あるページ内で同じデータを持つメタデータを選択し、複数のメタデータのＸＰａｔｈを一般化し類推される要素を選択し、選択された要素について、効果検証類似度及び予め設定しておいた閾値を用いてさらに要素を絞り込む技術を開示する。特許文献１はまた、ページ間におけるメタデータの拡張方法として、あるメタデータのＸＰａｔｈについて他のページでも評価できるページを選択し、選択されたページでメタデータが適用される要素を選択し、選択された要素について効果検証類似度及び予め設定しておいた閾値を用いて要素を絞り込む技術を開示する。
【０００６】
特許文献２は、ウェブページのアクセシビリティが適切であるかどうかについて人間が診断した場合、この診断結果を蓄積し、次に同じデザインが見つかれば、以前の診断を元に、診断の結果を示す技術を開示する。
【０００７】
特許文献３は、アノテーションデータにおけるコンテンツの構成要素に対する変換内容の記述を、ＸＰａｔｈにより、このコンテンツの構成要素のレイアウトに対応付けておき、アノテーションファイルの選択は、ＸＰａｔｈが当該ウェブコンテンツに適用可能かどうか、すなわち、当該ウェブコンテンツ中のグループ（ヘッダー、フッター、リンクリスト、本文、広告など、ウェブコンテンツ背景色などのレイアウトで表現されているビジュアルな意味のかたまり）に対して正しくＸＰａｔｈが当たっているかどうかを判定して行う技術を開示する。また特許文献３は、ＵＲＬの正規表現を用いる従来手法では、ウェブコンテンツがクッキー等を用いて動的にレイアウト変更する場合に対応できないことを指摘する。
【０００８】
非特許文献２は、ｉｄ表現、タグの名前、インデックスを含む属性といった観点からペアとなる２つのＸＰａｔｈを比較して最大の共通部分を抜き出すことにより、汎用的なＸＰａｔｈを生成する技術を開示する。
【０００９】
なお、特許文献４は、ＤＨＴＭＬを利用したウェブページにおける状態遷移を動的に解析する手法に関する文献であるが、ウェブページ内の状態を取得するのに、ｊａｖａ（登録商標）ｓｃｒｉｐｔ内のグローバル変数（プログラム全体に対して定義される変数）の値を利用可能なことを開示する。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特開２０１１−２２８６４号公報（第９頁、第１２−１３頁、図４、図８、図１３）
【特許文献２】特開２０１０−２５０７７７号公報  （第３−４頁）
【特許文献３】特開２００３−８５０８７号公報（第４−７頁）
【特許文献４】特開２００７−１７２３７７号公報（第５頁）
【非特許文献】
【００１１】
【非特許文献１】Shinya Kawanaka、Yevgen Borodin、Jeffrey P. Bigham、Darren Lunn、Hironobu Takagi、Chieko Asakawa、“Accessibility commons: a metadata repository for web accessibility”, ACM Conference on Assistive Technologies Assets、pp.153-160、2008
【非特許文献２】Daisuke Sato、Hironobu Takagi、Masatomo Kobayashi、Shinya Kawanaka、Chieko Asakawa、“Exploratory Analysis of Collaborative Web Accessibility Improvement”、ACM Transactions on Accessible Computing, Volume 3、Issue 2、November 2010
【発明の概要】
【発明が解決しようとする課題】
【００１２】
ここで、上述した従来技術を利用して、ｊａｖａ（登録商標）ｓｃｒｉｐｔが多用されるような動的なウェブ・アプリケーションにおける様々な問題をメタデータにより解決することを考える。動的なウェブ・アプリケーションではＵＲＬが同一でもコンテンツが異なることが起こりえるため、そのような動的なウェブ・アプリケーションを対象とするためには、ウェブ・アプリケーションの状態を正しく認識し、メタデータの適用条件を効率よく拡張する必要がある。上述したように、特許文献３及び４には、動的なウェブ・アプリケーションの状態を認識するために、グローバル変数やクッキー情報を利用できることが記載または示唆されている。しかしながら、その拡張方法については記載がなく、従来のメタデータの拡張技術を組み合わせただけではグローバル変数やクッキー情報を拡張できない。
【００１３】
また、上記従来技術では、新しい問題に適用可能な既存のメタデータの検出方法や、生成したメタデータを適用可能な同一ページ内または別ページ内の他の適用箇所の人手によらない具体的な検出方法が開示されていない。そのためそのような既存のメタデータや他の適用箇所を修正作業者に選択させるとしても、選択のために、実際は適用できない既存のメタデータを提示したり、生成したメタデータの適用条件の拡張に不要な他の適用箇所を多く提示したりといった問題が生ずる。
【００１４】
本発明は、上記従来技術における問題点に鑑みてなされたものであり、本発明は、動的なウェブ・アプリケーションを対象にして、様々な問題の解決に適用可能な新たなメタデータを生成し、その新たなメタデータの適用条件を拡張し、その結果新たなメタデータの再利用性を高めて効率よく管理できるようにするための方法、装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明では、上記従来技術の課題を解決するために、動的なウェブアプリケーションを対象にして、様々な問題の解決に適用可能なメタデータを新たに定義する。そのようなメタデータは、問題を修正するための操作を示す操作情報と該操作情報の適用に関する適用条件とを含み、適用条件として、問題が生じたウェブページの場所を特定するアドレス特定情報（条件ａ）と、ウェブ・アプリケーションの状態を特定するグローバル変数群（条件ｂ）と、ウェブ・アプリケーションの状態を特定するクッキー情報（条件ｃ）と、ウェブページ内の問題の発生箇所を含む意味的にまとまりのあるブロック情報（条件ｄ）と、問題の発生時におけるブロック情報のウェブページ内の位置を特定するブロック特定情報（条件ｅ）と、ブロック情報内で問題の発生箇所を特定する位置特定情報（条件ｆ）とを含む。ここで条件ｂ、ｃ、ｄは、非特許文献１により開示されるメタデータ構造にはない新規な項目であり、条件ｅ、ｆは、非特許文献１により開示されるエレメント・アドレスを拡張したものである。
【００１６】
そして本発明は、新たに定義したメタデータの適用条件を汎化してこれを効率的に管理するために、以下の特徴を有するメタデータの生成・管理を支援する方法を提供する。本発明の支援する方法は、（ａ）前記コンピュータが、修正作業者によるウェブ・アプリケーションの問題の修正に応答して、前記問題を修正するための操作を示す操作情報と該操作情報の適用条件とを含むメタデータＭ１であって、前記適用条件として、ウェブページ内の前記問題の発生箇所を含む意味的にまとまりのあるブロック情報と、前記問題が発生する前記ウェブ・アプリケーションの状態を特定するグローバル変数群及びクッキー情報とを含む前記メタデータＭ１を生成するステップと、（ｂ）前記コンピュータが、前記修正作業者による前記ウェブ・アプリケーション上の操作ログを参照して、修正作業中に遷移したウェブページ内のブロックのうち前記メタデータＭ１の前記ブロック情報と一致する１以上のブロックＢ０の各々に対し、該ブロックＢ０を含む前記ウェブページを出力した前記ウェブアプリケーションの状態を特定するグローバル変数群とクッキー情報とを含むメタデータを算出するステップと、（ｃ）前記コンピュータが、前記メタデータＭ１と各ブロックＢ０とに対しそれぞれ求めた全ての前記グローバル変数群及び前記クッキー情報の各々をkey-valueのペア構造に変換して共通する部分を取り出し、取り出した前記共通する部分で前記メタデータＭ１の前記グローバル変数群及び前記クッキー情報を更新するステップとを含む。
【００１７】
好ましくは、算出するステップ（ｂ）は、コンピュータが、メタデータＭ１のブロック情報と一致する１以上のブロックＢ０を修正作業者に提示し、メタデータＭ１の操作情報が示す操作を適用可能なブロックＳＢを選択させるサブステップ（ｂ−１）を含み、前記コンピュータは、選択された各ブロックＳＢに対し前記グローバル変数群と前記クッキー情報を含むメタデータの算出を行う。
【００１８】
より好ましくは、更新するステップ（ｃ）は、コンピュータが、全てのグローバル変数群または全てのクッキー情報に共通に含まれるkeyを抜き出し、抜き出したkeyに対応するvalueが全てのグローバル変数群または全てのクッキー情報について同一であるkey-valueのペア構造を共通する部分として取り出すサブステップ（ｃ−１）を含む。
【００１９】
更に好ましくは、更新するステップ（ｃ）は、コンピュータが、グローバル変数群またはクッキー情報に含まれる配列オブジェクトに対し、配列の要素の値を、該要素を取り出すキーと該要素の値とからなるkey-valueのペア構造に更に変換するサブステップ（ｃ−２）を含む。
【００２０】
更に好ましくは、更新するステップ（ｃ）は、コンピュータが、全てのグローバル変数群または全てのクッキー情報に共通に含まれるkeyに対応するvalueが配列オブジェクトである場合、該配列オブジェクトのkey-valueのペア構造に変換された各要素についてサブステップ（ｃ−１）を行うサブステップ（ｃ−３）を含む。
【００２１】
また好ましくは、更新するステップ（ｃ）において、コンピュータは、単一情報からなるクッキー情報を、keyとvalueが同一のkey-valueのペア構造に変換する。
【００２２】
また好ましくは、生成するステップ（ａ）において、コンピュータは、ウェブ・アプリケーションの状態を特定するのに有効であるとして予め上記コンピュータに設定されている種類のグローバル変数群及びクッキー情報についてそれぞれ値を求め、メタデータＭ１の適用条件とする。
【００２３】
また好ましくは、（ｄ）コンピュータが、修正作業者によるウェブ・アプリケーションの現在の問題の発生箇所の特定に応答して、発生箇所を含むブロック情報と、該ブロック情報内で発生箇所を特定する位置特定情報とを生成するステップと、（ｅ）コンピュータが、生成したブロック情報と位置特定情報とを検索キーとして、一致するメタデータを過去に生成されたメタデータを格納するメタデータ格納部から取り出して修正作業者に提示し、修正作業者にステップ（ｄ）で特定された現在の問題の発生箇所に適用可能なメタデータＭ０を選択させるステップと、（ｆ）コンピュータが、選択されたメタデータＭ０の操作情報を参照して、ウェブ・アプリケーションの現在の問題を修正するためのメタデータＭ２を生成するステップとを更に含む。
【００２４】
より好ましくは、（ｇ）コンピュータが、メタデータＭ２を用いてメタデータＭ０の適用条件を汎化することにより既存のメタデータＭ０を更新するステップを更に含む。
【００２５】
また好ましくは、（ｈ）コンピュータが、現在のウェブ・アプリケーションが出力したウェブページのアドレス情報と、ウェブ・アプリケーションの現在の状態を特定するグローバル変数群及びクッキー情報とを算出するステップと、（ｉ）コンピュータが、算出したアドレス情報、グローバル変数群、及びクッキー情報を検索キーとして、一致するメタデータＭ０を過去に生成されたメタデータを格納するメタデータ格納部から取り出すステップと、（ｊ）コンピュータが、取り出したメタデータＭ０のブロック情報を、該メタデータＭ０のブロック特定情報から取り出される現在のウェブ・アプリケーションが出力したウェブページ内の対応するブロックと比較し、一致しない場合にメタデータＭ０の修正を修正作業者に促し、修正されたブロック特定情報を受け取るステップと、（ｋ）メタデータＭ０のブロック特定情報を、修正されたブロック特定情報を用いて汎化することにより既存のメタデータＭ０を更新するステップを更に含む。
【００２６】
以上、動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理を支援する方法として本発明を説明した。しかし本発明は、そのような方法をコンピュータに実行させるための支援プログラム、及びそのような支援プログラムをコンピュータにインストールして実現される支援装置として把握することもできる。
【発明の効果】
【００２７】
本発明によれば、メタデータの適用条件としてウェブ・アプリケーションの状態を特定するグローバル変数群及びクッキー情報を含むメタデータを生成するので、動的なウェブアプリケーションにおける問題点を、メタデータを用いて解決することが可能となる。また本発明によれば、メタデータの適用条件に更にウェブページ内の問題の発生箇所を含む意味的にまとまりのあるブロック情報を含めるので、ブロック情報を手掛かりに、生成したメタデータを適用可能なウェブページ内の他のブロックをコンピュータの演算処理により見つけ出すことが可能となる。そして本発明によれば、適用条件としてのブロックとこれに類似する他のブロックにそれぞれ対応するグローバル変数群及びクッキー情報の各々をkey-valueのペア構造に変換するので、グローバル変数群及びクッキー情報それぞれの集合について共通する部分を取り出すことが可能となり、グローバル変数群及びクッキー情報の適用条件を拡張することが可能となる。本願発明のその他の効果については、各実施の形態の記載から理解される。
【図面の簡単な説明】
【００２８】
【図１】ＳＡのワークフローを説明する図である。
【図２】本発明の実施形態による支援装置２００の機能ブロック図である。
【図３】（ａ）は、あるサイトのＴＯＰ画面を示す図である。（ｂ）は、図３（ａ）に示す画面のＨＴＭＬ  ＤＯＭツリー構造を示す図である。
【図４】本発明の第１実施例のシナリオの一例を示す図である。
【図５】本発明の第１実施例における汎化前後のメタデータの一例を示す図である。
【図６】（ａ）は、本発明の第１実施例によるメタデータの生成及び管理処理の前半の処理の流れを示すフローチャートである。（ｂ）は、本発明の第１実施例によるメタデータの生成及び管理処理の後半の処理の流れを示すフローチャートである。
【図７】本発明の第１実施例におけるブロック抽出処理の流れを示すフローチャートである。
【図８】本発明の第１実施例における類似ブロック検索処理の流れを示すフローチャートである。
【図９】本発明の第１実施例における汎化処理の流れを示すフローチャートである。
【図１０】本発明の第２実施例のシナリオの一例を示す図である。
【図１１】本発明の第２実施例における汎化前後のメタデータの一例を示す図である。
【図１２】本発明の第２実施例によるメタデータの生成及び既存のメタデータの汎化処理の後半の処理の流れを示すフローチャートである。
【図１３】本発明の第２実施例における類似メタデータ検索処理の流れを示すフローチャートである。
【図１４】本発明の第３実施例のシナリオの一例を示す図である。
【図１５】本発明の第３実施例による既存のメタデータの微調整処理の流れを示すフローチャートである。
【図１６】本発明の第３実施例における微調整が必要な既存メタデータ検索処理の流れを示すフローチャートである。
【図１７】本発明の実施形態による支援装置２００を実現するのに好適な情報処理装置のハードウェア構成の一例を示す。
【発明を実施するための形態】
【００２９】
以下、本願発明を実施するための形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
【００３０】
図２は、本発明が適用されるコンピュータを含むネットワークシステム（ソーシャル・ア
クセシビリティ・システム）の一実施態様及び本発明の実施形態による支援装置２００の機能ブロックを示す。本システムは、メタデータ管理サーバ２０２、ウェブ・サーバ２５５、問題データベース２６０、開発者ＰＣ２６５、修正作業者ＰＣ２７０を備える。これらはインターネット等のネットワーク２６２を介して互いに通信可能に接続されている。また、メタデータ管理サーバ２０２上では支援装置２００が動作し、ウェブ・サーバ２５５上ではウェブ・アプリケーション２５０が動作する。
【００３１】
本発明では、利用者のウェブ・ブラウザ上に静的なウェブ・サイトの情報を表示するだけの単純なウェブ・アプリケーションから、ｊａｖａ（登録商標）ｓｃｒｉｐｔ等の技術を用いてページ遷移を伴わずにウェブ・ブラウザ上の情報を動的に更新する動的なウェブ・アプリケーションまでのほぼ全てのウェブ・アプリケーションを対象とする。従って図２に示すウェブ・アプリケーション２５０の種類に特に制限はなく、以下では本発明が対象とするウェブ・サーバ２５５上のウェブ・アプリケーション２５０を総称してＲｉｃｈ  ｉｎｔｅｒｎｅｔ  ａｐｐｌｉｃａｔｉｏｎ（ＲＩＡ）２５０とよぶ。
【００３２】
また本発明では、ＲＩＡ２５０の開発者（開発者ＰＣ２６５）のみならずＲＩＡ２５０上の問題点を修正する修正作業者（修正作業者ＰＣ２７０）の存在を仮定する。修正作業者は開発者自身であってもよいし、ＲＩＡ２５０に造詣の深い専門知識を持った専門家や利用者であってもよい。更に本発明では、既存の技術を活用した方法によってＲＩＡ２５０上の問題点がまとめられた問題データベース（ＤＢ）２６０が存在するものとする。問題ＤＢ２６０としては、Ｂｕｇｚｉｌｌａ（詳細は、http://www.bugzilla.org/を参照）などのバグトラッキングシステムを利用できる。修正作業者は修正作業者ＰＣ２７０にインストールされたウェブ・ブラウザを用いてネットワーク２６２を介してＲＩＡ２５０にアクセスすると、問題ＤＢ２６０に登録されている問題Ｐ１を参照して、（１）問題Ｐ１の発生箇所の特定を行い、（２）問題Ｐ１の修正を行う。修正結果は、ＳＡにおけるソーシャル・アクセシビリティ・サーバ６５に相当するメタデータ管理サーバ２０２によって管理される。
【００３３】
本発明の実施形態による支援装置２００は、このような修正作業者による修正作業に応答して起動され、修正作業者が修正結果をメタデータとして生成し、メタデータの適用条件を汎化し及び検証することを支援する。支援装置２００は、メタデータ管理サーバ２０２上に実装され、メタデータ管理サーバ２０２の一部として動作する。メタデータ管理サーバ２０２は、後述する支援装置２００の各構成要素のほかに、図示しない、基本的な機能を提供するオペレーション・システムと、ウェブ・ブラウザと、修正作業者ＰＣ２７０上で動作するウェブ・ブラウザのプラグイン若しくは単体アプリケーションとの通信機能を果たす通信部とを備える。ここで、修正作業者ＰＣ２７０上で動作するウェブ・ブラウザのプラグイン若しくは単体アプリケーションは、編集作業者の操作ログ取得、問題の解決に適用可能なメタデータの提示及び選択、手動での問題解決、作成されたメタデータを適用可能なＲＩＡ２５０の状態およびブロックの表示及び選択、現在のＲＩＡ２５０の状態で正しく適用できないメタデータの表示、及び正しい適用位置の選択又は削除を支援する。詳細は支援装置２００の機能に関連して後述する。なお、メタデータ管理サーバ２０２とウェブ・サーバ２５５は同一サーバ上に実装してもよく、また、これらを開発者ＰＣ２６５や修正作業者ＰＣ２７０上で動作させる構成を採用してもよい。更に、修正作業者ＰＣ２７０は、支援装置２００とのユーザインタフェースとして機能する図示しないウェブ・ブラウザを備え、メタデータ管理サーバ２０２は、修正作業者ＰＣ２７０上で動作するウェブ・ブラウザのプラグインとして、或いは、単体アプリケーションとして実装してもよい。以下では、メタデータ管理サーバ２０２とウェブ・サーバ２５５は同一サーバ上に実装されるものとして説明する。この場合、修正作業者のＲＩＡ２５０に関連する操作は、上述した修正作業者ＰＣ２７０上で動作するウェブ・ブラウザのプラグイン若しくは単体アプリケーションにより、上述したメタデータ管理サーバ２０２の通信部を経由して支援装置２００へ通知される。逆もまた同様である。
【００３４】
より具体的には、支援装置２００は、汎化対象設定部２０５を含み、汎化対象設定部２０５は、開発者がメタデータ管理サーバ２０２にネットワーク２６２を介して接続された開発者ＰＣ２６５を介して、ＲＩＡ２５０の状態を特定するのに有効なグローバル変数群及びクッキー情報の種類を汎化対象ＤＢ２１０に登録するのを可能にする。また、支援装置２００は操作ログ記録部２１５を含み、操作ログ記録部２１５は、修正作業者による修正対象とするＲＩＡ２５０へのアクセスに応答して、問題発生箇所の特定作業の間、修正作業者ＰＣ２７０上の操作情報を取得し、操作ログＤＢ２２０に記録する。
【００３５】
支援装置２００はまた、メタデータ生成部２２５と、ブロック抽出部２３０と、類似ブロック検索部２３５と、メタデータ汎化部２４５とを含み、修正作業者による問題Ｐ１の修正に応答して、該問題Ｐ１の修正内容を含むメタデータＭ１を本発明において新たに定義したメタデータの構造に従って生成するとともに、問題Ｐ１の発生箇所を含む意味的にまとまりのあるブロックを手掛かりに、生成したメタデータＭ１を適用可能な他のブロックを操作ログＤＢ２２０から抽出し、これを用いて生成したメタデータＭ１の適用条件を汎化してメタデータＤＢ２４０に格納する（第１実施例）。
【００３６】
支援装置２００は更に類似メタデータ検索部２５０を含み、修正作業者による問題Ｐ１の発生箇所の特定に応答して、問題Ｐ１の発生箇所を含む意味的にまとまりのあるブロックを手掛かりにメタデータＤＢ２４０から問題Ｐ１に適用可能な既存のメタデータＭ０を検索し、検索した既存のメタデータＭ０を利用して問題Ｐ１を修正するためのメタデータＭ１を生成するとともに、生成したメタデータＭ１を用いて検索した既存のメタデータＭ０を汎化してメタデータＤＢ２４０に格納する（第２実施例）。
【００３７】
支援装置２００は更にまたメタデータ検証部２５５を含み、修正作業者ＰＣ２７０からの要求によりＲＩＡ２５０の状態が変化するごとに、変化後のＲＩＡ２５０の状態に適用可能な既存のメタデータＭ０をメタデータＤＢ２４０から検索し、検索した既存のメタデータＭ０の適用条件に基づき決定される現在のＲＩＡ２５０の状態におけるウェブページ内のブロックが、本来意図されたブロックと一致しない場合に、既存のメタデータＭ０の適用条件の修正を修正作業者に促し、修正作業者によって入力された修正情報に基づきメタデータＤＢ２４０内の既存のメタデータを更新する（第３実施例）。
【００３８】
以下、支援装置２００の各構成要素の詳細を、上記第１から第３の実施例に沿って順に説明する。  
【実施例１】
【００３９】
第１実施例は、修正作業者が支援装置２００を利用して、操作情報を記録しながらＲＩＡ２５０上の問題Ｐ１を新たに解決してメタデータＭ１を生成するとともに、操作ログを活用して生成したメタデータＭ１を他の箇所にも適用可能に拡張するというシナリオに沿ったものである。修正作業者は、問題ＤＢ２６０から取得したＲＩＡ２５０上の問題リストを参照し、ある問題Ｐ１について修正方法を思いつくと、ウェブ・ブラウザを起動してＲＩＡ２５０にアクセスする。すると該アクセスがメタデータ管理サーバ２０２の一部として動作する支援装置２００に検出され、メタデータ生成部２２５が呼び出される。呼び出されたメタデータ生成部２２５は修正作業者によるウェブ・ブラウザを介したＲＩＡ２５０上での操作を監視して、修正作業者が、問題Ｐ１が発生するＲＩＡ２５０の状態を特定するのを待つ。
【００４０】
ここでＲＩＡ２５０の状態とは、次の情報により特定されるものである。
Ａ．ＲＩＡ２５０が出力するＨＴＭＬ文書（ウェブページともいう）の場所を特定するＵＲＬ
Ｂ．ウェブ・ブラウザ上でｊａｖａ（登録商標）ｓｃｒｉｐｔがアクセス可能なグローバル変数群（但し、以下のＤと関数を表す変数を除く）
Ｃ．ＲＩＡ２５０に関連したクッキー情報
Ｄ．Ｄｏｃｕｍｅｎｔ  Ｏｂｊｅｃｔ  Ｍｏｄｅｌ（ＤＯＭ）で定義されるＨＴＭＬ文書
但し、ＢとＣについては、ＢとＣに属する全ての情報を単純に利用するだけではＲＩＡ２５０の状態をうまく特定できない可能性がある。そこで本発明では、上述したように、汎化対象設定部２０５と汎化対象ＤＢ２１０とを用意し、開発者が予め支援装置２００に対しＲＩＡ２５０の状態を特定するために有効なグローバル変数群及びクッキー情報の種類を設定できるようにした。
【００４１】
即ち、汎化対象設定部２０５は、開発者ＰＣ２６５からネットワーク２６２を介して送信されたグローバル変数群及びクッキー情報の種類を示す情報を受信すると、これを同じく開発者ＰＣ２０２から送信されたＲＩＡ２５０の識別情報に関連付けて汎化対象ＤＢ２１０に格納する。そして、メタデータ生成部２２５は呼び出されると最初に汎化対象ＤＢ２１０にアクセスし、修正作業者ＰＣ上のウェブ・ブラウザが現在アクセスしているＲＩＡ２５０に関連付けられたグローバル変数群及びクッキー情報の種類を示す情報を検索し、あればそれを作業領域に読み出す。なお、以下ではＤＯＭで定義されるＨＴＭＬ文書を単にＨＴＭＬ  ＤＯＭと呼ぶ。
【００４２】
メタデータ生成部２２５は、修正作業者が問題Ｐ１が発生するＲＩＡ２５０の状態に到達し、該状態におけるＨＴＭＬ  ＤＯＭの中から問題Ｐ１が発生する箇所を特定したことを検出すると、ブロック抽出部２３０を呼び出し、問題Ｐ１の発生時のＨＴＭＬ  ＤＯＭから問題Ｐ１の発生箇所を含む意味的にまとまりのあるブロックＢ１を抽出する。問題Ｐ１の発生箇所を含む意味的にまとまりのあるブロックＢ１は、ＨＴＭＬ  ＤＯＭ内の問題Ｐ１の発生箇所である要素を含むサブツリーと言い換えることもできる。なお、サブツリーは、問題Ｐ１の発生箇所である要素を含めばよく、そのサイズに制約はない。抽出されたブロックＢ１情報は、メタデータ生成部２２５に渡され、作業領域に一時保存される。
【００４３】
ブロック抽出部２３０は、メタデータ生成部２２５により呼び出されると、問題Ｐ１が発生するＲＩＡ２５０の状態におけるＨＴＭＬ  ＤＯＭを、既存のブロック抽出手法を利用して複数のブロックに分割し、分割した複数のブロックから、問題Ｐ１の発生箇所である要素を含むブロックＢ１を抽出する。ここで、ブロック抽出手法としては、例えば、Ｊ．Ｍａｈｍｕｄ、外２名、“Ｃｓｕｒｆ：Ａ  Ｃｏｎｔｅｘｔ−Ｄｒｉｖｅｎ  Ｎｏｎ−Ｖｉｓｕａｌ  Ｗｅｂ−Ｂｒｏｗｓｅｒ，Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １６ｔｈ  Ｉｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  ＷｏｒｌｄＷｉｄｅＷｅｂ、２００７や、Ｙ．  Ｌａｎ、外２名、“Ｅｌｉｍｉｎａｔｉｎｇ  ｎｏｉｓｙ  ｉｎｆｏｒｍａｔｉｏｎ  in  Ｗｅｂ ｐａｇｅｓ  ｆｏｒ  ｄａｔａ ｍｉｎｉｎｇ”、 Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ｎｉｎｔｈ  ＡＣＭ ＳＩＧＫＤＤ ｉｎｔｅｒｎａｔｉｏｎａｌ  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｋｎｏｗｌｅｄｇｅ（ＫＤＤ‘０３） ｄｉｓｃｏｖｅｒｙ  ａｎｄ  ｄａｔａ  ｍｉｎｉｎｇ、ｐｐ．２９６−３０５、２００３等に開示される既存の手法を利用できる。
【００４４】
以下、Ｊ．Ｍａｈｍｕｄ等によって提案されたブロック抽出手法を利用したブロックＢ１の抽出方法を説明する。なお、Ｊ．Ｍａｈｍｕｄ等によって提案されたブロック抽出手法は、ＨＴＭＬ  ＤＯＭ構造のみならず、意味的な情報からブロックＢ１を抽出するが、ここではより簡単なＨＴＭＬ  ＤＯＭ構造のみからブロックＢ１の抽出方法を説明する。（１）ＨＴＭＬ  ＤＯＭ上で修正箇所である要素Ｅを特定する。（２）要素ＥがＤＯＭツリーのルートに該当する場合は要素ＥそのものをブロックＢ１として特定を終了する。（３）要素ＥがＤＯＭツリーのルートではない場合、要素Ｅの親要素Ｅｐを決定する。（４）親要素Ｅｐの子要素を調べる。親要素Ｅｐが２以上の子要素を持ち、かつその子要素同士の構造上の類似性が高いと判断される場合、親要素ＥｐをブロックＢ１として特定を終了する。（５）（４）において親要素Ｅｐの子要素構造に類似性があると判断できない場合、Ｅ＝Ｅｐとして（２）の処理に戻る。
【００４５】
（４）における子要素同士の構造上の類似性の判断には、いくつかのアルゴリズムがあるが、本実施例では要素の属性の類似性を利用する。例えば、子要素同士が同一のＣｌａｓｓ属性を持つ場合、システム内部では同一の構造を持つ要素として定義されているため、類似性が高いと判断できる。また、子要素同士が同種のＩＤ属性を持つ場合、システムによっては内部である規則に基づいてＩＤを生成しているため、類似性が高いと判断できる。なお、上記類似性の判断はあくまで例として説明したものであり他の類似性の判断手法の利用を制限するものではないことに留意されたい。
【００４６】
以上のようにしてブロック抽出部２３０により抽出されるブロックＢ１は、コンピュータ内部において、ＨＴＭＬ  ＤＯＭのサブツリーとして保持される。図３に例を示す。図３（ａ）はあるサイトのＴＯＰ画面３００を示し、図３（ｂ）は、図３（ａ）に示すＴＯＰ画面３００のＨＴＭＬ  ＤＯＭツリー構造３１５を示す。ここで、矩形３０５により囲まれた箇所において問題Ｐ１が発生し、ブロック抽出部２３０が矩形３１０で囲まれたブロックＢ１を抽出したとすると、コンピュータ内部には、図３（ａ）の矩形３１０で囲まれたブロックＢ１に対応する図３（ｂ）の矩形３２５に囲まれたＨＴＭＬ  ＤＯＭのサブツリー情報がブロックＢ１情報として保持される。図３（ｂ）の矩形３２５に囲まれたＨＴＭＬ  ＤＯＭのサブツリー情報には、図３（ａ）に示す矩形３０５の問題Ｐ１の発生箇所に対応する、ＨＴＭＬ  ＤＯＭのサブツリーの要素３２０が含まれる。なお、ブロックはどの位置に移動されてもＨＴＭＬ  ＤＯＭのサブツリーとして表されるため、ブロック情報は位置の移動によって変化しないことに留意されたい。
【００４７】
メタデータ生成部２２５はまた、修正作業者による修正対象とするＲＩＡ２５０へのアクセスに応答して、操作ログ記録部２１５を呼び出して、問題Ｐ１の発生箇所の特定に至るまでの間の修正作業者によるＲＩＡ２５０上の操作ログＬ１と、問題Ｐ１の発生箇所の特定後、問題Ｐ１が解決されるまでの修正作業者によるＲＩＡ２５０上の操作ログＬ２とを記録する。Ｌ１とＬ２は同じ一連の操作ログとして取り扱われる。なお、問題Ｐ１の解決は、ウェブ・サイトのＣＳＳ、ＨＴＭＬ、ＸＭＬ、ＤＯＭ、jａｖａ（登録商標）sｃｒｉｐｔ等の記述や修正、デバックを行う機能を提供するＦｉｒｅｂｕｇ（詳細は、http：//getfirebug．com/を参照）のようなツールを利用して修正作業者が手動により行ってよい。これに代えて、問題Ｐ１の解決は、既存のメタデータから現在の問題Ｐ１に適用可能なメタデータを検索することにより行ってもよい。但し、その場合であっても、適用可能なメタデータが存在しない場合は上述のように修正作業者が手動により修正を行う。本実施例では、問題Ｐ１の解決は、修正作業者が手動により行うものとする。なお、既存のメタデータを利用した問題Ｐ１の解決については実施例２において説明する。
【００４８】
操作ログ記録部２１５は、メタデータ生成部２２５により呼び出されると、問題Ｐ１の発生箇所が特定されるまで、ＲＩＡ２５０の状態が変化するごとにＲＩＡ２５０の状態や修正作業者のＲＩＡ２５０上の操作ログＬ１を取得して操作ログＤＢ２２０に格納する。また、操作ログ記録部２１５は、問題Ｐ１の発生箇所の特定後、問題Ｐ１が解決されるまで、ＲＩＡ２５０の状態が変化するごとにＲＩＡ２５０の状態や修正作業者のＲＩＡ２５０上の操作ログＬ２を取得して操作ログＤＢ２２０に格納する。操作ログ記録部２１５が取得する操作ログＬ１は、１．修正作業者が修正対象のＲＩＡ２５０にアクセスしてから問題Ｐ１の発生箇所を特定するまでの全てのＲＩＡ２５０の状態、２．問題Ｐ１の発生箇所を指定する位置指定情報を含む。また、操作ログ記録部２１５が取得する操作ログＬ２は、３．問題Ｐ１の修正内容を含む。以下操作ログの情報１．〜３．の内容を順に説明する。
【００４９】
１．問題発生箇所の特定修正作業中に遷移したＲＩＡ２５０の各状態をＡＳｉ（ｉ＝１、２、…、ｎ、ｎ：遷移したＲＩＡ２５０の状態数）で表すと、各ＡＳｉは、上述したＲＩＡ２５０の状態を特定するための情報Ａ〜Ｄの組み合わせで表現される。なお、情報Ｂ及び情報Ｃについては、作業領域にＲＩＡ２５０の状態を特定するために有効なグローバル変数群及びクッキー情報の種類を示す情報が存在する場合には、該種類についてのみグローバル変数群及びクッキー情報の値を取得する。本操作ログは、現在の問題Ｐ１の修正内容を適用可能な他の箇所を探す際の手掛かりとして後述する類似ブロック検索部２３５により用いられる。
【００５０】
２．修正作業者がウェブ・ブラウザ上でマウス等の入力装置を用いて問題Ｐ１の発生箇所の特定を行う場合は、特定されたＤＯＭ中の要素をＸＰａｔｈや画像を指し示すＵＲＩ等のポインタで指定し、位置指定情報とする。かかる情報はウェブ・ブラウザから取得してよい。これに代えて、問題ＤＢ２６０に格納された問題Ｐ１の記述情報を流用してもよく、この場合、問題Ｐ１の記述情報（ＤＯＭ中の要素を指し示すＸＰａｔｈや画像を指し示すＵＲＩ等のポインタ）がそのまま位置指定情報として利用される。
【００５１】
３．Ｆｉｒｅｂｕｇのような既存のツールを利用して問題Ｐ１の発生箇所に対してなされた操作情報を修正内容とする。即ち、修正のための操作情報であって、修正対象（例えば、ＤＯＭツリーのノード、属性、ファイル等）を指定する情報と修正対象に対する修正内容（例えば、挿入、削除、更新等、挿入及び更新については挿入内容や置換内容を含む）を記録する。上記操作ログの情報２．及び３．は、メタデータを生成するメタデータ生成部２２５により用いられる。
【００５２】
メタデータ生成部２２５は、操作ログ記録部２１５による操作ログＬ１及びＬ２の記録が終了すると、操作ログＤＢ２２０に格納された操作ログＬ１及びＬ２を読み出して、現在の問題Ｐ１に対するメタデータＭ１を生成し、メタデータＤＢ２４０に格納する。以下、本発明において新たに定義するメタデータＭ１のデータ構造と各データの取得方法とを説明する。メタデータＭ１は、問題Ｐ１を修正するための操作を示す操作情報と該操作情報の適用に関する適用条件を含む。最初に適用条件としての条件ａ〜条件ｆを説明し、その後に操作情報について説明する。なお、メタデータの適用条件は、問題Ｐ１が発生する箇所を特定するための情報として捉えることができる。
【００５３】
条件ａ：問題が生じたウェブページの場所を特定するアドレス特定情報、即ちＵＲＬ。該情報は、操作ログＬ１の情報１のＲＩＡ２５０の最後の状態ＡＳｎに含まれる情報Ａとして取得される。なお、取得したＵＲＬは、プロトコル、ドメイン、フォルダ＋ファイル、パラメータに分けて管理する。
【００５４】
条件ｂ：問題が発生した状態におけるＲＩＡ２５０に関連したグローバル変数群。該情報は、操作ログＬ１の情報１のＲＩＡ２５０の最後の状態ＡＳｎに含まれる情報Ｂとして取得される。
【００５５】
条件ｃ：問題が発生した状態におけるＲＩＡ２５０に関連したクッキー情報。該情報は、操作ログＬ１のＲＩＡ２５０の最後の状態ＡＳｎに含まれる情報Ｃとして取得される。
【００５６】
条件ｄ：メタデータＭ１の適用箇所、即ち、問題Ｐ１の発生箇所を含むブロックＢ１の情報。該情報は、上述したようにブロック抽出部２３０により抽出され作業領域に保存されているため、作業領域から取得される。
【００５７】
条件ｅ：問題の生じたウェブページ内のブロックＢ１の位置を特定するブロック特定情報。該情報は、操作ログＬ１の情報２の問題Ｐ１の発生箇所を指定する位置指定情報から、条件ｄのブロックＢ１の先頭箇所までの情報を抜き出すことにより求められる。例えば、問題Ｐ１の発生箇所を指定する位置指定情報として操作ログＤＢ２２０に、“html/body/div/table/tbody/td[3]/table/tbody/td[1]/imag”が格納されており、ブロックＢ１がtd[3]にあるテーブル構造であったとすると、ブロック特定情報は、“html/body/div/table/tbody/td[3]”である。
【００５８】
条件ｆ：ブロックＢ１内で問題の発生箇所を特定する位置特定情報。該情報は、操作ログＬ１の情報２の問題Ｐ１の発生箇所を指定する位置指定情報から、条件ｄのブロックＢ１の先頭箇所から問題Ｐ１の発生箇所までの情報を抜き出すことにより求められる。例えば、例えば問題Ｐ１の発生箇所を指定する位置指定情報として操作ログＤＢ２２０に、“html/body/div/table/tbody/td[3]/table/tbody/td[1]/imag”が格納されており、ブロックＢ１がtd[3]にあるテーブル構造であったとすると、位置特定情報は、“table/tbody/td[1]/imag”である。
【００５９】
次に問題Ｐ１を修正するための操作を示す操作情報について説明する。該操作情報は、操作ログＬ２の情報３を利用して取得される。本発明では、従来技術のようにアクセシビリティの問題に特化せずに、より広く、一般的なウェブ・アプリケーション上のバグ修正やローカライゼーションといった様々な問題を扱うものとする。そのためメタデータの適用条件に合致した箇所に対する操作内容としては、１．ＨＴＭＬ  ＤＯＭのノードに対する操作、２．要素の属性に対する操作、３．外部ｊａｖａ（登録商標）ｓｃｒｉｐｔ、ＣＳＳに対する操作の３種類の操作を指定可能とする。
【００６０】
１．のＨＴＭＬ  ＤＯＭのノードに対する操作の場合、操作内容として、ＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥのうちのいずれかの操作を指定する。また、操作内容としてＩＮＳＥＲＴ（ＨＴＭＬ仕様に準拠）を指定する場合は挿入するノードの情報のほか必要なパラメータを、操作内容としてＵＰＤＡＴＥ（ＨＴＭＬ仕様に準拠）を指定する場合はノードの更新情報を、それぞれ追加で指定する。
【００６１】
２．の要素の属性に対する操作の場合、操作内容として、ＩＮＳＥＲＴ、ＵＰＤＡＴＥ、ＤＥＬＥＴＥのうちのいずれかの操作を指定する。また、操作内容としてＩＮＳＥＲＴ（ＨＴＭＬ仕様に準拠）を指定する場合は属性を挿入する場所と挿入する属性の名前と値とを、操作内容としてＵＰＤＡＴＥ（ＨＴＭＬ仕様に準拠）を指定する場合は更新する属性の名前と値とを、操作内容としてＤＥＬＥＴＥを指定する場合は削除する属性の名前を、それぞれ追加で指定する。
【００６２】
３．の外部ｊａｖａ（登録商標）ｓｃｒｉｐｔ、ＣＳＳに対する操作の場合、操作内容は、ＵＰＤＡＴＥを指定し、更に、変更するファイルのロケーションと変更履歴（既存のｄｉｆｆ技術で表示される差分でよい）とを指定する。
【００６３】
メタデータ生成部２２５は、上記のように定義されるメタデータＭ１を生成すると、次に類似ブロック検索部２３５を呼び出し、生成したメタデータＭ１を適用可能な他のブロックを操作ログＤＢ２２０から抽出する。なお、類似ブロック検索部２３５の呼び出しは、ブロック抽出部２３０によりメタデータＭ１の条件ｄとしてのブロックが抽出された後であればよく、必ずしもメタデータＭ１の生成後である必要はない。
【００６４】
類似ブロック検索部２３５は、メタデータ生成部２２５により呼び出されると、生成したメタデータＭ１を適用可能な他のブロックを操作ログＤＢ２１０から抽出する。その手順は以下の通りである。  まず類似ブロック検索部２３５は、操作ログＤＢ２２０から操作ログＬ１の情報１を読み出して、修正作業中に遷移したＲＩＡ２５０の各状態ＡＳｉ（ｉ＝１、２、…、ｎ、ｎ：遷移数）を再現する。続いて類似ブロック検索部２３５は、再現したＲＩＡ２５０の各状態ＡＳｉにおけるＨＴＭＬ  ＤＯＭ（操作ログＬ１の情報Ｄ）を、既存のブロック抽出手法を利用して複数のブロックＢＳｉｊ（ｊ＝１、２、…、ｍｉ、ｍｉ：状態ＡＳｉでのブロック分割数）に分割する。なお、ブロック抽出方法についてはブロック抽出部２３０に関連して説明した通りであり、同様の処理をＨＴＭＬ  ＤＯＭツリーのルートノードをスタートとして、例えば深さ優先順等の一定の順序で全ノートについて行えばよい。だし、一度どこかのブロックに含まれたノードに関しての処理はスキップするものとする。これにより、同一ノードが別のブロックに含まれることを防ぐ。
【００６５】
続いて類似ブロック検索部２３５は、分割した各ブロックＢＳｉｊをメタデータＭ１の条件ｄであるブロックＢ１と比較し、ＲＩＡ２５０の各状態ＡＳｉとブロックＢ１に類似するブロックＢＳｉｊのペアからなる類似ブロックの集合ＳＢｋ＝（ＡＳｉ、ＢＳｉｊ）（ｋ＝１、２、…、Ｎ、Ｎ：ペア数、Ｎ≦Σiｍｉ）を求める。そしてブロックＢ１に類似するブロックＢＳｉｊが１つでも存在する場合、即ち類似ブロックの集合ＳＢｋが空でない場合、類似ブロック検出部２３５は、求めた類似ブロックの集合ＳＢｋを修正作業者に提示して、メタデータＭ１の操作情報が示す操作を適用可能な類似ブロックＡＢｌ（ｌ＝１、２、…、Ｍ、Ｍ：選択された類似ブロック数、Ｍ≦Ｎ）を選択させる。提示は、一例として類似ブロックＢＳｉｊを対応する状態ＡＳｉのウェブページ内に目立つように表示させて行ってよく、選択されたブロックにはメタデータＭ１の条件ｆがそのまま適用されるものとする。修正作業者により選択された全ブロックＡＢｌは、類似ブロック検出部２３５からメタデータ生成部２２５へ渡される。
【００６６】
なお、類似ブロック検索部２３５によるブロックの類似性の判断は、例えば、特開２００７−５２５５６に開示される類似判定手法を利用してよい。該類似判定手法では、比較する２つの構造化文書の各々を、独立して意味を持つ最大の部分木構造に構成し、それぞれの部分木の葉ノードクラスタ同士を照合し、照合する葉ノードクラスタ間で同じ内容を有する葉ノードの個数の比率に基づいて部分木間の類似度を求める。従って、本実施例では、ブロック同士の類似性の判断を、比較するブロック間で同じ内容の要素または属性の個数の比率に基づいて行うことができる。
【００６７】
メタデータ生成部２２５は、類似ブロック検索部２３５からメタデータＭ１の操作情報が示す操作を適用可能な類似ブロックＡＢｌ（ｌ＝１、２、…、Ｍ）を受け取ると、各類似ブロックＡＢｌ（ｌ＝１、２、…、Ｍ）についてメタデータＭＢｌ（ｌ＝１、２、…、Ｍ）を生成する。なお、類似ブロックＡＢｌは、ブロックＢ１に類似するブロックと対応するＲＩＡ２５０の状態情報のペアであり、メタデータＭＢｌの生成は、対応するＲＩＡ２５０の状態情報とメタデータＭ１の条件ｆから求められることに留意されたい。そしてメタデータ生成部２２５は、メタデータ汎化部２４５を呼び出して、メタデータＭ１を、問題Ｐ１の発生箇所に類似する他の箇所の問題解決にも適用可能なメタデータＭＦに拡張する。そして、メタデータ生成部２２５は、メタデータＤＢ２４０に格納されたメタデータＭ１をメタデータＭＦで更新する。
【００６８】
メタデータ汎化部２４５は、メタデータ生成部２２５に呼び出されると、メタデータＭＢｌ（ｌ＝１、２、…、Ｍ）を用いてメタデータＭ１の適用条件を汎化する。但し、汎化の対象は、メタデータＭ１の条件ａ、ｂ、ｃ、ｅのみである。なぜならば、メタデータの条件ｄ、ｆは、メタデータＭ１とメタデータＭＢｌの全てのメタデータに共通であり不変であるからである。以下、条件ごとに汎化方法を説明する。
【００６９】
条件ａ、即ち、問題が生じたウェブページの場所を特定するＵＲＬの汎化は、次の１〜５の手順で行う。
１．メタデータＭ１及びメタデータＭＢｌ（ｌ＝１、２、…、Ｍ）に属する全ての条件ａを、プロトコル、ドメイン、フォルダ＋ファイル、パラメータに分類する。
（例１）http://www.trl.ibm.com/testapp01/shop01.html?style=production
プロトコル＝http、ドメイン=www.trl.ibm.com、フォルダ＋ファイル=testapp01/shop01.html、パラメータ=（style=production）
（例２）http://www.ibm.com/testapp02/cart01.html?style=production&item=3
プロトコル＝http、ドメイン= www.ibm.com、フォルダ＋ファイル=testapp02/cart01.html、パラメータ=（style=production、item=3)
２．プロトコルを汎化する。具体的には、全ての条件aについてプロトコルが同一である場合のみ、そのプロトコルを条件として残す。異なるプロトコルを含む条件aが１つでも存在する場合、任意のプロトコルを許可する条件とする。
３．ドメインを汎化する。具体的には、全ての条件aについてドメインを後方一致させていき、共通部分だけを残す。即ち、後方一致させていく途中で一致しなくなった条件ａが１つでも存在する場合、後方から全ての条件ａについて一致した最後の部分までのドメイン部分を条件とする。上記１．の例１と例２の２つのＵＲＬがあったとすると、求められる共通部分は“ibm.com”である。
４．フォルダ＋ファイルを汎化する。具体的には、全ての条件aについてフォルダ＋ファイルを前方一致させていき、共通部分だけを残す。即ち、前方一致させていく途中で一致しなくなった条件ａが１つでも存在する場合、前方から全ての条件ａについて一致した最後の部分までのフォルダ＋ファイル部分を条件とする。上記１．の例１と例２の２つのＵＲＬがあったとすると、求められる共通部分は“testapp”である。
５．パラメータを汎化する。具体的には、全ての条件ａに共通して含まれるパラメータ名を全て抜き出し、抜き出したパラメータの値を調べる。全ての条件ａについて値が一致するパラメータのみを条件として残す。異なるパラメータの値が設定された条件aが１つでも存在する場合には、そのパラメータは条件に含めない。上記１．の例１と例２の２つのＵＲＬがあったとすると、求められる共通部分は、style = productionである。
【００７０】
条件ｂ、即ち、グローバル変数群の汎化は、メタデータＭ１及びメタデータＭＢｌ（ｌ＝１、２、…、Ｍ）に属する全てのグローバル変数群の各グローバル変数をＪＳＯＮのようにkey-valueのペア構造に変換し共通部分を取り出すことにより行う。以下、１．key-valueのペア構造への変換方法と、２．変換後の全ての条件ｂから共通部分を取り出す方法とに分けて説明する。なお、関数やＨＴＭＬ  ＤＯＭ若しくはその部分木であるグローバル変数は対象外とする。
【００７１】
１．key-valueのペア構造への変換方法
１−１．数値、文字列といった単純オブジェクトは、単純key-valueペア構造に変換する。
（例１）style="production",i=1,flag=true ->
"style":"production","i":"1","flag":"true"
（例２）style="production",i=3,flag=false ->
"style":"production","i":"3","flag":"false"
１−２．配列オブジェクトはＪＳＯＮ配列と同じようなkey-valueのペア構造に変換する。即ち、配列の要素の値を、該要素を取り出すキーと該要素の値とからなるkey-valueのペア構造に更に変換する。従って、単純配列はインデックスを補足し、連想配列は要素を取り出すキーをそのまま活用する。
（例３）a={9，5，1} -> a:{"0":"9","2":"5","2":"1"}
（例４）a={1，5} -> a:{"0":"1","2":"5"}
（例５）b={style:production,i:1,flag:true} -> 
"b":{"style":"production","i":"1","flag":"true"}
（例６）b={style:test,i:3,flag:false} -> 
"b":{"style":"test","i":"3","flag":"false"}
１−３．階層オブジェクトは各変数を値としてもつ配列として取り扱うことでkey-valueのペア構造に変換する。変換方法は配列オブジェクトの変換に準拠する。
（jａｖａ（登録商標）sｃｒｉｐｔ例）
function Cart() {
me.items={};
me.total=0;
}
nextId = 0;
function CartItem() {
me.id="c" + nextId++;
}
var cart = new Cart();
cart.items[0] = new CartItem();
（例７）cart -> "Cart":{"items":[{"CartItem":{"id":"1","price":"100"}}],"total":"0"}
（例８）cart -> "Cart":{"items":[{"CartItem":{"id":"2","price":"100"}}],"total":"0"}
【００７２】
２．共通部分の取り出し方法
２−１．全ての条件ｂに共通に含まれるkeyを全て抜き出し、抜き出したkeyのvalueを調べる。
２−２．valueが数値、文字列といった単純オブジェクトの場合、全ての条件ｂについてvalueが同じである場合にのみそのkey-valueを条件として残す。異なるvalueの条件ｂが１つでも存在する場合には、そのkeyのグローバル変数は条件に含めない。
２−３．valueが配列オブジェクトの場合、その配列オブジェクトの各要素は１−２．で上述したようにkey-valueのペア構造に変換されている。従って、各要素を条件ｂとみなして、上述した２−１．の処理に戻る。
上記１−１．の例１と例２から共通部分を取り出すとすると、全てのkeyが例１と例２に共通して含まれる。しかしながら、keyのvalueを調べると、例１と例２でvalue が同一なのは"style"keyのみである。従って、"style": "production"のみが共通部分として取り出される。
また、上記１−２．の例３と例４から共通部分を取り出すとすると、例３と例４に共通な"a"keyのvalueが配列であるため、配列の各要素を条件ｂとみなして検討する。すると全ての条件ｂに共通なkeyは"0"keyと"1"keyであるが、全ての条件ｂについてvalueが同じなのは"1"keyのみである。従って、"a":{ "1 ":"5"}のみが共通部分として取り出される。
また、上記１−２．の例５と例６から共通部分を取り出すとすると、例５と例６に共通な"b"keyのvalueが配列であるため、配列の各要素を条件ｂとみなして検討する。すると全ての条件ｂに共通なkeyは、"style"key、"i "key、及び"flag"keyの全てのkeyである。しかし全ての条件ｂについてvalueが同じkeyは存在しない。従って、共通部分が存在しないため条件ｂは空となる。
上記１−３．の例７と例８から共通部分を取り出すとすると、例５と例６に共通な"Cart" keyのvalueが配列であるため、配列の各要素を条件ｂとみなして検討する。すると全ての条件ｂに共通なkeyは、"items" key及び"total" keyである。そのvalueを深さ優先で再帰的に比較すると、最終的に,"price" keyと"total" keyのvalueのみが同じであることが分かる。従って、階層構造を維持したままで、"Cart":{"items":[{"CartItem":{"price":"100"}}],"total":"0"}が共通部分として取り出される。
【００７３】
条件ｃ、即ちクッキー情報の汎化は、メタデータＭ１及びメタデータＭＢｌ（ｌ＝１、２、…、Ｍ）に属する全てのクッキー情報の各々をＪＳＯＮのようにkey-valueのペア構造に変換し共通部分を取り出すことにより行う。但し、secure等の単一情報からなるクッキー情報は、keyとvalueが同一のkey-valueのペア構造に変換する。変換後の全てのクッキー情報から共通部分を取り出す方法は、条件ｂについて説明した方法と同じであるからここでは説明を省略する。
【００７４】
条件ｅ、即ち、条件ｄのブロックＢ１の位置を特定するブロック特定情報の汎化は、先頭からの共通パス及び最後尾からの共通パスのみを残すことにより行う。それ以外の途中の一致しない部分は省略し、"//"を用いて子孫と直接結合する。但し、インデックスが一致しない場合はインデックスのみを省略する。また先頭からの共通パスがない場合には、適用対象を絞り込むために和集合（ＵＮＩＯＮ）を用いる。
（例１）インデックスが一致しないだけの場合
入力１：/html/body/div/div/table/tr[3]
入力２：/html/body/div/div/table/tr[7]
入力３：/html/body/div/div/table/tr[1]
最後のインデックスだけが異なるため、汎化結果は"/html/body/div/div/table/tr"となる。
（例２）途中のパスが異なる場合
入力１：/html/body/div/div/table/tr[1]/div/div/form/input[1]
入力２：/html/body/div/table/tr[1]/div/form/input[1]
入力３：/html/body/div/div/table/tr[3]/form/input[1]
先頭から"/html/body/div"までが合致し、最後尾から"form/input[1]"までが同一であるため、汎化結果はこの二つを"//"で結合した"/html/body/div// form/input[1]"となる。
【００７５】
以上、第１実施例のシナリオに沿って支援装置２００を説明した。  図４は、そのような第１実施例のシナリオの一例を示す。修正作業者は、ウェブ上のあるショッピングサイトのカート機能に関する問題Ｐ１を修正すべく、支援装置２００と連動して動作するウェブ・ブラウザを起動してショッピングサイトに（１）ログインし、（２）商品を検索し、（３）商品１を選択して、（４）買い物かごに入れ、商品２、３について同様に処理を繰り返し、（１０）最終的に商品３を買い物かごに入れたところで問題Ｐ１（バグ）の発生箇所４４０を特定する。修正作業者がマニュアルで問題Ｐ１（バグ）を修正すると、ウェブ・ブラウザに連動して起動された支援装置２００は、該修正内容を含むメタデータＭ１を、上述した本発明が新たに定義するメタデータの構造に従って生成する。続いて、支援装置２００は、問題Ｐ１（バグ）の発生箇所４４０を含む意味的にまとまりのあるブロック４４５を手掛かりに、生成したメタデータＭ１を適用可能な箇所として問題Ｐ１の発生箇所特定までの操作ログＬ１（図４の表示画面４０５〜４３５に関する情報）からブロック４５０、４５５を検出する。支援装置２００はブロック４５０、４５５に対しメタデータＭＢ１、ＭＢ２を生成し、これらを用いてメタデータＭ１をブロック４５０、４５５に対して適用可能なように汎化する。
【００７６】
図５は、図４に示す問題Ｐ１（バグ）の発生箇所４４０を修正するためのメタデータＭ１の汎化の前後の状態を示す。メタデータＭ１５００は、汎化前のメタデータＭ１を示し、メタデータＭ１５０５は、図４に示すブロック４５０及び４５５に適用可能に汎化された汎化後のメタデータＭ１を示す。図５に示す汎化では、条件ｂと条件ｅのそれぞれの汎化アルゴリズムに従って、問題の生じたウェブページ（図４の画面４３５）に関するグローバル変数群と、該ウェブページ（図４の画面４３５）内のブロック（図４のブロック４４５）の位置を特定するブロック特定情報が汎化されている。なお、図５に示すメタデータＭ１５００、５０５の条件ｄに含まれる“ＤＳ２”はブロックの識別子である。
【００７７】
次に図６〜図９を参照して本発明の第１実施例によるメタデータの生成及び汎化処理の流れを説明する。図６（ａ）は、本発明の第１実施例によるメタデータの生成及び管理処理の前半の処理の流れを示すフローチャートである。図６（ｂ）は、本発明の第１実施例によるメタデータの生成及び管理処理の後半の処理の流れを示すフローチャートである。図７は、図６（ａ）のステップ６２０におけるブロック抽出処理の流れを示すフローチャートである。図８は、図６（ｂ）のステップ６３５における類似ブロック検索処理の流れを示すフローチャートである。  図９は、図６（ｂ）のステップ６５５における汎化処理の流れを示すフローチャートである。
【００７８】
図６（ａ）に示すメタデータの生成及び管理処理の流れを示すフローチャートは、ステップ６００から開始し、支援装置２００は汎化対象ＤＢ２１０にアクセスし、ウェブ・ブラウザが現在アクセスしているＲＩＡ２５０に関連付けられたグローバル変数群及びクッキー情報の種類を特定する情報が開発者により支援装置２００に登録されているかを確認し、登録されている場合はその情報を作業領域へ読み出す。続いて支援装置２００は、修正作業者Ｅ１により問題Ｐ１の発生箇所が特定されたか否かを判定する（ステップ６０５）。
【００７９】
問題Ｐ１の発生箇所が特定されていない場合（ステップ６０５：ＮＯ）、処理はステップ６１０へ進み、続いて支援装置２００は、ＲＩＡ２５０の状態が変化したか否かを判定する。ＲＩＡ２５０の状態が変化していないと判定された場合（ステップ６１０：ＮＯ）、処理はステップ６０５に戻る。一方、ＲＩＡ２５０の状態が変化した判定した場合（ステップ６１０：ＹＥＳ）、支援装置２００はＲＩＡの状態を取得し、これを操作ログＬ１として操作ログＤＢ２２０に格納する。そして処理は再びステップ６０５の判定処理に戻る。
【００８０】
ステップ６０５において、問題Ｐ１の発生箇所が特定されたと判定された場合（ステップ６０５：ＹＥＳ）、処理はステップ６２０へ進み、続いて支援装置２００は問題Ｐ１の発生箇所を含むＨＴＭＬ  ＤＯＭ内のブロックＢ１を抽出する。ブロックＢ１の抽出処理の詳細は図７を参照して後述する。ステップ６２０の後、処理は結合点Ｄを介して図６（ｂ）に示すフローチャートのステップ６２５へ続く。なお、ステップ６２０の後結合点Ｃを経由する処理の流れは第２実施例として後述する。
【００８１】
続いて図６（ｂ）のステップ６２５において、支援装置２００は、問題Ｐ１が修正作業者Ｅ１により修正されたか否かを判定する。ステップ６２５の判定は、問題Ｐ１の修正が完了するまで繰り返される。修正作業者Ｅ１による問題Ｐ１の修正が完了したと判定されると（ステップ６２５：ＹＥＳ）、処理はステップ６３０へ進み、支援装置２００は本発明において新たに定義したメタデータの構造に従って問題Ｐ１を修正するためのメタデータＭ１を生成する。続いて支援装置２００は、生成したメタデータＭ１を適用可能な類似ブロックを求めて操作ログＤＢ２１０を検索する（ステップ６３５）。類似ブロックの検索処理の詳細は図８を参照して後述する。
【００８２】
続いて支援装置２００は、生成したメタデータＭ１を適用可能な類似ブロックが見つかったか否かを判定する（ステップ６４０）。類似ブロックが見つからなかった場合（ステップ６４０：ＮＯ）、支援装置２００は生成したメタデータＭ１をメタデータＤＢ２４０に登録し（ステップ６４５）、そして処理は終了する。一方、類似ブロックが見つかった場合（ステップ６４０：ＹＥＳ）、処理はステップ６５０へ進み、支援装置２００は検出した類似ブロックごとに対応するメタデータＭＢｌを生成する。続いて支援装置２００は、メタデータＭ１の適用条件を、ステップ６５０で生成した全メタデータＭＢｌを用いて汎化する（ステップ６５５）。メタデータＭ１の適用条件の汎化処理の詳細は図９を参照して後述する。続いて支援装置２００は汎化されたメタデータＭ１をメタデータＤＢ２４０に登録する（ステップ６６０）。そして処理は終了する。
【００８３】
図７に示すブロック抽出処理の流れを示すフローチャートは、ステップ７００から開始し、支援装置２００は、Ｊ．Ｍａｈｍｕｄ等によって提案されたブロック抽出手法などの既存のブロック抽出手法を用いて、問題Ｐ１の発生するＲＩＡ２５０の状態におけるＨＴＭＬ文書を複数のブロックに分割する。続いて支援装置２００は、分割した複数のブロックの中から、問題Ｐ１の発生箇所を含むブロックを抽出する（ステップ７０５）。そして処理は終了する。
【００８４】
図８に示す類似ブロック検索処理の流れを示すフローチャートは、ステップ８００から開始し、支援装置２００は、操作ログＤＢ２２０から現在の問題Ｐ１の発生箇所の特定までの間に記録された操作ログＬ１を読み出して、操作ログＬ１に含まれる操作ログの情報１から、作業中に遷移したＲＩＡ２５０の各状態ＡＳｉ（ｉ＝１、２、…、ｎ）を復元する。続いて支援装置２００は、メタデータＭ１を適用可能な類似ブロックの集合ＡＢｌを空集合として生成する（ステップ８０５）。続いて支援装置２００は、ＲＩＡ２５０の全ての状態ＡＳｉ（ｉ＝１、２、…、ｎ）に対して、以降のステップ８１５からステップ８４０の一連の処理が完了したか否かを判定する（ステップ８１０）。
【００８５】
上記一連の処理が完了していない状態ＡＳｉが残っている場合（ステップ８１０：ＮＯ）、続いて支援装置２００は復元されたＲＩＡ２５０状態ＡＳｉ（ｉ＝１、２、…、ｎ）の集合から次に処理すべき状態ＡＳｉを選択し（ステップ８１５）、選択した状態ＡＳｉにおけるＨＴＭＬ文書を、Ｊ．Ｍａｈｍｕｄ等によって提案されたブロック抽出手法などの既存のブロック抽出手法を利用して複数のブロックに分割する（ステップ８２０）。続いて支援装置２００は、分割した各ブロックと生成したメタデータＭ１の条件ｄとしてのブロックＢ１とを上述した既存の類似判断手法を用いて比較し、類似ブロック全てをメタデータＭ１の適用候補の集合として修正作業者Ｅ１に提示する（ステップ８２５）。
【００８６】
続いて支援装置２００は、提示したメタデータＭ１の適用候補の集合の中から１以上の類似ブロックが修正作業者Ｅ１により選択されたか否かを判定する（ステップ８３０）。修正作業者Ｅ１により１以上の類似ブロックが選択された場合（ステップ８３０：ＹＥＳ）、支援装置２００は選択された１以上の類似ブロックを、メタデータＭ１を適用可能な類似ブロックの集合ＡＢｌに追加する（ステップ８３５）。ステップ８３５から、又は修正作業者Ｅ１により１つも類似ブロックが選択されない場合（ステップ８３０：ＮＯ）、処理はステップ８４０へ進み、支援装置２００は、ＲＩＡ２５０の現在の状態ＡＳｉに対する上記一連の処理を終了し、ステップ８１０へ戻る。そして支援装置２００はステップ８１０において再びＲＩＡ２５０の全ての状態ＡＳｉに対して上記一連の処理が完了したか否かを判定し、全ての状態ＡＳｉに対して上記一連の処理が完了していると判断した場合（ステップ８１０：ＹＥＳ）、類似ブロック検索処理を終了する。
【００８７】
図９に示す汎化処理の流れを示すフローチャートは、ステップ９００から開始し、支援装置２００は、メタデータＭ１の条件ａ、即ち、問題が生じたウェブページの場所を特定するＵＲＬを汎化する。汎化は、メタデータＭ１の条件ａと、メタデータＭ１を適用可能な類似ブロックの各々に対して生成した全メタデータＭＢｌの条件ａとを用いて、上述した条件ａの汎化のアルゴリズムに従って行う。続いて支援装置２００は、メタデータＭ１の条件ｂ、即ち、グローバル変数群を汎化する（ステップ９０５）。汎化は、メタデータＭ１の条件ｂと、メタデータＭ１を適用可能な類似ブロックの各々に対して生成した全メタデータＭＢｌの条件ｂとを用いて、上述した条件ｂの汎化のアルゴリズムに従って行う。
【００８８】
続いて支援装置２００は、メタデータＭ１の条件ｃ、即ち、クッキー情報を汎化する（ステップ９１０）。汎化は、メタデータＭ１の条件ｃと、メタデータＭ１を適用可能な類似ブロックの各々に対して生成した全メタデータＭＢｌの条件ｃとを用いて、上述した条件ｃの汎化のアルゴリズムに従って行う。続いて支援装置２００は、メタデータＭ１の条件ｅ、即ち、ブロックＢ１の位置を特定するブロック特定情報を汎化する（ステップ９１５）。汎化は、メタデータＭ１の条件ｅと、メタデータＭ１を適用可能な類似ブロックの各々に対して生成した全メタデータＭＢｌの条件ｅとを用いて、上述した条件ｅの汎化のアルゴリズムに従って行う。その後処理は終了する。
【実施例２】
【００８９】
第２実施例は、修正作業者が支援装置２００を利用して、ＲＩＡ２５０上の問題Ｐ１を修正するためのメタデータＭ１を既存のメタデータを利用して生成するとともに、利用した既存のメタデータＭ０を、生成したメタデータＭ１を用いて汎化するというシナリオに沿ったものである。第２実施例による支援装置２００もまた、第１実施例による支援装置２００と同様に、汎化対象設定部２０５と、汎化対象ＤＢ２１０と、操作ログ記録部２１５と、操作ログＤＢ２２０と、メタデータ生成部２２５と、ブロック抽出部２３０と、メタデータ汎化部２４５を含む。これら共通の構成要素については第１実施例において説明した通りであるから、以下では第２実施例による支援装置２００に固有の構成要素である類似メタデータ検索部２５０とメタデータＤＢ２４０を中心に、第２実施例による支援装置２００の機能を説明する。
【００９０】
メタデータ生成部２２５は、修正作業者により問題Ｐ１が発生するＲＩＡ２５０の状態が特定されたことを検出すると、類似メタデータ検索部２５０を呼び出して、メタデータＤＢ２４０から問題Ｐ１に適用可能な既存のメタデータを検索する。なお、本実施例では、メタデータＤＢ２４０には、本発明において新たに定義したメタデータの構造に従い過去に生成されたメタデータが格納されているものとする。また、類似メタデータ検索部２５０の呼び出し時点において、支援装置２００の作業領域には、ブロック抽出部２３０により抽出された問題Ｐ１の発生箇所を含むブロックＢ１が保持されており、操作ログＤＢ２２０には、操作ログ記録部２１５により操作ログＬ１の情報２として問題Ｐ１の発生箇所を指定する位置指定情報が格納されていることに留意されたい。
【００９１】
類似メタデータ検索部２５０は、メタデータ生成部２２５により呼び出されると、問題Ｐ１の発生箇所を含むブロックＢ１と問題Ｐ１の発生箇所を指定する位置指定情報とから、メタデータＭ１の条件ｆとなる、ブロックＢ１内で問題の発生箇所を特定する位置特定情報を求める。そして類似メタデータ検索部２５０は、メタデータＭ１の条件ｄとなるブロックＢ１と、メタデータＭ１の条件ｆとなる位置特定情報とを検索キーとして、一致する全ての既存のメタデータＭｉ（ｉ＝１、２、…、ｎ、ｎ：一致するメタデータ数）をメタデータＤＢ２４０から取り出す。そして類似メタデータ検索部２５０は、取り出した全てのメタデータＭｉを修正作業者に提示して、問題Ｐ１に適用可能なメタデータＭｓ（１≦ｓ≦ｎ）を１つ選択させる。選択されたメタデータＭｓは類似メタデータ検索部２５０からメタデータ生成部２２５へ渡される。
【００９２】
メタデータ生成部２２５は、類似メタデータ検索部２５０から受け取ったメタデータＭｓ（１≦ｓ≦ｎ）の操作情報を用いて、問題Ｐ１を修正するためのメタデータＭ１を生成する。なお、メタデータの残りの条件ａ、ｂ、ｃ、及びｅの算出方法は、第１実施例において説明した通りであるからここでは説明を省略する。
【００９３】
メタデータ生成部２２５はまた、メタデータ汎化部２４５を呼び出して、問題Ｐ１に適用可能とされたメタデータＭｓ（１≦ｓ≦ｎ）を、生成したメタデータＭ１を用いて、適用条件のより広いメタデータＭＦに汎化する。そして、メタデータ生成部２２５は、メタデータＤＢ２４０に格納された既存のメタデータＭｓ（１≦ｓ≦ｎ）をメタデータＭＦで更新する。
【００９４】
メタデータ汎化部２４５は、メタデータ生成部２２５に呼び出されると、メタデータＭｓ（１≦ｓ≦ｎ）と新たに生成されたメタデータＭ１とを用いてメタデータＭｓの適用条件（条件ａ、ｂ、ｃ、及びｅ）を汎化する。各条件の汎化のアルゴリズムは第１実施例において説明した通りであるからここでは説明を省略する。
【００９５】
以上、第２実施例のシナリオに沿って支援装置２００を説明した。  図１０は、そのような第２実施例のシナリオの一例を示す。修正作業者は、ウェブ上のあるショッピングサイトの商品検索結果における価格比較に関する問題を修正すべく、支援装置２００と連動して動作するウェブ・ブラウザを起動してショッピングサイトにアクセスし、「ノートパソコン」を検索キーとして検索結果をリクエストして図１０（ａ）に示すウェブページ１０００を取得する。修正作業者が問題Ｐ１（Ｃｏｍｐａｒｅ  Ｐｒｉｃｅ）の発生箇所１００５を特定すると、支援装置２００は発生箇所１００５を含むブロック１０１０を抽出し、ブロック１０１０（条件ｄ）とブロック１０１０内の問題Ｐ１（Ｃｏｍｐａｒｅ  Ｐｒｉｃｅ）の発生箇所１００５（条件ｆ）とを検索キーとして、メタデータＤＢ２４０を検索する。
【００９６】
メタデータＤＢ２４０には、図１０（ｂ）に示すウェブページ１０１５上の問題Ｐ０（Ｃｏｍｐａｒｅ  Ｐｒｉｃｅ）の発生箇所１０２０を修正するメタデータＭ０が格納されている。ウェブページ１０１５は、同じショッピングサイトで「空気清浄機」を検索キーとして得られた検索結果であることから、価格比較（Ｃｏｍｐａｒｅ  Ｐｒｉｃｅ）に関して同様の問題が生じており、修正のためメタデータＭ０が生成されている。支援装置２００は、上記条件ｄと条件ｆの検索キーと一致する条件を有するメタデータとしてメタデータＭ０をメタデータＤＢ２４０から抽出し、メタデータＭ０を用いて現在の問題Ｐ１に適用するメタデータＭ１を生成する。支援装置２００はまた、メタデータＭ１を用いて、既存のメタデータＭ０の適用条件を汎化する。  
【００９７】
図１１は、図１０（ｂ）に示す問題Ｐ０（Ｃｏｍｐａｒｅ  Ｐｒｉｃｅ）の発生箇所１０２０を修正するための既存のメタデータＭ０の汎化前後の状態を示す。メタデータＭ１１１００は、図１０（ａ）に示す問題Ｐ１（Ｃｏｍｐａｒｅ  Ｐｒｉｃｅ）の発生箇所１００５を修正するための新たに生成されたメタデータＭ１を示す。メタデータＭ０１１０５は、汎化前の既存のメタデータＭ０を示し、メタデータＭ０１１１０は、新たに生成されたメタデータＭ１を用いて汎化された汎化後の既存のメタデータＭ０を示す。図１１に示す汎化では、条件ａ、ｂ、及びｅの汎化アルゴリズムに従って、問題の生じたウェブページ１０１５のＵＲＬと、グローバル変数群と、ブロック１０２５の位置を特定するブロック特定情報が汎化されている。
【００９８】
次に図１２〜図１３を参照して本発明の第２実施例によるメタデータの生成及び汎化処理の流れを説明する。図１２は、本発明の第２実施例によるメタデータの生成及び既存のメタデータの汎化処理の後半の処理の流れを示すフローチャートである。なお、第２実施例によるメタデータの生成処理の前半については、第１実施例によるメタデータ生成処理のブロック抽出処理までの処理と同じであるからここでは説明を省略する。図１３は、本発明の第２実施例における類似メタデータ検索処理の流れを示すフローチャートである。  
【００９９】
図１２に示すメタデータの生成及び既存のメタデータの汎化処理の流れを示すフローチャートは、図６（ａ）のステップ６２０のブロック抽出処理に続く処理の流れを示し、支援装置２００は、ステップ１２００において、現在の問題Ｐ１の発生箇所に適用可能な既存のメタデータＭ０を探して、メタデータＤＢ２４０を検索する。類似メタデータ検索処理の詳細は、図１３を参照して後述する。続いて支援装置２００は、現在の問題Ｐ１の発生箇所に適用可能な既存のメタデータＭ０が存在したか否かを判定する（ステップ１２０５）。既存のメタデータＭ０が存在しない場合（ステップ１２０５：ＮＯ）、処理は結合点Ｄを介して第１実施例に関して説明した図６（ｂ）に示すフローチャートのステップ６２５へ進む。この場合、修正作業者は手動で問題Ｐ１を修正する。以降の処理は第１実施例を参照されたい。
【０１００】
一方、現在の問題Ｐ１の発生箇所に適用可能な既存のメタデータＭ０が存在した場合（ステップ１２０５：ＹＥＳ）、処理はステップ１２１０へ進み、支援装置２００は、既存のメタデータＭ０の操作情報を用いて、本発明のおいて新たに定義したメタデータのデータ構造に従い、現在の問題Ｐ１の発生箇所を修正するメタデータＭ１を生成する。続いて支援装置２００は、既存のメタデータＭ０の適用条件を、新たに生成したメタデータＭ１を用いて汎化する（ステップ１２１５）。汎化処理の詳細は図９を参照して説明した通りであるからここでは省略する。最後に支援装置２００は、メタデータＤＢ２４０に格納されている、ステップ１２００の類似メタデータ検索処理において見つかった既存のメタデータＭ０の適用条件を、ステップ１２１５の汎化処理で求めた適用条件で更新する（ステップ１２２０）。そして処理は終了する。
【０１０１】
図１３に示す類似メタデータ検索処理の流れを示すフローチャートは、ステップ１３００から開始し、支援装置２００は、問題Ｐ１の発生箇所を含むブロックＢ１（メタデータＭ１の条件ｄ）内で問題の発生箇所を特定する位置特定情報（メタデータＭ１の条件ｆ）を算出する。該算出は、操作ログの情報２の問題Ｐ１の発生箇所を指定する位置指定情報から、ブロックＢ１の先頭箇所から問題Ｐ１の発生箇所までの情報を抜き出すことにより求められる。続いて支援装置２００は、メタデータＭ１の条件ｄとなるブロックＢ１と、メタデータＭ１の条件ｆとなる位置特定情報とを検索キーとして、一致する全ての既存のメタデータＭｉ（ｉ＝１、２、…ｎ、ｎ：一致するメタデータ数）をメタデータＤＢ２４０から取り出す（ステップ１３０５）。
【０１０２】
続いて支援装置２００は、取り出した全てのメタデータＭｉを修正作業者Ｅ１に提示して、問題Ｐ１に適用可能なメタデータを１つ選択させる（ステップ１３１０）。続いて、支援装置２００は、提示したメタデータＭｉの１つを修正作業者Ｅ１が選択したか否かを判定する（ステップ１３１５）。メタデータＭｉが選択されなかった場合（ステップ１３１５：ＮＯ）、処理はそのまま終了する。一方、修正作業者Ｅ１が提示したメタデータＭｉを選択した場合（ステップ１３１５：ＹＥＳ）、支援装置２００は、選択されたメタデータＭｉを問題Ｐ１に適用可能なメタデータＭｓ（１≦ｓ≦ｎ）とする（ステップ１３２０）。そして処理は終了する。
【実施例３】
【０１０３】
第３実施例は、ＲＩＡ２５０の状態が変化することに応答して、現在のＲＩＡ２５０の状態に適用可能な既存のメタデータをメタデータＤＢ２４０から検索し、検索した既存のメタデータの適用条件に基づき決定される現在のＲＩＡ２５０の状態におけるメタデータの適用位置が、本来の意図された適用位置と一致しない場合に、既存のメタデータの適用条件の微調整を修正作業者に促し、微調整された情報を基に既存のメタデータを汎化するというシナリオに沿ったものである。第３実施例による支援装置２００は、第１実施例又は第２実施例による支援装置２００の構成要素に、更にメタデータ検証部２５５を追加することで実現される。そこで以下ではメタデータ検証部２５５を中心に、第３実施例による支援装置２００の機能を説明する。
【０１０４】
メタデータ生成部２２５は、ＲＩＡ２５０の状態が変化したことを検出すると、メタデータ検証部２５５を呼び出し、メタデータＤＢ２４０に格納されている既存のメタデータが現在のＲＩＡ２５０の状態に正しく適用できるかを検証する。このとき操作ログＤＢ２２０には、現在のＲＩＡ２５０の状態ＡＳｐが、上述した情報ＡのＵＲＬ、情報Ｂのグローバル変数群、情報Ｃのクッキー情報、及び情報ＤのＨＴＭＬ  ＤＯＭの組み合わせとして格納されていることに留意されたい。
【０１０５】
メタデータ検証部２５５は、メタデータ生成部２２５により呼び出されると、現在のＲＩＡ２５０の状態ＡＳｐを特定する情報ＡのＵＲＬ、情報Ｂのグローバル変数群、及び情報Ｃのクッキー情報を検索キーとして、そのａ、ｂ、及びｃの適用条件が一致する既存のメタデータＭｉ（ｉ＝１、２、…ｎ、ｎ：適用可能なメタデータ数）を、現在のＲＩＡ２５０の状態ＡＳｐに適用可能な既存のメタデータとして、メタデータＤＢ２４０から抽出する。そしてメタデータ検証部２５５は、抽出した各メタデータＭｉに対し、該メタデータＭｉの条件ｅが特定する位置に存在するブロックＢｉを、現在のＲＩＡ２５０の状態ＡＳｐを特定する情報ＤのＨＴＭＬ  ＤＯＭから抽出し、抽出したブロックＢｉを上記メタデータＭｉの条件ｄのブロックと比較する。
【０１０６】
両ブロックが一致する場合、抽出した既存のメタデータＭｉは現在のＲＩＡの状態ＡＳｐに正しく適用できることを意味するため、メタデータ検証部２５５はメタデータの検証処理を終了する。しかし、両ブロックが一致しない場合、これは、既存のメタデータＭｉの適用箇所が該適用箇所を含むブロック単位でウェブページ内の他の位置に移動したか、または削除された可能性が高いことを意味する。そのため、メタデータ検証部２５５は、両ブロックが一致しなかったメタデータの集合Ｍｊ（ｊ＝１、２、…ｍ、ｍ：ブロックが合致しなかったメタデータ数、ｍ≦ｎ）を修正作業者に提示して、メタデータＭｊの条件ｅのブロック特定情報の修正を促す。なお、上述したようにブロック情報はＲＩＡ２５０の状態が変化しても不変である。そのため、既存のメタデータＭｉの条件ｄに一致するブロックを現在のＲＩＡ２５０の状態ＡＳｐにおけるＨＴＭＬ  ＤＯＭから探し出すことで、移動後の位置や削除されている場合はその事実を求めることができる。
【０１０７】
修正作業者から修正後のブロック特定情報が入力されると、メタデータ検証部２５５は、第１実施例において説明した条件ｅの汎化アルゴリズムに従い、修正前のブロック特定情報と修正後のブロック特定情報とを用いてメタデータＭｊの条件ｅを汎化する。そしてメタデータ検証部２５５は、メタデータＤＢ２４０内のメタデータＭｊの条件ｅを汎化した条件ｅで更新する。
【０１０８】
以上、第３実施例のシナリオに沿って支援装置２００を説明した。図１４は、そのような第３実施例のシナリオの一例を示す。図１４に示すウェブページ１３００、１３１５は、どちらも自分の好みにカスタマイズできる同一のポータルサイトのトップ画面を示すが、それぞれ異なる状態にあるウェブページである。即ち、ウェブページ１３００では左上に配置されているウィジェットのブロック１３０５ａが、ウェブページ１３１５では真ん中の欄に移動されて、異なる位置のブロック１３０５ｂとなっている。ここで、次のような状況を考える。修正作業者が、修正作業中に、ウェブページ１３１５を表示させたとする。このときメタデータＤＢ２４０には、ウェブページ１３００上のブロック１３０５ａ内の問題を修正するためのメタデータＭ０が格納されているとする。
【０１０９】
すると支援装置２００は、ウェブ・ブラウザが現在表示しているウェブページ１３１５のＵＲＬ、グローバル変数群、及びクッキー情報が、メタデータＭ０の適用条件の条件ａ、ｂ、及びｃとそれぞれ一致することから、現在のウェブページ１３１５に適用可能なメタデータとしてメタデータＭ０をメタデータＤＢ２４０から抽出する。そして支援装置２００は、ウェブページ１３１５からメタデータＭ０の条件ｅが特定する位置に存在するブロック１３１０ｂを抽出し、これをメタデータＭ０の条件ｄとして指定されているウェブページ１３００上のブロック１３０５ａと比較する。両ブロックが一致しないことから、支援装置２００は元のブロック１３０５ａの移動又は削除を推測し、現在のウェブページ１３１５に正しく適用できるように修正作業者に対してメタデータＭ０の条件ｅの微調整を促す。修正作業者から修正後の条件ｅが入力されると、支援装置２００は元の条件ｅと修正後の条件ｅを用いて条件ｅを汎化し、汎化された条件ｅでメタデータＤＢ２４０内のメタデータＭ０の条件ｅを更新する。
【０１１０】
次に図１５〜図１６を参照して本発明の第３実施例によるメタデータの微調整処理の流れを説明する。図１５は、本発明の第３実施例による既存のメタデータの微調整処理の流れを示すフローチャートである。図１６は、図１５に示すフローチャートのステップ１５００の微調整が必要な既存メタデータ検索処理の詳細な流れを示すフローチャートである。  
【０１１１】
図１５に示すメタデータの微調整処理の流れを示すフローチャートは、図６（ａ）のステップ６１５からステップ６０５へ戻る途中に実行される処理であり、支援装置２００は、ステップ１５００において、現在のＲＩＡ２５０の状態に適用可能であって、かつ、微調整が必要なメタデータＭｊ（ｊ＝１、２、…ｍ、ｍ：適用可能かつ微調整が必要なメタデータ数）を求めてメタデータＤＢ２４０を検索する。微調整が必要なメタデータＭｊの検索処理の詳細は、図１６を参照して後述する。続いて支援装置２００は、微調整が必要なメタデータＭｊがあったか否かを判定する（ステップ１５０５）。
【０１１２】
微調整が必要なメタデータＭｊが存在した場合（ステップ１５０５：ＹＥＳ）、支援装置２００は、微調整が必要なメタデータＭｊの各々についてその条件ｅのブロック特定情報を、修正作業者Ｅ１によって入力された修正後の条件ｅのブロック特定情報を用いて条件ｅの汎化アルゴリズムに従って汎化する（ステップ１５１０）。そして支援装置２００は、汎化した条件ｅのブロック特定情報でメタデータＤＢ２４０内のメタデータＭｊを更新する（ステップ１５１５）。ステップ１５１５の後、またはステップ１５０５において微調整が必要なメタデータＭｊが存在しなかった場合、処理は結合点Ｂを介して図６（ａ）のステップ６０５へ戻る。
【０１１３】
図１６に示す微調整が必要な既存メタデータ検索処理の流れを示すフローチャートは、ステップ１６００から開始し、支援装置２００は、現在のＲＩＡ２５０の状態ＡＳｐに適用可能なメタデータＭｉの集合（ｉ＝１、２、…ｎ、ｎ：適用可能なメタデータ数）を、現在のＲＩＡ２５０の状態ＡＳｐを特定する情報Ａ、情報Ｂ、及び情報Ｃを検索キーとして、メタデータＤＢ２４０から検出する。続いて支援装置２００は、微調整の必要なメタデータの集合Ｍｊを空集合として生成する（ステップ１６０５
）。続いて支援装置２００は、メタデータの集合Ｍｉの全ての要素についてステップ１６１５からステップ１６５０の一連の処理を行ったか否かを判定する。ステップ１６１０を初めて実行する際は、判定結果は「いいえ」となる。
【０１１４】
メタデータの集合Ｍｉに上記一連の処理が未実施のメタデータＭｉが残っている場合（ステップ１６１０：ＮＯ）、続いて支援装置２００は、メタデータの集合Ｍｉから次に処理するメタデータＭｉを選択する（ステップ１６１５）。続いて支援装置２００は、選択したメタデータＭｉの条件ｅで特定される現在のＲＩＡ２５０状態ＡＳｐにあるウェブページ内のブロックと、選択したメタデータＭｉの条件ｄのブロックとを比較し（ステップ１６２０）、両ブロックが一致するか否かを判定する（ステップ１６３０）。
【０１１５】
両ブロックが一致しない場合（ステップ１６３０：ＮＯ）、支援装置２００は、選択メタデータＭｉの条件ｅを修正作業者Ｅ１に提示し（ステップ１６３５）、メタデータＭｉが現在のＲＩＡ２５０状態に適用可能となるように条件ｅを修正することを促す。続いて支援装置２００は、修正作業者Ｅ１が修正した条件ｅを入力したか否かを判定する（ステップ１６４０）。修正作業者Ｅ１により微調整された条件ｅが入力された場合（ステップ１６４０：ＹＥＳ）、支援装置２００は選択したメタデータＭｉをメタデータの集合Ｍｊに追加する（ステップ１６４５）。一方、ステップ１６３０において両ブロックが一致する場合（ステップ１６３０：ＹＥＳ）、ステップ１６４０において修正作業者Ｅ１により修正後の条件ｅが入力されなかった場合（ステップ１６４０：ＮＯ）、又はステップ１６４５から処理はステップ１６５０へ進み、支援装置２００は現在のメタデータＭｉに対する処理を終了して、ステップ１６１０へ戻る。ステップ１６１０において、全てのメタデータＭｉについて上記一連の処理が実施されたと判断された場合（ステップ１６１０：ＹＥＳ）、処理は終了する。
【０１１６】
図１７は、本発明の実施形態による支援装置２００及びメタデータ管理サーバ２０２としてのコンピュータ５０のハードウェア構成の一例を示した図である。コンピュータ５０は、バス２に接続されたメインＣＰＵ（中央処理装置）１とメインメモリ４を含んでいる。ハードディスク装置１３、３０、及びＣＤ−ＲＯＭ装置２６、２９、フレキシブル・ディスク装置２０、ＭＯ装置２８、ＤＶＤ装置３１のようなリムーバブル・ストレージ（記録メディアを交換可能な外部記憶システム）がフレキシブル・ディスクコントローラ１９、ＩＤＥコントローラ２５、ＳＣＳＩコントローラ２７などを経由してバス２へ接続されている。
【０１１７】
フレキシブル・ディスク、ＭＯ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置１３、３０、ＲＯＭ１４には、オペレーティング・システムと協働してＣＰＵ１に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。即ち、上記説明した数々の記憶装置には、コンピュータ５０にインストールされ、コンピュータ５０を本発明の実施形態による支援装置２００として機能させる、メタデータの生成・管理を支援するためのプログラムや、操作ログ情報、生メタデータといったデータを記録することができる。
【０１１８】
上記メタデータの生成・管理を支援するためのプログラムは、汎化対象設定モジュールと、操作ログ記録モジュールと、メタデータ生成モジュールと、ブロック抽出モジュールと、類似ブロック検索モジュールと、メタデータ汎化モジュールと、類似メタデータ検索モジュールと、メタデータ検証モジュールとを含む。これらモジュールは、ＣＰＵ１に働きかけて、コンピュータ５０を、汎化対象設定部２０５と、操作ログ記録部２１５と、メタデータ生成部２２５と、ブロック抽出部２３０と、類似ブロック検索部２３５と、メタデータ汎化部２４５と、類似メタデータ検索部２５０と、メタデータ検証部２５５としてそれぞれ機能させる。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
【０１１９】
コンピュータ５０は、キーボード／マウス・コントローラ５を経由して、キーボード６やマウス７のような入力デバイスからの入力を受ける。コンピュータ５０は、オーディオコントローラ２１を経由して、マイク２４からの入力を受け、またスピーカー２３から音声を出力する。コンピュータ５０は、視覚データをユーザに提示するための表示装置１１に、グラフィックスコントローラ１０を経由して接続される。コンピュータ５０は、ネットワーク・アダプタ１８（イーサネット（登録商標）・カードやトークンリング・カード）等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
【０１２０】
以上の説明により、コンピュータ５０は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、又は、これらの組み合わせによって実現されることが容易に理解されるであろう。なお、上記説明した構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
【０１２１】
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更又は改良を加えることが可能であることが当業者に明らかである。従って、そのような変更又は改良を加えた形態も当然に本発明の技術的範囲に含まれる。
【０１２２】
なお、特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り任意の順序で実現しうることに留意すべきである。また、前の処理の出力を後の処理で用いる場合でも、前の処理と後の処理の間に他の処理が入ることは可能である場合があること、又は間に他の処理が入るように記載されていても前の処理を後の処理の直前に行うよう変更することも可能である場合があることも留意されたい。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」、「続いて、」等を用いて説明したとしても、この順で実施することが必須であることを必ずしも意味するとは限らない。
【図１】
0005756386.tif 000002
【図２】
0005756386.tif 000003
【図３】
0005756386.tif 000004
【図４】
0005756386.tif 000005
【図５】
0005756386.tif 000006
【図６】
0005756386.tif 000007
【図７】
0005756386.tif 000008
【図８】
0005756386.tif 000009
【図９】
0005756386.tif 000010
【図１０】
0005756386.tif 000011
【図１１】
0005756386.tif 000012
【図１２】
0005756386.tif 000013
【図１３】
0005756386.tif 000014
【図１４】
0005756386.tif 000015
【図１５】
0005756386.tif 000016
【図１６】
0005756386.tif 000017
【図１７】
0005756386.tif 000018