JP2013077246A - 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム - Google Patents

動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム Download PDF

Info

Publication number
JP2013077246A
JP2013077246A JP2011217999A JP2011217999A JP2013077246A JP 2013077246 A JP2013077246 A JP 2013077246A JP 2011217999 A JP2011217999 A JP 2011217999A JP 2011217999 A JP2011217999 A JP 2011217999A JP 2013077246 A JP2013077246 A JP 2013077246A
Authority
JP
Japan
Prior art keywords
metadata
information
block
specifying
web application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2011217999A
Other languages
English (en)
Other versions
JP5756386B2 (ja
Inventor
Masayoshi Teraguchi
正義 寺口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2011217999A priority Critical patent/JP5756386B2/ja
Priority to US13/629,016 priority patent/US8935364B2/en
Priority to US13/732,787 priority patent/US9223815B2/en
Publication of JP2013077246A publication Critical patent/JP2013077246A/ja
Application granted granted Critical
Publication of JP5756386B2 publication Critical patent/JP5756386B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0709Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a distributed system consisting of a plurality of standalone computer nodes, e.g. clusters, client-server systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0748Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a remote unit communicating with a single-box computer node experiencing an error/fault
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0775Content or structure details of the error report, e.g. specific table structure, specific error fields
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)

Abstract

【課題】動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援する。
【解決手段】支援装置は、メタデータ生成部と、ブロック抽出部と、類似ブロック検索部と、メタデータ汎化部とを含み、修正作業者による問題の修正に応答して、該修正内容と共に、問題が発生するウェブアプリケーションの状態を特定するグローバル変数群及びクッキー情報とを適用条件として含むメタデータを生成し、問題の発生箇所を含む意味的にまとまりのあるブロックを手掛かりに、生成したメタデータを適用可能な他のブロックを操作ログから抽出し、これを用いて生成したメタデータの適用条件を、key-valueのペア構造に変換して共通する部分を取り出すことにより汎化する。
【選択図】図2

Description

本発明は、情報処理技術に関係し、より詳しくは、動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理を支援する装置、方法、およびプログラムに関する。
静的なウェブ・サイト上のアクセシビリティ問題を解決するために、ソーシャル・ネットワークの力を活用して外部メタデータを作成し、適用するプロジェクト(例えば、Social Accessibility(SA、http://sa.watson.ibm.com/))やシステム(例えば、Web Accessibility Improvement System(WAIS、http://wais−distr1.tori-info.co.jp/))が存在する。ここで、SAを例にそのワークフローを説明する。SAでは図1に示すようにまず、1)利用者60はアクセスできないウェブページに遭遇すると、(2)そのウェブページ上の問題をソーシャル・アクセシビリティ・サーバ65に報告する。続いて、(3)報告を受けたソーシャル・アクセシビリティ・サーバ65は、ウェブページ上の問題をボランティア(サポータ)70に通知し、サポータ70は通知されたウェブページ上の問題をブラウザで確認する。続いて(4)サポータ70は、ウェブページ上の問題を修正してメタデータを作成し、メタデータをソーシャル・アクセシビリティ・サーバ65へ送る。最後に(5)利用者60は、対応するメタデータをソーシャル・アクセシビリティ・サーバ65から読み込み、これを用いて修正されアクセス可能となったウェブページをブラウズする。
ここでサポータ70が作成するメタデータの構造は、非特許文献1において次のように定義されている。
・Uniform Resource Identifier(URI)アドレス:メタデータを適用する文書を特定するターゲットURI
・エレメント・アドレス:メタデータを適用するHTML要素の記述(一例としてXPath)
・条件:メタデータの適用条件
・セマンティック:メタデータの意味
また、メタデータ等の修正情報を似通った別の問題に適用させるための技術が特許文献1〜3及び非特許文献2において開示されている。
特許文献1は、URIパターンはワイルドカードを含むURIもしくは正規表現などであらわされ、ポインタはXPathや画像を指し示すためのURI(ワイルドカードもしくは正規表現も含む)などによってあらわされることを開示する。特許文献1はまた、ページ間におけるメタデータの拡張方法として、あるページ内で同じデータを持つメタデータを選択し、複数のメタデータのXPathを一般化し類推される要素を選択し、選択された要素について、効果検証類似度及び予め設定しておいた閾値を用いてさらに要素を絞り込む技術を開示する。特許文献1はまた、ページ間におけるメタデータの拡張方法として、あるメタデータのXPathについて他のページでも評価できるページを選択し、選択されたページでメタデータが適用される要素を選択し、選択された要素について効果検証類似度及び予め設定しておいた閾値を用いて要素を絞り込む技術を開示する。
特許文献2は、ウェブページのアクセシビリティが適切であるかどうかについて人間が診断した場合、この診断結果を蓄積し、次に同じデザインが見つかれば、以前の診断を元に、診断の結果を示す技術を開示する。
特許文献3は、アノテーションデータにおけるコンテンツの構成要素に対する変換内容の記述を、XPathにより、このコンテンツの構成要素のレイアウトに対応付けておき、アノテーションファイルの選択は、XPathが当該ウェブコンテンツに適用可能かどうか、すなわち、当該ウェブコンテンツ中のグループ(ヘッダー、フッター、リンクリスト、本文、広告など、ウェブコンテンツ背景色などのレイアウトで表現されているビジュアルな意味のかたまり)に対して正しくXPathが当たっているかどうかを判定して行う技術を開示する。また特許文献3は、URLの正規表現を用いる従来手法では、ウェブコンテンツがクッキー等を用いて動的にレイアウト変更する場合に対応できないことを指摘する。
非特許文献2は、id表現、タグの名前、インデックスを含む属性といった観点からペアとなる2つのXPathを比較して最大の共通部分を抜き出すことにより、汎用的なXPathを生成する技術を開示する。
なお、特許文献4は、DHTMLを利用したウェブページにおける状態遷移を動的に解析する手法に関する文献であるが、ウェブページ内の状態を取得するのに、java(登録商標)script内のグローバル変数(プログラム全体に対して定義される変数)の値を利用可能なことを開示する。
特開2011−22864号公報(第9頁、第12−13頁、図4、図8、図13) 特開2010−250777号公報 (第3−4頁) 特開2003−85087号公報(第4−7頁) 特開2007−172377号公報(第5頁)
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
ここで、上述した従来技術を利用して、java(登録商標)scriptが多用されるような動的なウェブ・アプリケーションにおける様々な問題をメタデータにより解決することを考える。動的なウェブ・アプリケーションではURLが同一でもコンテンツが異なることが起こりえるため、そのような動的なウェブ・アプリケーションを対象とするためには、ウェブ・アプリケーションの状態を正しく認識し、メタデータの適用条件を効率よく拡張する必要がある。上述したように、特許文献3及び4には、動的なウェブ・アプリケーションの状態を認識するために、グローバル変数やクッキー情報を利用できることが記載または示唆されている。しかしながら、その拡張方法については記載がなく、従来のメタデータの拡張技術を組み合わせただけではグローバル変数やクッキー情報を拡張できない。
また、上記従来技術では、新しい問題に適用可能な既存のメタデータの検出方法や、生成したメタデータを適用可能な同一ページ内または別ページ内の他の適用箇所の人手によらない具体的な検出方法が開示されていない。そのためそのような既存のメタデータや他の適用箇所を修正作業者に選択させるとしても、選択のために、実際は適用できない既存のメタデータを提示したり、生成したメタデータの適用条件の拡張に不要な他の適用箇所を多く提示したりといった問題が生ずる。
本発明は、上記従来技術における問題点に鑑みてなされたものであり、本発明は、動的なウェブ・アプリケーションを対象にして、様々な問題の解決に適用可能な新たなメタデータを生成し、その新たなメタデータの適用条件を拡張し、その結果新たなメタデータの再利用性を高めて効率よく管理できるようにするための方法、装置、およびプログラムを提供することを目的とする。
本発明では、上記従来技術の課題を解決するために、動的なウェブアプリケーションを対象にして、様々な問題の解決に適用可能なメタデータを新たに定義する。そのようなメタデータは、問題を修正するための操作を示す操作情報と該操作情報の適用に関する適用条件とを含み、適用条件として、問題が生じたウェブページの場所を特定するアドレス特定情報(条件a)と、ウェブ・アプリケーションの状態を特定するグローバル変数群(条件b)と、ウェブ・アプリケーションの状態を特定するクッキー情報(条件c)と、ウェブページ内の問題の発生箇所を含む意味的にまとまりのあるブロック情報(条件d)と、問題の発生時におけるブロック情報のウェブページ内の位置を特定するブロック特定情報(条件e)と、ブロック情報内で問題の発生箇所を特定する位置特定情報(条件f)とを含む。ここで条件b、c、dは、非特許文献1により開示されるメタデータ構造にはない新規な項目であり、条件e、fは、非特許文献1により開示されるエレメント・アドレスを拡張したものである。
そして本発明は、新たに定義したメタデータの適用条件を汎化してこれを効率的に管理するために、以下の特徴を有するメタデータの生成・管理を支援する方法を提供する。本発明の支援する方法は、(a)前記コンピュータが、修正作業者によるウェブ・アプリケーションの問題の修正に応答して、前記問題を修正するための操作を示す操作情報と該操作情報の適用条件とを含むメタデータM1であって、前記適用条件として、ウェブページ内の前記問題の発生箇所を含む意味的にまとまりのあるブロック情報と、前記問題が発生する前記ウェブ・アプリケーションの状態を特定するグローバル変数群及びクッキー情報とを含む前記メタデータM1を生成するステップと、(b)前記コンピュータが、前記修正作業者による前記ウェブ・アプリケーション上の操作ログを参照して、修正作業中に遷移したウェブページ内のブロックのうち前記メタデータM1の前記ブロック情報と一致する1以上のブロックB0の各々に対し、該ブロックB0を含む前記ウェブページを出力した前記ウェブアプリケーションの状態を特定するグローバル変数群とクッキー情報とを含むメタデータを算出するステップと、(c)前記コンピュータが、前記メタデータM1と各ブロックB0とに対しそれぞれ求めた全ての前記グローバル変数群及び前記クッキー情報の各々をkey-valueのペア構造に変換して共通する部分を取り出し、取り出した前記共通する部分で前記メタデータM1の前記グローバル変数群及び前記クッキー情報を更新するステップとを含む。
好ましくは、算出するステップ(b)は、コンピュータが、メタデータM1のブロック情報と一致する1以上のブロックB0を修正作業者に提示し、メタデータM1の操作情報が示す操作を適用可能なブロックSBを選択させるサブステップ(b−1)を含み、前記コンピュータは、選択された各ブロックSBに対し前記グローバル変数群と前記クッキー情報を含むメタデータの算出を行う。
より好ましくは、更新するステップ(c)は、コンピュータが、全てのグローバル変数群または全てのクッキー情報に共通に含まれるkeyを抜き出し、抜き出したkeyに対応するvalueが全てのグローバル変数群または全てのクッキー情報について同一であるkey-valueのペア構造を共通する部分として取り出すサブステップ(c−1)を含む。
更に好ましくは、更新するステップ(c)は、コンピュータが、グローバル変数群またはクッキー情報に含まれる配列オブジェクトに対し、配列の要素の値を、該要素を取り出すキーと該要素の値とからなるkey-valueのペア構造に更に変換するサブステップ(c−2)を含む。
更に好ましくは、更新するステップ(c)は、コンピュータが、全てのグローバル変数群または全てのクッキー情報に共通に含まれるkeyに対応するvalueが配列オブジェクトである場合、該配列オブジェクトのkey-valueのペア構造に変換された各要素についてサブステップ(c−1)を行うサブステップ(c−3)を含む。
また好ましくは、更新するステップ(c)において、コンピュータは、単一情報からなるクッキー情報を、keyとvalueが同一のkey-valueのペア構造に変換する。
また好ましくは、生成するステップ(a)において、コンピュータは、ウェブ・アプリケーションの状態を特定するのに有効であるとして予め上記コンピュータに設定されている種類のグローバル変数群及びクッキー情報についてそれぞれ値を求め、メタデータM1の適用条件とする。
また好ましくは、(d)コンピュータが、修正作業者によるウェブ・アプリケーションの現在の問題の発生箇所の特定に応答して、発生箇所を含むブロック情報と、該ブロック情報内で発生箇所を特定する位置特定情報とを生成するステップと、(e)コンピュータが、生成したブロック情報と位置特定情報とを検索キーとして、一致するメタデータを過去に生成されたメタデータを格納するメタデータ格納部から取り出して修正作業者に提示し、修正作業者にステップ(d)で特定された現在の問題の発生箇所に適用可能なメタデータM0を選択させるステップと、(f)コンピュータが、選択されたメタデータM0の操作情報を参照して、ウェブ・アプリケーションの現在の問題を修正するためのメタデータM2を生成するステップとを更に含む。
より好ましくは、(g)コンピュータが、メタデータM2を用いてメタデータM0の適用条件を汎化することにより既存のメタデータM0を更新するステップを更に含む。
また好ましくは、(h)コンピュータが、現在のウェブ・アプリケーションが出力したウェブページのアドレス情報と、ウェブ・アプリケーションの現在の状態を特定するグローバル変数群及びクッキー情報とを算出するステップと、(i)コンピュータが、算出したアドレス情報、グローバル変数群、及びクッキー情報を検索キーとして、一致するメタデータM0を過去に生成されたメタデータを格納するメタデータ格納部から取り出すステップと、(j)コンピュータが、取り出したメタデータM0のブロック情報を、該メタデータM0のブロック特定情報から取り出される現在のウェブ・アプリケーションが出力したウェブページ内の対応するブロックと比較し、一致しない場合にメタデータM0の修正を修正作業者に促し、修正されたブロック特定情報を受け取るステップと、(k)メタデータM0のブロック特定情報を、修正されたブロック特定情報を用いて汎化することにより既存のメタデータM0を更新するステップを更に含む。
以上、動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理を支援する方法として本発明を説明した。しかし本発明は、そのような方法をコンピュータに実行させるための支援プログラム、及びそのような支援プログラムをコンピュータにインストールして実現される支援装置として把握することもできる。
本発明によれば、メタデータの適用条件としてウェブ・アプリケーションの状態を特定するグローバル変数群及びクッキー情報を含むメタデータを生成するので、動的なウェブアプリケーションにおける問題点を、メタデータを用いて解決することが可能となる。また本発明によれば、メタデータの適用条件に更にウェブページ内の問題の発生箇所を含む意味的にまとまりのあるブロック情報を含めるので、ブロック情報を手掛かりに、生成したメタデータを適用可能なウェブページ内の他のブロックをコンピュータの演算処理により見つけ出すことが可能となる。そして本発明によれば、適用条件としてのブロックとこれに類似する他のブロックにそれぞれ対応するグローバル変数群及びクッキー情報の各々をkey-valueのペア構造に変換するので、グローバル変数群及びクッキー情報それぞれの集合について共通する部分を取り出すことが可能となり、グローバル変数群及びクッキー情報の適用条件を拡張することが可能となる。本願発明のその他の効果については、各実施の形態の記載から理解される。
SAのワークフローを説明する図である。 本発明の実施形態による支援装置200の機能ブロック図である。 (a)は、あるサイトのTOP画面を示す図である。(b)は、図3(a)に示す画面のHTML DOMツリー構造を示す図である。 本発明の第1実施例のシナリオの一例を示す図である。 本発明の第1実施例における汎化前後のメタデータの一例を示す図である。 (a)は、本発明の第1実施例によるメタデータの生成及び管理処理の前半の処理の流れを示すフローチャートである。(b)は、本発明の第1実施例によるメタデータの生成及び管理処理の後半の処理の流れを示すフローチャートである。 本発明の第1実施例におけるブロック抽出処理の流れを示すフローチャートである。 本発明の第1実施例における類似ブロック検索処理の流れを示すフローチャートである。 本発明の第1実施例における汎化処理の流れを示すフローチャートである。 本発明の第2実施例のシナリオの一例を示す図である。 本発明の第2実施例における汎化前後のメタデータの一例を示す図である。 本発明の第2実施例によるメタデータの生成及び既存のメタデータの汎化処理の後半の処理の流れを示すフローチャートである。 本発明の第2実施例における類似メタデータ検索処理の流れを示すフローチャートである。 本発明の第3実施例のシナリオの一例を示す図である。 本発明の第3実施例による既存のメタデータの微調整処理の流れを示すフローチャートである。 本発明の第3実施例における微調整が必要な既存メタデータ検索処理の流れを示すフローチャートである。 本発明の実施形態による支援装置200を実現するのに好適な情報処理装置のハードウェア構成の一例を示す。
以下、本願発明を実施するための形態を図面に基づいて詳細に説明するが、以下の実施形態は特許請求の範囲にかかる発明を限定するものではなく、また実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。なお、実施の形態の説明の全体を通じて同じ要素には同じ番号を付している。
図2は、本発明が適用されるコンピュータを含むネットワークシステム(ソーシャル・ア
クセシビリティ・システム)の一実施態様及び本発明の実施形態による支援装置200の機能ブロックを示す。本システムは、メタデータ管理サーバ202、ウェブ・サーバ255、問題データベース260、開発者PC265、修正作業者PC270を備える。これらはインターネット等のネットワーク262を介して互いに通信可能に接続されている。また、メタデータ管理サーバ202上では支援装置200が動作し、ウェブ・サーバ255上ではウェブ・アプリケーション250が動作する。
本発明では、利用者のウェブ・ブラウザ上に静的なウェブ・サイトの情報を表示するだけの単純なウェブ・アプリケーションから、java(登録商標)script等の技術を用いてページ遷移を伴わずにウェブ・ブラウザ上の情報を動的に更新する動的なウェブ・アプリケーションまでのほぼ全てのウェブ・アプリケーションを対象とする。従って図2に示すウェブ・アプリケーション250の種類に特に制限はなく、以下では本発明が対象とするウェブ・サーバ255上のウェブ・アプリケーション250を総称してRich internet application(RIA)250とよぶ。
また本発明では、RIA250の開発者(開発者PC265)のみならずRIA250上の問題点を修正する修正作業者(修正作業者PC270)の存在を仮定する。修正作業者は開発者自身であってもよいし、RIA250に造詣の深い専門知識を持った専門家や利用者であってもよい。更に本発明では、既存の技術を活用した方法によってRIA250上の問題点がまとめられた問題データベース(DB)260が存在するものとする。問題DB260としては、Bugzilla(詳細は、http://www.bugzilla.org/を参照)などのバグトラッキングシステムを利用できる。修正作業者は修正作業者PC270にインストールされたウェブ・ブラウザを用いてネットワーク262を介してRIA250にアクセスすると、問題DB260に登録されている問題P1を参照して、(1)問題P1の発生箇所の特定を行い、(2)問題P1の修正を行う。修正結果は、SAにおけるソーシャル・アクセシビリティ・サーバ65に相当するメタデータ管理サーバ202によって管理される。
本発明の実施形態による支援装置200は、このような修正作業者による修正作業に応答して起動され、修正作業者が修正結果をメタデータとして生成し、メタデータの適用条件を汎化し及び検証することを支援する。支援装置200は、メタデータ管理サーバ202上に実装され、メタデータ管理サーバ202の一部として動作する。メタデータ管理サーバ202は、後述する支援装置200の各構成要素のほかに、図示しない、基本的な機能を提供するオペレーション・システムと、ウェブ・ブラウザと、修正作業者PC270上で動作するウェブ・ブラウザのプラグイン若しくは単体アプリケーションとの通信機能を果たす通信部とを備える。ここで、修正作業者PC270上で動作するウェブ・ブラウザのプラグイン若しくは単体アプリケーションは、編集作業者の操作ログ取得、問題の解決に適用可能なメタデータの提示及び選択、手動での問題解決、作成されたメタデータを適用可能なRIA250の状態およびブロックの表示及び選択、現在のRIA250の状態で正しく適用できないメタデータの表示、及び正しい適用位置の選択又は削除を支援する。詳細は支援装置200の機能に関連して後述する。なお、メタデータ管理サーバ202とウェブ・サーバ255は同一サーバ上に実装してもよく、また、これらを開発者PC265や修正作業者PC270上で動作させる構成を採用してもよい。更に、修正作業者PC270は、支援装置200とのユーザインタフェースとして機能する図示しないウェブ・ブラウザを備え、メタデータ管理サーバ202は、修正作業者PC270上で動作するウェブ・ブラウザのプラグインとして、或いは、単体アプリケーションとして実装してもよい。以下では、メタデータ管理サーバ202とウェブ・サーバ255は同一サーバ上に実装されるものとして説明する。この場合、修正作業者のRIA250に関連する操作は、上述した修正作業者PC270上で動作するウェブ・ブラウザのプラグイン若しくは単体アプリケーションにより、上述したメタデータ管理サーバ202の通信部を経由して支援装置200へ通知される。逆もまた同様である。
より具体的には、支援装置200は、汎化対象設定部205を含み、汎化対象設定部205は、開発者がメタデータ管理サーバ202にネットワーク262を介して接続された開発者PC265を介して、RIA250の状態を特定するのに有効なグローバル変数群及びクッキー情報の種類を汎化対象DB210に登録するのを可能にする。また、支援装置200は操作ログ記録部215を含み、操作ログ記録部215は、修正作業者による修正対象とするRIA250へのアクセスに応答して、問題発生箇所の特定作業の間、修正作業者PC270上の操作情報を取得し、操作ログDB220に記録する。
支援装置200はまた、メタデータ生成部225と、ブロック抽出部230と、類似ブロック検索部235と、メタデータ汎化部245とを含み、修正作業者による問題P1の修正に応答して、該問題P1の修正内容を含むメタデータM1を本発明において新たに定義したメタデータの構造に従って生成するとともに、問題P1の発生箇所を含む意味的にまとまりのあるブロックを手掛かりに、生成したメタデータM1を適用可能な他のブロックを操作ログDB220から抽出し、これを用いて生成したメタデータM1の適用条件を汎化してメタデータDB240に格納する(第1実施例)。
支援装置200は更に類似メタデータ検索部250を含み、修正作業者による問題P1の発生箇所の特定に応答して、問題P1の発生箇所を含む意味的にまとまりのあるブロックを手掛かりにメタデータDB240から問題P1に適用可能な既存のメタデータM0を検索し、検索した既存のメタデータM0を利用して問題P1を修正するためのメタデータM1を生成するとともに、生成したメタデータM1を用いて検索した既存のメタデータM0を汎化してメタデータDB240に格納する(第2実施例)。
支援装置200は更にまたメタデータ検証部255を含み、修正作業者PC270からの要求によりRIA250の状態が変化するごとに、変化後のRIA250の状態に適用可能な既存のメタデータM0をメタデータDB240から検索し、検索した既存のメタデータM0の適用条件に基づき決定される現在のRIA250の状態におけるウェブページ内のブロックが、本来意図されたブロックと一致しない場合に、既存のメタデータM0の適用条件の修正を修正作業者に促し、修正作業者によって入力された修正情報に基づきメタデータDB240内の既存のメタデータを更新する(第3実施例)。
以下、支援装置200の各構成要素の詳細を、上記第1から第3の実施例に沿って順に説明する。
第1実施例は、修正作業者が支援装置200を利用して、操作情報を記録しながらRIA250上の問題P1を新たに解決してメタデータM1を生成するとともに、操作ログを活用して生成したメタデータM1を他の箇所にも適用可能に拡張するというシナリオに沿ったものである。修正作業者は、問題DB260から取得したRIA250上の問題リストを参照し、ある問題P1について修正方法を思いつくと、ウェブ・ブラウザを起動してRIA250にアクセスする。すると該アクセスがメタデータ管理サーバ202の一部として動作する支援装置200に検出され、メタデータ生成部225が呼び出される。呼び出されたメタデータ生成部225は修正作業者によるウェブ・ブラウザを介したRIA250上での操作を監視して、修正作業者が、問題P1が発生するRIA250の状態を特定するのを待つ。
ここでRIA250の状態とは、次の情報により特定されるものである。
A.RIA250が出力するHTML文書(ウェブページともいう)の場所を特定するURL
B.ウェブ・ブラウザ上でjava(登録商標)scriptがアクセス可能なグローバル変数群(但し、以下のDと関数を表す変数を除く)
C.RIA250に関連したクッキー情報
D.Document Object Model(DOM)で定義されるHTML文書
但し、BとCについては、BとCに属する全ての情報を単純に利用するだけではRIA250の状態をうまく特定できない可能性がある。そこで本発明では、上述したように、汎化対象設定部205と汎化対象DB210とを用意し、開発者が予め支援装置200に対しRIA250の状態を特定するために有効なグローバル変数群及びクッキー情報の種類を設定できるようにした。
即ち、汎化対象設定部205は、開発者PC265からネットワーク262を介して送信されたグローバル変数群及びクッキー情報の種類を示す情報を受信すると、これを同じく開発者PC202から送信されたRIA250の識別情報に関連付けて汎化対象DB210に格納する。そして、メタデータ生成部225は呼び出されると最初に汎化対象DB210にアクセスし、修正作業者PC上のウェブ・ブラウザが現在アクセスしているRIA250に関連付けられたグローバル変数群及びクッキー情報の種類を示す情報を検索し、あればそれを作業領域に読み出す。なお、以下ではDOMで定義されるHTML文書を単にHTML DOMと呼ぶ。
メタデータ生成部225は、修正作業者が問題P1が発生するRIA250の状態に到達し、該状態におけるHTML DOMの中から問題P1が発生する箇所を特定したことを検出すると、ブロック抽出部230を呼び出し、問題P1の発生時のHTML DOMから問題P1の発生箇所を含む意味的にまとまりのあるブロックB1を抽出する。問題P1の発生箇所を含む意味的にまとまりのあるブロックB1は、HTML DOM内の問題P1の発生箇所である要素を含むサブツリーと言い換えることもできる。なお、サブツリーは、問題P1の発生箇所である要素を含めばよく、そのサイズに制約はない。抽出されたブロックB1情報は、メタデータ生成部225に渡され、作業領域に一時保存される。
ブロック抽出部230は、メタデータ生成部225により呼び出されると、問題P1が発生するRIA250の状態におけるHTML DOMを、既存のブロック抽出手法を利用して複数のブロックに分割し、分割した複数のブロックから、問題P1の発生箇所である要素を含むブロックB1を抽出する。ここで、ブロック抽出手法としては、例えば、J.Mahmud、外2名、“Csurf:A Context−Driven Non−Visual Web−Browser,Proceedings of the 16th Iinternational conference on WorldWideWeb、2007や、Y. Lan、外2名、“Eliminating noisy information in Web pages for data mining”、 Proceedings of the ninth ACM SIGKDD international conference on Knowledge(KDD‘03) discovery and data mining、pp.296−305、2003等に開示される既存の手法を利用できる。
以下、J.Mahmud等によって提案されたブロック抽出手法を利用したブロックB1の抽出方法を説明する。なお、J.Mahmud等によって提案されたブロック抽出手法は、HTML DOM構造のみならず、意味的な情報からブロックB1を抽出するが、ここではより簡単なHTML DOM構造のみからブロックB1の抽出方法を説明する。(1)HTML DOM上で修正箇所である要素Eを特定する。(2)要素EがDOMツリーのルートに該当する場合は要素EそのものをブロックB1として特定を終了する。(3)要素EがDOMツリーのルートではない場合、要素Eの親要素Epを決定する。(4)親要素Epの子要素を調べる。親要素Epが2以上の子要素を持ち、かつその子要素同士の構造上の類似性が高いと判断される場合、親要素EpをブロックB1として特定を終了する。(5)(4)において親要素Epの子要素構造に類似性があると判断できない場合、E=Epとして(2)の処理に戻る。
(4)における子要素同士の構造上の類似性の判断には、いくつかのアルゴリズムがあるが、本実施例では要素の属性の類似性を利用する。例えば、子要素同士が同一のClass属性を持つ場合、システム内部では同一の構造を持つ要素として定義されているため、類似性が高いと判断できる。また、子要素同士が同種のID属性を持つ場合、システムによっては内部である規則に基づいてIDを生成しているため、類似性が高いと判断できる。なお、上記類似性の判断はあくまで例として説明したものであり他の類似性の判断手法の利用を制限するものではないことに留意されたい。
以上のようにしてブロック抽出部230により抽出されるブロックB1は、コンピュータ内部において、HTML DOMのサブツリーとして保持される。図3に例を示す。図3(a)はあるサイトのTOP画面300を示し、図3(b)は、図3(a)に示すTOP画面300のHTML DOMツリー構造315を示す。ここで、矩形305により囲まれた箇所において問題P1が発生し、ブロック抽出部230が矩形310で囲まれたブロックB1を抽出したとすると、コンピュータ内部には、図3(a)の矩形310で囲まれたブロックB1に対応する図3(b)の矩形325に囲まれたHTML DOMのサブツリー情報がブロックB1情報として保持される。図3(b)の矩形325に囲まれたHTML DOMのサブツリー情報には、図3(a)に示す矩形305の問題P1の発生箇所に対応する、HTML DOMのサブツリーの要素320が含まれる。なお、ブロックはどの位置に移動されてもHTML DOMのサブツリーとして表されるため、ブロック情報は位置の移動によって変化しないことに留意されたい。
メタデータ生成部225はまた、修正作業者による修正対象とするRIA250へのアクセスに応答して、操作ログ記録部215を呼び出して、問題P1の発生箇所の特定に至るまでの間の修正作業者によるRIA250上の操作ログL1と、問題P1の発生箇所の特定後、問題P1が解決されるまでの修正作業者によるRIA250上の操作ログL2とを記録する。L1とL2は同じ一連の操作ログとして取り扱われる。なお、問題P1の解決は、ウェブ・サイトのCSS、HTML、XML、DOM、java(登録商標)script等の記述や修正、デバックを行う機能を提供するFirebug(詳細は、http://getfirebug.com/を参照)のようなツールを利用して修正作業者が手動により行ってよい。これに代えて、問題P1の解決は、既存のメタデータから現在の問題P1に適用可能なメタデータを検索することにより行ってもよい。但し、その場合であっても、適用可能なメタデータが存在しない場合は上述のように修正作業者が手動により修正を行う。本実施例では、問題P1の解決は、修正作業者が手動により行うものとする。なお、既存のメタデータを利用した問題P1の解決については実施例2において説明する。
操作ログ記録部215は、メタデータ生成部225により呼び出されると、問題P1の発生箇所が特定されるまで、RIA250の状態が変化するごとにRIA250の状態や修正作業者のRIA250上の操作ログL1を取得して操作ログDB220に格納する。また、操作ログ記録部215は、問題P1の発生箇所の特定後、問題P1が解決されるまで、RIA250の状態が変化するごとにRIA250の状態や修正作業者のRIA250上の操作ログL2を取得して操作ログDB220に格納する。操作ログ記録部215が取得する操作ログL1は、1.修正作業者が修正対象のRIA250にアクセスしてから問題P1の発生箇所を特定するまでの全てのRIA250の状態、2.問題P1の発生箇所を指定する位置指定情報を含む。また、操作ログ記録部215が取得する操作ログL2は、3.問題P1の修正内容を含む。以下操作ログの情報1.〜3.の内容を順に説明する。
1.問題発生箇所の特定修正作業中に遷移したRIA250の各状態をASi(i=1、2、…、n、n:遷移したRIA250の状態数)で表すと、各ASiは、上述したRIA250の状態を特定するための情報A〜Dの組み合わせで表現される。なお、情報B及び情報Cについては、作業領域にRIA250の状態を特定するために有効なグローバル変数群及びクッキー情報の種類を示す情報が存在する場合には、該種類についてのみグローバル変数群及びクッキー情報の値を取得する。本操作ログは、現在の問題P1の修正内容を適用可能な他の箇所を探す際の手掛かりとして後述する類似ブロック検索部235により用いられる。
2.修正作業者がウェブ・ブラウザ上でマウス等の入力装置を用いて問題P1の発生箇所の特定を行う場合は、特定されたDOM中の要素をXPathや画像を指し示すURI等のポインタで指定し、位置指定情報とする。かかる情報はウェブ・ブラウザから取得してよい。これに代えて、問題DB260に格納された問題P1の記述情報を流用してもよく、この場合、問題P1の記述情報(DOM中の要素を指し示すXPathや画像を指し示すURI等のポインタ)がそのまま位置指定情報として利用される。
3.Firebugのような既存のツールを利用して問題P1の発生箇所に対してなされた操作情報を修正内容とする。即ち、修正のための操作情報であって、修正対象(例えば、DOMツリーのノード、属性、ファイル等)を指定する情報と修正対象に対する修正内容(例えば、挿入、削除、更新等、挿入及び更新については挿入内容や置換内容を含む)を記録する。上記操作ログの情報2.及び3.は、メタデータを生成するメタデータ生成部225により用いられる。
メタデータ生成部225は、操作ログ記録部215による操作ログL1及びL2の記録が終了すると、操作ログDB220に格納された操作ログL1及びL2を読み出して、現在の問題P1に対するメタデータM1を生成し、メタデータDB240に格納する。以下、本発明において新たに定義するメタデータM1のデータ構造と各データの取得方法とを説明する。メタデータM1は、問題P1を修正するための操作を示す操作情報と該操作情報の適用に関する適用条件を含む。最初に適用条件としての条件a〜条件fを説明し、その後に操作情報について説明する。なお、メタデータの適用条件は、問題P1が発生する箇所を特定するための情報として捉えることができる。
条件a:問題が生じたウェブページの場所を特定するアドレス特定情報、即ちURL。該情報は、操作ログL1の情報1のRIA250の最後の状態ASnに含まれる情報Aとして取得される。なお、取得したURLは、プロトコル、ドメイン、フォルダ+ファイル、パラメータに分けて管理する。
条件b:問題が発生した状態におけるRIA250に関連したグローバル変数群。該情報は、操作ログL1の情報1のRIA250の最後の状態ASnに含まれる情報Bとして取得される。
条件c:問題が発生した状態におけるRIA250に関連したクッキー情報。該情報は、操作ログL1のRIA250の最後の状態ASnに含まれる情報Cとして取得される。
条件d:メタデータM1の適用箇所、即ち、問題P1の発生箇所を含むブロックB1の情報。該情報は、上述したようにブロック抽出部230により抽出され作業領域に保存されているため、作業領域から取得される。
条件e:問題の生じたウェブページ内のブロックB1の位置を特定するブロック特定情報。該情報は、操作ログL1の情報2の問題P1の発生箇所を指定する位置指定情報から、条件dのブロックB1の先頭箇所までの情報を抜き出すことにより求められる。例えば、問題P1の発生箇所を指定する位置指定情報として操作ログDB220に、“html/body/div/table/tbody/td[3]/table/tbody/td[1]/imag”が格納されており、ブロックB1がtd[3]にあるテーブル構造であったとすると、ブロック特定情報は、“html/body/div/table/tbody/td[3]”である。
条件f:ブロックB1内で問題の発生箇所を特定する位置特定情報。該情報は、操作ログL1の情報2の問題P1の発生箇所を指定する位置指定情報から、条件dのブロックB1の先頭箇所から問題P1の発生箇所までの情報を抜き出すことにより求められる。例えば、例えば問題P1の発生箇所を指定する位置指定情報として操作ログDB220に、“html/body/div/table/tbody/td[3]/table/tbody/td[1]/imag”が格納されており、ブロックB1がtd[3]にあるテーブル構造であったとすると、位置特定情報は、“table/tbody/td[1]/imag”である。
次に問題P1を修正するための操作を示す操作情報について説明する。該操作情報は、操作ログL2の情報3を利用して取得される。本発明では、従来技術のようにアクセシビリティの問題に特化せずに、より広く、一般的なウェブ・アプリケーション上のバグ修正やローカライゼーションといった様々な問題を扱うものとする。そのためメタデータの適用条件に合致した箇所に対する操作内容としては、1.HTML DOMのノードに対する操作、2.要素の属性に対する操作、3.外部java(登録商標)script、CSSに対する操作の3種類の操作を指定可能とする。
1.のHTML DOMのノードに対する操作の場合、操作内容として、INSERT、UPDATE、DELETEのうちのいずれかの操作を指定する。また、操作内容としてINSERT(HTML仕様に準拠)を指定する場合は挿入するノードの情報のほか必要なパラメータを、操作内容としてUPDATE(HTML仕様に準拠)を指定する場合はノードの更新情報を、それぞれ追加で指定する。
2.の要素の属性に対する操作の場合、操作内容として、INSERT、UPDATE、DELETEのうちのいずれかの操作を指定する。また、操作内容としてINSERT(HTML仕様に準拠)を指定する場合は属性を挿入する場所と挿入する属性の名前と値とを、操作内容としてUPDATE(HTML仕様に準拠)を指定する場合は更新する属性の名前と値とを、操作内容としてDELETEを指定する場合は削除する属性の名前を、それぞれ追加で指定する。
3.の外部java(登録商標)script、CSSに対する操作の場合、操作内容は、UPDATEを指定し、更に、変更するファイルのロケーションと変更履歴(既存のdiff技術で表示される差分でよい)とを指定する。
メタデータ生成部225は、上記のように定義されるメタデータM1を生成すると、次に類似ブロック検索部235を呼び出し、生成したメタデータM1を適用可能な他のブロックを操作ログDB220から抽出する。なお、類似ブロック検索部235の呼び出しは、ブロック抽出部230によりメタデータM1の条件dとしてのブロックが抽出された後であればよく、必ずしもメタデータM1の生成後である必要はない。
類似ブロック検索部235は、メタデータ生成部225により呼び出されると、生成したメタデータM1を適用可能な他のブロックを操作ログDB210から抽出する。その手順は以下の通りである。 まず類似ブロック検索部235は、操作ログDB220から操作ログL1の情報1を読み出して、修正作業中に遷移したRIA250の各状態ASi(i=1、2、…、n、n:遷移数)を再現する。続いて類似ブロック検索部235は、再現したRIA250の各状態ASiにおけるHTML DOM(操作ログL1の情報D)を、既存のブロック抽出手法を利用して複数のブロックBSij(j=1、2、…、mi、mi:状態ASiでのブロック分割数)に分割する。なお、ブロック抽出方法についてはブロック抽出部230に関連して説明した通りであり、同様の処理をHTML DOMツリーのルートノードをスタートとして、例えば深さ優先順等の一定の順序で全ノートについて行えばよい。だし、一度どこかのブロックに含まれたノードに関しての処理はスキップするものとする。これにより、同一ノードが別のブロックに含まれることを防ぐ。
続いて類似ブロック検索部235は、分割した各ブロックBSijをメタデータM1の条件dであるブロックB1と比較し、RIA250の各状態ASiとブロックB1に類似するブロックBSijのペアからなる類似ブロックの集合SBk=(ASi、BSij)(k=1、2、…、N、N:ペア数、N≦Σimi)を求める。そしてブロックB1に類似するブロックBSijが1つでも存在する場合、即ち類似ブロックの集合SBkが空でない場合、類似ブロック検出部235は、求めた類似ブロックの集合SBkを修正作業者に提示して、メタデータM1の操作情報が示す操作を適用可能な類似ブロックABl(l=1、2、…、M、M:選択された類似ブロック数、M≦N)を選択させる。提示は、一例として類似ブロックBSijを対応する状態ASiのウェブページ内に目立つように表示させて行ってよく、選択されたブロックにはメタデータM1の条件fがそのまま適用されるものとする。修正作業者により選択された全ブロックABlは、類似ブロック検出部235からメタデータ生成部225へ渡される。
なお、類似ブロック検索部235によるブロックの類似性の判断は、例えば、特開2007−52556に開示される類似判定手法を利用してよい。該類似判定手法では、比較する2つの構造化文書の各々を、独立して意味を持つ最大の部分木構造に構成し、それぞれの部分木の葉ノードクラスタ同士を照合し、照合する葉ノードクラスタ間で同じ内容を有する葉ノードの個数の比率に基づいて部分木間の類似度を求める。従って、本実施例では、ブロック同士の類似性の判断を、比較するブロック間で同じ内容の要素または属性の個数の比率に基づいて行うことができる。
メタデータ生成部225は、類似ブロック検索部235からメタデータM1の操作情報が示す操作を適用可能な類似ブロックABl(l=1、2、…、M)を受け取ると、各類似ブロックABl(l=1、2、…、M)についてメタデータMBl(l=1、2、…、M)を生成する。なお、類似ブロックABlは、ブロックB1に類似するブロックと対応するRIA250の状態情報のペアであり、メタデータMBlの生成は、対応するRIA250の状態情報とメタデータM1の条件fから求められることに留意されたい。そしてメタデータ生成部225は、メタデータ汎化部245を呼び出して、メタデータM1を、問題P1の発生箇所に類似する他の箇所の問題解決にも適用可能なメタデータMFに拡張する。そして、メタデータ生成部225は、メタデータDB240に格納されたメタデータM1をメタデータMFで更新する。
メタデータ汎化部245は、メタデータ生成部225に呼び出されると、メタデータMBl(l=1、2、…、M)を用いてメタデータM1の適用条件を汎化する。但し、汎化の対象は、メタデータM1の条件a、b、c、eのみである。なぜならば、メタデータの条件d、fは、メタデータM1とメタデータMBlの全てのメタデータに共通であり不変であるからである。以下、条件ごとに汎化方法を説明する。
条件a、即ち、問題が生じたウェブページの場所を特定するURLの汎化は、次の1〜5の手順で行う。
1.メタデータM1及びメタデータMBl(l=1、2、…、M)に属する全ての条件aを、プロトコル、ドメイン、フォルダ+ファイル、パラメータに分類する。
(例1)http://www.trl.ibm.com/testapp01/shop01.html?style=production
プロトコル=http、ドメイン=www.trl.ibm.com、フォルダ+ファイル=testapp01/shop01.html、パラメータ=(style=production)
(例2)http://www.ibm.com/testapp02/cart01.html?style=production&item=3
プロトコル=http、ドメイン= www.ibm.com、フォルダ+ファイル=testapp02/cart01.html、パラメータ=(style=production、item=3)
2.プロトコルを汎化する。具体的には、全ての条件aについてプロトコルが同一である場合のみ、そのプロトコルを条件として残す。異なるプロトコルを含む条件aが1つでも存在する場合、任意のプロトコルを許可する条件とする。
3.ドメインを汎化する。具体的には、全ての条件aについてドメインを後方一致させていき、共通部分だけを残す。即ち、後方一致させていく途中で一致しなくなった条件aが1つでも存在する場合、後方から全ての条件aについて一致した最後の部分までのドメイン部分を条件とする。上記1.の例1と例2の2つのURLがあったとすると、求められる共通部分は“ibm.com”である。
4.フォルダ+ファイルを汎化する。具体的には、全ての条件aについてフォルダ+ファイルを前方一致させていき、共通部分だけを残す。即ち、前方一致させていく途中で一致しなくなった条件aが1つでも存在する場合、前方から全ての条件aについて一致した最後の部分までのフォルダ+ファイル部分を条件とする。上記1.の例1と例2の2つのURLがあったとすると、求められる共通部分は“testapp”である。
5.パラメータを汎化する。具体的には、全ての条件aに共通して含まれるパラメータ名を全て抜き出し、抜き出したパラメータの値を調べる。全ての条件aについて値が一致するパラメータのみを条件として残す。異なるパラメータの値が設定された条件aが1つでも存在する場合には、そのパラメータは条件に含めない。上記1.の例1と例2の2つのURLがあったとすると、求められる共通部分は、style = productionである。
条件b、即ち、グローバル変数群の汎化は、メタデータM1及びメタデータMBl(l=1、2、…、M)に属する全てのグローバル変数群の各グローバル変数をJSONのようにkey-valueのペア構造に変換し共通部分を取り出すことにより行う。以下、1.key-valueのペア構造への変換方法と、2.変換後の全ての条件bから共通部分を取り出す方法とに分けて説明する。なお、関数やHTML DOM若しくはその部分木であるグローバル変数は対象外とする。
1.key-valueのペア構造への変換方法
1−1.数値、文字列といった単純オブジェクトは、単純key-valueペア構造に変換する。
(例1)style="production",i=1,flag=true ->
"style":"production","i":"1","flag":"true"
(例2)style="production",i=3,flag=false ->
"style":"production","i":"3","flag":"false"
1−2.配列オブジェクトはJSON配列と同じようなkey-valueのペア構造に変換する。即ち、配列の要素の値を、該要素を取り出すキーと該要素の値とからなるkey-valueのペア構造に更に変換する。従って、単純配列はインデックスを補足し、連想配列は要素を取り出すキーをそのまま活用する。
(例3)a={9,5,1} -> a:{"0":"9","2":"5","2":"1"}
(例4)a={1,5} -> a:{"0":"1","2":"5"}
(例5)b={style:production,i:1,flag:true} ->
"b":{"style":"production","i":"1","flag":"true"}
(例6)b={style:test,i:3,flag:false} ->
"b":{"style":"test","i":"3","flag":"false"}
1−3.階層オブジェクトは各変数を値としてもつ配列として取り扱うことでkey-valueのペア構造に変換する。変換方法は配列オブジェクトの変換に準拠する。
(java(登録商標)script例)
function Cart() {
me.items={};
me.total=0;
}
nextId = 0;
function CartItem() {
me.id="c" + nextId++;
}
var cart = new Cart();
cart.items[0] = new CartItem();
(例7)cart -> "Cart":{"items":[{"CartItem":{"id":"1","price":"100"}}],"total":"0"}
(例8)cart -> "Cart":{"items":[{"CartItem":{"id":"2","price":"100"}}],"total":"0"}
2.共通部分の取り出し方法
2−1.全ての条件bに共通に含まれるkeyを全て抜き出し、抜き出したkeyのvalueを調べる。
2−2.valueが数値、文字列といった単純オブジェクトの場合、全ての条件bについてvalueが同じである場合にのみそのkey-valueを条件として残す。異なるvalueの条件bが1つでも存在する場合には、そのkeyのグローバル変数は条件に含めない。
2−3.valueが配列オブジェクトの場合、その配列オブジェクトの各要素は1−2.で上述したようにkey-valueのペア構造に変換されている。従って、各要素を条件bとみなして、上述した2−1.の処理に戻る。
上記1−1.の例1と例2から共通部分を取り出すとすると、全てのkeyが例1と例2に共通して含まれる。しかしながら、keyのvalueを調べると、例1と例2でvalue が同一なのは"style"keyのみである。従って、"style": "production"のみが共通部分として取り出される。
また、上記1−2.の例3と例4から共通部分を取り出すとすると、例3と例4に共通な"a"keyのvalueが配列であるため、配列の各要素を条件bとみなして検討する。すると全ての条件bに共通なkeyは"0"keyと"1"keyであるが、全ての条件bについてvalueが同じなのは"1"keyのみである。従って、"a":{ "1 ":"5"}のみが共通部分として取り出される。
また、上記1−2.の例5と例6から共通部分を取り出すとすると、例5と例6に共通な"b"keyのvalueが配列であるため、配列の各要素を条件bとみなして検討する。すると全ての条件bに共通なkeyは、"style"key、"i "key、及び"flag"keyの全てのkeyである。しかし全ての条件bについてvalueが同じkeyは存在しない。従って、共通部分が存在しないため条件bは空となる。
上記1−3.の例7と例8から共通部分を取り出すとすると、例5と例6に共通な"Cart" keyのvalueが配列であるため、配列の各要素を条件bとみなして検討する。すると全ての条件bに共通なkeyは、"items" key及び"total" keyである。そのvalueを深さ優先で再帰的に比較すると、最終的に,"price" keyと"total" keyのvalueのみが同じであることが分かる。従って、階層構造を維持したままで、"Cart":{"items":[{"CartItem":{"price":"100"}}],"total":"0"}が共通部分として取り出される。
条件c、即ちクッキー情報の汎化は、メタデータM1及びメタデータMBl(l=1、2、…、M)に属する全てのクッキー情報の各々をJSONのようにkey-valueのペア構造に変換し共通部分を取り出すことにより行う。但し、secure等の単一情報からなるクッキー情報は、keyとvalueが同一のkey-valueのペア構造に変換する。変換後の全てのクッキー情報から共通部分を取り出す方法は、条件bについて説明した方法と同じであるからここでは説明を省略する。
条件e、即ち、条件dのブロックB1の位置を特定するブロック特定情報の汎化は、先頭からの共通パス及び最後尾からの共通パスのみを残すことにより行う。それ以外の途中の一致しない部分は省略し、"//"を用いて子孫と直接結合する。但し、インデックスが一致しない場合はインデックスのみを省略する。また先頭からの共通パスがない場合には、適用対象を絞り込むために和集合(UNION)を用いる。
(例1)インデックスが一致しないだけの場合
入力1:/html/body/div/div/table/tr[3]
入力2:/html/body/div/div/table/tr[7]
入力3:/html/body/div/div/table/tr[1]
最後のインデックスだけが異なるため、汎化結果は"/html/body/div/div/table/tr"となる。
(例2)途中のパスが異なる場合
入力1:/html/body/div/div/table/tr[1]/div/div/form/input[1]
入力2:/html/body/div/table/tr[1]/div/form/input[1]
入力3:/html/body/div/div/table/tr[3]/form/input[1]
先頭から"/html/body/div"までが合致し、最後尾から"form/input[1]"までが同一であるため、汎化結果はこの二つを"//"で結合した"/html/body/div// form/input[1]"となる。
以上、第1実施例のシナリオに沿って支援装置200を説明した。 図4は、そのような第1実施例のシナリオの一例を示す。修正作業者は、ウェブ上のあるショッピングサイトのカート機能に関する問題P1を修正すべく、支援装置200と連動して動作するウェブ・ブラウザを起動してショッピングサイトに(1)ログインし、(2)商品を検索し、(3)商品1を選択して、(4)買い物かごに入れ、商品2、3について同様に処理を繰り返し、(10)最終的に商品3を買い物かごに入れたところで問題P1(バグ)の発生箇所440を特定する。修正作業者がマニュアルで問題P1(バグ)を修正すると、ウェブ・ブラウザに連動して起動された支援装置200は、該修正内容を含むメタデータM1を、上述した本発明が新たに定義するメタデータの構造に従って生成する。続いて、支援装置200は、問題P1(バグ)の発生箇所440を含む意味的にまとまりのあるブロック445を手掛かりに、生成したメタデータM1を適用可能な箇所として問題P1の発生箇所特定までの操作ログL1(図4の表示画面405〜435に関する情報)からブロック450、455を検出する。支援装置200はブロック450、455に対しメタデータMB1、MB2を生成し、これらを用いてメタデータM1をブロック450、455に対して適用可能なように汎化する。
図5は、図4に示す問題P1(バグ)の発生箇所440を修正するためのメタデータM1の汎化の前後の状態を示す。メタデータM1500は、汎化前のメタデータM1を示し、メタデータM1505は、図4に示すブロック450及び455に適用可能に汎化された汎化後のメタデータM1を示す。図5に示す汎化では、条件bと条件eのそれぞれの汎化アルゴリズムに従って、問題の生じたウェブページ(図4の画面435)に関するグローバル変数群と、該ウェブページ(図4の画面435)内のブロック(図4のブロック445)の位置を特定するブロック特定情報が汎化されている。なお、図5に示すメタデータM1500、505の条件dに含まれる“DS2”はブロックの識別子である。
次に図6〜図9を参照して本発明の第1実施例によるメタデータの生成及び汎化処理の流れを説明する。図6(a)は、本発明の第1実施例によるメタデータの生成及び管理処理の前半の処理の流れを示すフローチャートである。図6(b)は、本発明の第1実施例によるメタデータの生成及び管理処理の後半の処理の流れを示すフローチャートである。図7は、図6(a)のステップ620におけるブロック抽出処理の流れを示すフローチャートである。図8は、図6(b)のステップ635における類似ブロック検索処理の流れを示すフローチャートである。 図9は、図6(b)のステップ655における汎化処理の流れを示すフローチャートである。
図6(a)に示すメタデータの生成及び管理処理の流れを示すフローチャートは、ステップ600から開始し、支援装置200は汎化対象DB210にアクセスし、ウェブ・ブラウザが現在アクセスしているRIA250に関連付けられたグローバル変数群及びクッキー情報の種類を特定する情報が開発者により支援装置200に登録されているかを確認し、登録されている場合はその情報を作業領域へ読み出す。続いて支援装置200は、修正作業者E1により問題P1の発生箇所が特定されたか否かを判定する(ステップ605)。
問題P1の発生箇所が特定されていない場合(ステップ605:NO)、処理はステップ610へ進み、続いて支援装置200は、RIA250の状態が変化したか否かを判定する。RIA250の状態が変化していないと判定された場合(ステップ610:NO)、処理はステップ605に戻る。一方、RIA250の状態が変化した判定した場合(ステップ610:YES)、支援装置200はRIAの状態を取得し、これを操作ログL1として操作ログDB220に格納する。そして処理は再びステップ605の判定処理に戻る。
ステップ605において、問題P1の発生箇所が特定されたと判定された場合(ステップ605:YES)、処理はステップ620へ進み、続いて支援装置200は問題P1の発生箇所を含むHTML DOM内のブロックB1を抽出する。ブロックB1の抽出処理の詳細は図7を参照して後述する。ステップ620の後、処理は結合点Dを介して図6(b)に示すフローチャートのステップ625へ続く。なお、ステップ620の後結合点Cを経由する処理の流れは第2実施例として後述する。
続いて図6(b)のステップ625において、支援装置200は、問題P1が修正作業者E1により修正されたか否かを判定する。ステップ625の判定は、問題P1の修正が完了するまで繰り返される。修正作業者E1による問題P1の修正が完了したと判定されると(ステップ625:YES)、処理はステップ630へ進み、支援装置200は本発明において新たに定義したメタデータの構造に従って問題P1を修正するためのメタデータM1を生成する。続いて支援装置200は、生成したメタデータM1を適用可能な類似ブロックを求めて操作ログDB210を検索する(ステップ635)。類似ブロックの検索処理の詳細は図8を参照して後述する。
続いて支援装置200は、生成したメタデータM1を適用可能な類似ブロックが見つかったか否かを判定する(ステップ640)。類似ブロックが見つからなかった場合(ステップ640:NO)、支援装置200は生成したメタデータM1をメタデータDB240に登録し(ステップ645)、そして処理は終了する。一方、類似ブロックが見つかった場合(ステップ640:YES)、処理はステップ650へ進み、支援装置200は検出した類似ブロックごとに対応するメタデータMBlを生成する。続いて支援装置200は、メタデータM1の適用条件を、ステップ650で生成した全メタデータMBlを用いて汎化する(ステップ655)。メタデータM1の適用条件の汎化処理の詳細は図9を参照して後述する。続いて支援装置200は汎化されたメタデータM1をメタデータDB240に登録する(ステップ660)。そして処理は終了する。
図7に示すブロック抽出処理の流れを示すフローチャートは、ステップ700から開始し、支援装置200は、J.Mahmud等によって提案されたブロック抽出手法などの既存のブロック抽出手法を用いて、問題P1の発生するRIA250の状態におけるHTML文書を複数のブロックに分割する。続いて支援装置200は、分割した複数のブロックの中から、問題P1の発生箇所を含むブロックを抽出する(ステップ705)。そして処理は終了する。
図8に示す類似ブロック検索処理の流れを示すフローチャートは、ステップ800から開始し、支援装置200は、操作ログDB220から現在の問題P1の発生箇所の特定までの間に記録された操作ログL1を読み出して、操作ログL1に含まれる操作ログの情報1から、作業中に遷移したRIA250の各状態ASi(i=1、2、…、n)を復元する。続いて支援装置200は、メタデータM1を適用可能な類似ブロックの集合ABlを空集合として生成する(ステップ805)。続いて支援装置200は、RIA250の全ての状態ASi(i=1、2、…、n)に対して、以降のステップ815からステップ840の一連の処理が完了したか否かを判定する(ステップ810)。
上記一連の処理が完了していない状態ASiが残っている場合(ステップ810:NO)、続いて支援装置200は復元されたRIA250状態ASi(i=1、2、…、n)の集合から次に処理すべき状態ASiを選択し(ステップ815)、選択した状態ASiにおけるHTML文書を、J.Mahmud等によって提案されたブロック抽出手法などの既存のブロック抽出手法を利用して複数のブロックに分割する(ステップ820)。続いて支援装置200は、分割した各ブロックと生成したメタデータM1の条件dとしてのブロックB1とを上述した既存の類似判断手法を用いて比較し、類似ブロック全てをメタデータM1の適用候補の集合として修正作業者E1に提示する(ステップ825)。
続いて支援装置200は、提示したメタデータM1の適用候補の集合の中から1以上の類似ブロックが修正作業者E1により選択されたか否かを判定する(ステップ830)。修正作業者E1により1以上の類似ブロックが選択された場合(ステップ830:YES)、支援装置200は選択された1以上の類似ブロックを、メタデータM1を適用可能な類似ブロックの集合ABlに追加する(ステップ835)。ステップ835から、又は修正作業者E1により1つも類似ブロックが選択されない場合(ステップ830:NO)、処理はステップ840へ進み、支援装置200は、RIA250の現在の状態ASiに対する上記一連の処理を終了し、ステップ810へ戻る。そして支援装置200はステップ810において再びRIA250の全ての状態ASiに対して上記一連の処理が完了したか否かを判定し、全ての状態ASiに対して上記一連の処理が完了していると判断した場合(ステップ810:YES)、類似ブロック検索処理を終了する。
図9に示す汎化処理の流れを示すフローチャートは、ステップ900から開始し、支援装置200は、メタデータM1の条件a、即ち、問題が生じたウェブページの場所を特定するURLを汎化する。汎化は、メタデータM1の条件aと、メタデータM1を適用可能な類似ブロックの各々に対して生成した全メタデータMBlの条件aとを用いて、上述した条件aの汎化のアルゴリズムに従って行う。続いて支援装置200は、メタデータM1の条件b、即ち、グローバル変数群を汎化する(ステップ905)。汎化は、メタデータM1の条件bと、メタデータM1を適用可能な類似ブロックの各々に対して生成した全メタデータMBlの条件bとを用いて、上述した条件bの汎化のアルゴリズムに従って行う。
続いて支援装置200は、メタデータM1の条件c、即ち、クッキー情報を汎化する(ステップ910)。汎化は、メタデータM1の条件cと、メタデータM1を適用可能な類似ブロックの各々に対して生成した全メタデータMBlの条件cとを用いて、上述した条件cの汎化のアルゴリズムに従って行う。続いて支援装置200は、メタデータM1の条件e、即ち、ブロックB1の位置を特定するブロック特定情報を汎化する(ステップ915)。汎化は、メタデータM1の条件eと、メタデータM1を適用可能な類似ブロックの各々に対して生成した全メタデータMBlの条件eとを用いて、上述した条件eの汎化のアルゴリズムに従って行う。その後処理は終了する。
第2実施例は、修正作業者が支援装置200を利用して、RIA250上の問題P1を修正するためのメタデータM1を既存のメタデータを利用して生成するとともに、利用した既存のメタデータM0を、生成したメタデータM1を用いて汎化するというシナリオに沿ったものである。第2実施例による支援装置200もまた、第1実施例による支援装置200と同様に、汎化対象設定部205と、汎化対象DB210と、操作ログ記録部215と、操作ログDB220と、メタデータ生成部225と、ブロック抽出部230と、メタデータ汎化部245を含む。これら共通の構成要素については第1実施例において説明した通りであるから、以下では第2実施例による支援装置200に固有の構成要素である類似メタデータ検索部250とメタデータDB240を中心に、第2実施例による支援装置200の機能を説明する。
メタデータ生成部225は、修正作業者により問題P1が発生するRIA250の状態が特定されたことを検出すると、類似メタデータ検索部250を呼び出して、メタデータDB240から問題P1に適用可能な既存のメタデータを検索する。なお、本実施例では、メタデータDB240には、本発明において新たに定義したメタデータの構造に従い過去に生成されたメタデータが格納されているものとする。また、類似メタデータ検索部250の呼び出し時点において、支援装置200の作業領域には、ブロック抽出部230により抽出された問題P1の発生箇所を含むブロックB1が保持されており、操作ログDB220には、操作ログ記録部215により操作ログL1の情報2として問題P1の発生箇所を指定する位置指定情報が格納されていることに留意されたい。
類似メタデータ検索部250は、メタデータ生成部225により呼び出されると、問題P1の発生箇所を含むブロックB1と問題P1の発生箇所を指定する位置指定情報とから、メタデータM1の条件fとなる、ブロックB1内で問題の発生箇所を特定する位置特定情報を求める。そして類似メタデータ検索部250は、メタデータM1の条件dとなるブロックB1と、メタデータM1の条件fとなる位置特定情報とを検索キーとして、一致する全ての既存のメタデータMi(i=1、2、…、n、n:一致するメタデータ数)をメタデータDB240から取り出す。そして類似メタデータ検索部250は、取り出した全てのメタデータMiを修正作業者に提示して、問題P1に適用可能なメタデータMs(1≦s≦n)を1つ選択させる。選択されたメタデータMsは類似メタデータ検索部250からメタデータ生成部225へ渡される。
メタデータ生成部225は、類似メタデータ検索部250から受け取ったメタデータMs(1≦s≦n)の操作情報を用いて、問題P1を修正するためのメタデータM1を生成する。なお、メタデータの残りの条件a、b、c、及びeの算出方法は、第1実施例において説明した通りであるからここでは説明を省略する。
メタデータ生成部225はまた、メタデータ汎化部245を呼び出して、問題P1に適用可能とされたメタデータMs(1≦s≦n)を、生成したメタデータM1を用いて、適用条件のより広いメタデータMFに汎化する。そして、メタデータ生成部225は、メタデータDB240に格納された既存のメタデータMs(1≦s≦n)をメタデータMFで更新する。
メタデータ汎化部245は、メタデータ生成部225に呼び出されると、メタデータMs(1≦s≦n)と新たに生成されたメタデータM1とを用いてメタデータMsの適用条件(条件a、b、c、及びe)を汎化する。各条件の汎化のアルゴリズムは第1実施例において説明した通りであるからここでは説明を省略する。
以上、第2実施例のシナリオに沿って支援装置200を説明した。 図10は、そのような第2実施例のシナリオの一例を示す。修正作業者は、ウェブ上のあるショッピングサイトの商品検索結果における価格比較に関する問題を修正すべく、支援装置200と連動して動作するウェブ・ブラウザを起動してショッピングサイトにアクセスし、「ノートパソコン」を検索キーとして検索結果をリクエストして図10(a)に示すウェブページ1000を取得する。修正作業者が問題P1(Compare Price)の発生箇所1005を特定すると、支援装置200は発生箇所1005を含むブロック1010を抽出し、ブロック1010(条件d)とブロック1010内の問題P1(Compare Price)の発生箇所1005(条件f)とを検索キーとして、メタデータDB240を検索する。
メタデータDB240には、図10(b)に示すウェブページ1015上の問題P0(Compare Price)の発生箇所1020を修正するメタデータM0が格納されている。ウェブページ1015は、同じショッピングサイトで「空気清浄機」を検索キーとして得られた検索結果であることから、価格比較(Compare Price)に関して同様の問題が生じており、修正のためメタデータM0が生成されている。支援装置200は、上記条件dと条件fの検索キーと一致する条件を有するメタデータとしてメタデータM0をメタデータDB240から抽出し、メタデータM0を用いて現在の問題P1に適用するメタデータM1を生成する。支援装置200はまた、メタデータM1を用いて、既存のメタデータM0の適用条件を汎化する。
図11は、図10(b)に示す問題P0(Compare Price)の発生箇所1020を修正するための既存のメタデータM0の汎化前後の状態を示す。メタデータM11100は、図10(a)に示す問題P1(Compare Price)の発生箇所1005を修正するための新たに生成されたメタデータM1を示す。メタデータM01105は、汎化前の既存のメタデータM0を示し、メタデータM01110は、新たに生成されたメタデータM1を用いて汎化された汎化後の既存のメタデータM0を示す。図11に示す汎化では、条件a、b、及びeの汎化アルゴリズムに従って、問題の生じたウェブページ1015のURLと、グローバル変数群と、ブロック1025の位置を特定するブロック特定情報が汎化されている。
次に図12〜図13を参照して本発明の第2実施例によるメタデータの生成及び汎化処理の流れを説明する。図12は、本発明の第2実施例によるメタデータの生成及び既存のメタデータの汎化処理の後半の処理の流れを示すフローチャートである。なお、第2実施例によるメタデータの生成処理の前半については、第1実施例によるメタデータ生成処理のブロック抽出処理までの処理と同じであるからここでは説明を省略する。図13は、本発明の第2実施例における類似メタデータ検索処理の流れを示すフローチャートである。
図12に示すメタデータの生成及び既存のメタデータの汎化処理の流れを示すフローチャートは、図6(a)のステップ620のブロック抽出処理に続く処理の流れを示し、支援装置200は、ステップ1200において、現在の問題P1の発生箇所に適用可能な既存のメタデータM0を探して、メタデータDB240を検索する。類似メタデータ検索処理の詳細は、図13を参照して後述する。続いて支援装置200は、現在の問題P1の発生箇所に適用可能な既存のメタデータM0が存在したか否かを判定する(ステップ1205)。既存のメタデータM0が存在しない場合(ステップ1205:NO)、処理は結合点Dを介して第1実施例に関して説明した図6(b)に示すフローチャートのステップ625へ進む。この場合、修正作業者は手動で問題P1を修正する。以降の処理は第1実施例を参照されたい。
一方、現在の問題P1の発生箇所に適用可能な既存のメタデータM0が存在した場合(ステップ1205:YES)、処理はステップ1210へ進み、支援装置200は、既存のメタデータM0の操作情報を用いて、本発明のおいて新たに定義したメタデータのデータ構造に従い、現在の問題P1の発生箇所を修正するメタデータM1を生成する。続いて支援装置200は、既存のメタデータM0の適用条件を、新たに生成したメタデータM1を用いて汎化する(ステップ1215)。汎化処理の詳細は図9を参照して説明した通りであるからここでは省略する。最後に支援装置200は、メタデータDB240に格納されている、ステップ1200の類似メタデータ検索処理において見つかった既存のメタデータM0の適用条件を、ステップ1215の汎化処理で求めた適用条件で更新する(ステップ1220)。そして処理は終了する。
図13に示す類似メタデータ検索処理の流れを示すフローチャートは、ステップ1300から開始し、支援装置200は、問題P1の発生箇所を含むブロックB1(メタデータM1の条件d)内で問題の発生箇所を特定する位置特定情報(メタデータM1の条件f)を算出する。該算出は、操作ログの情報2の問題P1の発生箇所を指定する位置指定情報から、ブロックB1の先頭箇所から問題P1の発生箇所までの情報を抜き出すことにより求められる。続いて支援装置200は、メタデータM1の条件dとなるブロックB1と、メタデータM1の条件fとなる位置特定情報とを検索キーとして、一致する全ての既存のメタデータMi(i=1、2、…n、n:一致するメタデータ数)をメタデータDB240から取り出す(ステップ1305)。
続いて支援装置200は、取り出した全てのメタデータMiを修正作業者E1に提示して、問題P1に適用可能なメタデータを1つ選択させる(ステップ1310)。続いて、支援装置200は、提示したメタデータMiの1つを修正作業者E1が選択したか否かを判定する(ステップ1315)。メタデータMiが選択されなかった場合(ステップ1315:NO)、処理はそのまま終了する。一方、修正作業者E1が提示したメタデータMiを選択した場合(ステップ1315:YES)、支援装置200は、選択されたメタデータMiを問題P1に適用可能なメタデータMs(1≦s≦n)とする(ステップ1320)。そして処理は終了する。
第3実施例は、RIA250の状態が変化することに応答して、現在のRIA250の状態に適用可能な既存のメタデータをメタデータDB240から検索し、検索した既存のメタデータの適用条件に基づき決定される現在のRIA250の状態におけるメタデータの適用位置が、本来の意図された適用位置と一致しない場合に、既存のメタデータの適用条件の微調整を修正作業者に促し、微調整された情報を基に既存のメタデータを汎化するというシナリオに沿ったものである。第3実施例による支援装置200は、第1実施例又は第2実施例による支援装置200の構成要素に、更にメタデータ検証部255を追加することで実現される。そこで以下ではメタデータ検証部255を中心に、第3実施例による支援装置200の機能を説明する。
メタデータ生成部225は、RIA250の状態が変化したことを検出すると、メタデータ検証部255を呼び出し、メタデータDB240に格納されている既存のメタデータが現在のRIA250の状態に正しく適用できるかを検証する。このとき操作ログDB220には、現在のRIA250の状態ASpが、上述した情報AのURL、情報Bのグローバル変数群、情報Cのクッキー情報、及び情報DのHTML DOMの組み合わせとして格納されていることに留意されたい。
メタデータ検証部255は、メタデータ生成部225により呼び出されると、現在のRIA250の状態ASpを特定する情報AのURL、情報Bのグローバル変数群、及び情報Cのクッキー情報を検索キーとして、そのa、b、及びcの適用条件が一致する既存のメタデータMi(i=1、2、…n、n:適用可能なメタデータ数)を、現在のRIA250の状態ASpに適用可能な既存のメタデータとして、メタデータDB240から抽出する。そしてメタデータ検証部255は、抽出した各メタデータMiに対し、該メタデータMiの条件eが特定する位置に存在するブロックBiを、現在のRIA250の状態ASpを特定する情報DのHTML DOMから抽出し、抽出したブロックBiを上記メタデータMiの条件dのブロックと比較する。
両ブロックが一致する場合、抽出した既存のメタデータMiは現在のRIAの状態ASpに正しく適用できることを意味するため、メタデータ検証部255はメタデータの検証処理を終了する。しかし、両ブロックが一致しない場合、これは、既存のメタデータMiの適用箇所が該適用箇所を含むブロック単位でウェブページ内の他の位置に移動したか、または削除された可能性が高いことを意味する。そのため、メタデータ検証部255は、両ブロックが一致しなかったメタデータの集合Mj(j=1、2、…m、m:ブロックが合致しなかったメタデータ数、m≦n)を修正作業者に提示して、メタデータMjの条件eのブロック特定情報の修正を促す。なお、上述したようにブロック情報はRIA250の状態が変化しても不変である。そのため、既存のメタデータMiの条件dに一致するブロックを現在のRIA250の状態ASpにおけるHTML DOMから探し出すことで、移動後の位置や削除されている場合はその事実を求めることができる。
修正作業者から修正後のブロック特定情報が入力されると、メタデータ検証部255は、第1実施例において説明した条件eの汎化アルゴリズムに従い、修正前のブロック特定情報と修正後のブロック特定情報とを用いてメタデータMjの条件eを汎化する。そしてメタデータ検証部255は、メタデータDB240内のメタデータMjの条件eを汎化した条件eで更新する。
以上、第3実施例のシナリオに沿って支援装置200を説明した。図14は、そのような第3実施例のシナリオの一例を示す。図14に示すウェブページ1300、1315は、どちらも自分の好みにカスタマイズできる同一のポータルサイトのトップ画面を示すが、それぞれ異なる状態にあるウェブページである。即ち、ウェブページ1300では左上に配置されているウィジェットのブロック1305aが、ウェブページ1315では真ん中の欄に移動されて、異なる位置のブロック1305bとなっている。ここで、次のような状況を考える。修正作業者が、修正作業中に、ウェブページ1315を表示させたとする。このときメタデータDB240には、ウェブページ1300上のブロック1305a内の問題を修正するためのメタデータM0が格納されているとする。
すると支援装置200は、ウェブ・ブラウザが現在表示しているウェブページ1315のURL、グローバル変数群、及びクッキー情報が、メタデータM0の適用条件の条件a、b、及びcとそれぞれ一致することから、現在のウェブページ1315に適用可能なメタデータとしてメタデータM0をメタデータDB240から抽出する。そして支援装置200は、ウェブページ1315からメタデータM0の条件eが特定する位置に存在するブロック1310bを抽出し、これをメタデータM0の条件dとして指定されているウェブページ1300上のブロック1305aと比較する。両ブロックが一致しないことから、支援装置200は元のブロック1305aの移動又は削除を推測し、現在のウェブページ1315に正しく適用できるように修正作業者に対してメタデータM0の条件eの微調整を促す。修正作業者から修正後の条件eが入力されると、支援装置200は元の条件eと修正後の条件eを用いて条件eを汎化し、汎化された条件eでメタデータDB240内のメタデータM0の条件eを更新する。
次に図15〜図16を参照して本発明の第3実施例によるメタデータの微調整処理の流れを説明する。図15は、本発明の第3実施例による既存のメタデータの微調整処理の流れを示すフローチャートである。図16は、図15に示すフローチャートのステップ1500の微調整が必要な既存メタデータ検索処理の詳細な流れを示すフローチャートである。
図15に示すメタデータの微調整処理の流れを示すフローチャートは、図6(a)のステップ615からステップ605へ戻る途中に実行される処理であり、支援装置200は、ステップ1500において、現在のRIA250の状態に適用可能であって、かつ、微調整が必要なメタデータMj(j=1、2、…m、m:適用可能かつ微調整が必要なメタデータ数)を求めてメタデータDB240を検索する。微調整が必要なメタデータMjの検索処理の詳細は、図16を参照して後述する。続いて支援装置200は、微調整が必要なメタデータMjがあったか否かを判定する(ステップ1505)。
微調整が必要なメタデータMjが存在した場合(ステップ1505:YES)、支援装置200は、微調整が必要なメタデータMjの各々についてその条件eのブロック特定情報を、修正作業者E1によって入力された修正後の条件eのブロック特定情報を用いて条件eの汎化アルゴリズムに従って汎化する(ステップ1510)。そして支援装置200は、汎化した条件eのブロック特定情報でメタデータDB240内のメタデータMjを更新する(ステップ1515)。ステップ1515の後、またはステップ1505において微調整が必要なメタデータMjが存在しなかった場合、処理は結合点Bを介して図6(a)のステップ605へ戻る。
図16に示す微調整が必要な既存メタデータ検索処理の流れを示すフローチャートは、ステップ1600から開始し、支援装置200は、現在のRIA250の状態ASpに適用可能なメタデータMiの集合(i=1、2、…n、n:適用可能なメタデータ数)を、現在のRIA250の状態ASpを特定する情報A、情報B、及び情報Cを検索キーとして、メタデータDB240から検出する。続いて支援装置200は、微調整の必要なメタデータの集合Mjを空集合として生成する(ステップ1605
)。続いて支援装置200は、メタデータの集合Miの全ての要素についてステップ1615からステップ1650の一連の処理を行ったか否かを判定する。ステップ1610を初めて実行する際は、判定結果は「いいえ」となる。
メタデータの集合Miに上記一連の処理が未実施のメタデータMiが残っている場合(ステップ1610:NO)、続いて支援装置200は、メタデータの集合Miから次に処理するメタデータMiを選択する(ステップ1615)。続いて支援装置200は、選択したメタデータMiの条件eで特定される現在のRIA250状態ASpにあるウェブページ内のブロックと、選択したメタデータMiの条件dのブロックとを比較し(ステップ1620)、両ブロックが一致するか否かを判定する(ステップ1630)。
両ブロックが一致しない場合(ステップ1630:NO)、支援装置200は、選択メタデータMiの条件eを修正作業者E1に提示し(ステップ1635)、メタデータMiが現在のRIA250状態に適用可能となるように条件eを修正することを促す。続いて支援装置200は、修正作業者E1が修正した条件eを入力したか否かを判定する(ステップ1640)。修正作業者E1により微調整された条件eが入力された場合(ステップ1640:YES)、支援装置200は選択したメタデータMiをメタデータの集合Mjに追加する(ステップ1645)。一方、ステップ1630において両ブロックが一致する場合(ステップ1630:YES)、ステップ1640において修正作業者E1により修正後の条件eが入力されなかった場合(ステップ1640:NO)、又はステップ1645から処理はステップ1650へ進み、支援装置200は現在のメタデータMiに対する処理を終了して、ステップ1610へ戻る。ステップ1610において、全てのメタデータMiについて上記一連の処理が実施されたと判断された場合(ステップ1610:YES)、処理は終了する。
図17は、本発明の実施形態による支援装置200及びメタデータ管理サーバ202としてのコンピュータ50のハードウェア構成の一例を示した図である。コンピュータ50は、バス2に接続されたメインCPU(中央処理装置)1とメインメモリ4を含んでいる。ハードディスク装置13、30、及びCD−ROM装置26、29、フレキシブル・ディスク装置20、MO装置28、DVD装置31のようなリムーバブル・ストレージ(記録メディアを交換可能な外部記憶システム)がフレキシブル・ディスクコントローラ19、IDEコントローラ25、SCSIコントローラ27などを経由してバス2へ接続されている。
フレキシブル・ディスク、MO、CD−ROM、DVD−ROMのような記憶メディアが、リムーバブル・ストレージに挿入される。これらの記憶メディアやハードディスク装置13、30、ROM14には、オペレーティング・システムと協働してCPU1に命令を与え、本発明を実施するためのコンピュータ・プログラムのコードを記録することができる。即ち、上記説明した数々の記憶装置には、コンピュータ50にインストールされ、コンピュータ50を本発明の実施形態による支援装置200として機能させる、メタデータの生成・管理を支援するためのプログラムや、操作ログ情報、生メタデータといったデータを記録することができる。
上記メタデータの生成・管理を支援するためのプログラムは、汎化対象設定モジュールと、操作ログ記録モジュールと、メタデータ生成モジュールと、ブロック抽出モジュールと、類似ブロック検索モジュールと、メタデータ汎化モジュールと、類似メタデータ検索モジュールと、メタデータ検証モジュールとを含む。これらモジュールは、CPU1に働きかけて、コンピュータ50を、汎化対象設定部205と、操作ログ記録部215と、メタデータ生成部225と、ブロック抽出部230と、類似ブロック検索部235と、メタデータ汎化部245と、類似メタデータ検索部250と、メタデータ検証部255としてそれぞれ機能させる。コンピュータ・プログラムは圧縮し、また複数に分割して複数の媒体に記録することもできる。
コンピュータ50は、キーボード/マウス・コントローラ5を経由して、キーボード6やマウス7のような入力デバイスからの入力を受ける。コンピュータ50は、オーディオコントローラ21を経由して、マイク24からの入力を受け、またスピーカー23から音声を出力する。コンピュータ50は、視覚データをユーザに提示するための表示装置11に、グラフィックスコントローラ10を経由して接続される。コンピュータ50は、ネットワーク・アダプタ18(イーサネット(登録商標)・カードやトークンリング・カード)等を介してネットワークに接続し、他のコンピュータ等と通信を行うことが可能である。
以上の説明により、コンピュータ50は、通常のパーソナルコンピュータ、ワークステーション、メインフレームなどの情報処理装置、又は、これらの組み合わせによって実現されることが容易に理解されるであろう。なお、上記説明した構成要素は例示であり、そのすべての構成要素が本発明の必須構成要素となるわけではない。
以上、実施形態を用いて本発明の説明をしたが、本発明の技術範囲は上記実施形態に記載の範囲には限定されない。上記の実施形態に、種々の変更又は改良を加えることが可能であることが当業者に明らかである。従って、そのような変更又は改良を加えた形態も当然に本発明の技術的範囲に含まれる。
なお、特許請求の範囲、明細書、及び図面中において示した装置、システム、プログラム、及び方法における動作、手順、ステップ、及び段階等の各処理の実行順序は、特段「より前に」、「先立って」等と明示しておらず、また、前の処理の出力を後の処理で用いるのでない限り任意の順序で実現しうることに留意すべきである。また、前の処理の出力を後の処理で用いる場合でも、前の処理と後の処理の間に他の処理が入ることは可能である場合があること、又は間に他の処理が入るように記載されていても前の処理を後の処理の直前に行うよう変更することも可能である場合があることも留意されたい。特許請求の範囲、明細書、及び図面中の動作フローに関して、便宜上「まず、」、「次に、」、「続いて、」等を用いて説明したとしても、この順で実施することが必須であることを必ずしも意味するとは限らない。

Claims (16)

  1. コンピュータが実行する、動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理を支援する方法であって、
    (a)前記コンピュータが、修正作業者によるウェブ・アプリケーションの問題の修正に応答して、前記問題を修正するための操作を示す操作情報と該操作情報の適用条件とを含むメタデータM1であって、前記適用条件として、ウェブページ内の前記問題の発生箇所を含む意味的にまとまりのあるブロック情報と、前記問題が発生する前記ウェブ・アプリケーションの状態を特定するグローバル変数群及びクッキー情報とを含む前記メタデータM1を生成するステップと、
    (b)前記コンピュータが、前記修正作業者による前記ウェブ・アプリケーション上の操作ログを参照して、修正作業中に遷移したウェブページ内のブロックのうち前記メタデータM1の前記ブロック情報と一致する1以上のブロックB0の各々に対し、該ブロックB0を含む前記ウェブページを出力した前記ウェブ・アプリケーションの状態を特定するグローバル変数群とクッキー情報とを含むメタデータを算出するステップと、
    (c)前記コンピュータが、前記メタデータM1と各ブロックB0とに対しそれぞれ求めた全ての前記グローバル変数群及び前記クッキー情報の各々をkey-valueのペア構造に変換して共通する部分を取り出し、取り出した前記共通する部分で前記メタデータM1の前記グローバル変数群及び前記クッキー情報を更新するステップと、
    を含む支援方法。
  2. 前記算出するステップ(b)は、前記コンピュータが、前記メタデータM1の前記ブロック情報と一致する前記1以上のブロックB0を前記修正作業者に提示し、前記メタデータM1の前記操作情報が示す操作を適用可能であるブロックSBを選択させるサブステップ(b−1)を含み、前記コンピュータは、選択された各ブロックSBに対し前記グローバル変数群と前記クッキー情報を含むメタデータの算出を行う、請求項1に記載の支援方法。
  3. 前記更新するステップ(c)は、前記コンピュータが、全ての前記グローバル変数群または全ての前記クッキー情報に共通に含まれるkeyを抜き出し、抜き出したkeyに対応するvalueが全ての前記グローバル変数群または全ての前記クッキー情報について同一であるkey-valueのペア構造を前記共通する部分として取り出すサブステップ(c−1)を含む、請求項2に記載の支援方法。
  4. 前記更新するステップ(c)は、前記コンピュータが、前記グローバル変数群または前記クッキー情報に含まれる配列オブジェクトに対し、配列の要素の値を、該要素を取り出すキーと該要素の値とからなるkey-valueのペア構造に更に変換するサブステップ(c−2)を含む、請求項3に記載の支援方法。
  5. 前記更新するステップ(c)は、前記コンピュータが、全ての前記グローバル変数群または全ての前記クッキー情報に共通に含まれるkeyに対応するvalueが配列オブジェクトである場合、該配列オブジェクトの各要素について前記サブステップ(c−1)を行うサブステップ(c−3)を含む、請求項4に記載の支援方法。
  6. 前記更新するステップ(c)は、前記コンピュータが、前記グローバル変数群または前記クッキー情報に含まれる階層オブジェクトを、変数を値としてもつ配列として取り扱うことでkey-valueのペア構造に変換するサブステップ(c−4)を含む、請求項3に記載の支援方法。
  7. 前記更新するステップ(c)において、前記コンピュータは、単一情報からなる前記クッキー情報を、keyとvalueが同一のkey-valueのペア構造に変換する、請求項3に記載の支援方法。
  8. 前記生成するステップ(a)において、前記コンピュータは、前記ウェブ・アプリケーションの状態を特定するのに有効であるとして予め前記コンピュータに設定されている種類のグローバル変数群及びクッキー情報についてそれぞれ値を求め、前記メタデータM1の前記適用条件とする、請求項2に記載の支援方法。
  9. 前記動的なウェブ・アプリケーションの問題を修正するためのメタデータは、前記適用条件として、前記ブロック情報内で前記発生箇所を特定する位置特定情報を更に含み、
    (d)前記コンピュータが、前記修正作業者によるウェブ・アプリケーションの現在の問題の発生箇所の特定に応答して、前記発生箇所を含むブロック情報と、該ブロック情報内で前記発生箇所を特定する位置特定情報とを生成するステップと、
    (e)前記コンピュータが、生成した前記ブロック情報と前記位置特定情報を検索キーとして、一致するメタデータを過去に生成されたメタデータを格納するメタデータ格納部から取り出して前記修正作業者に提示し、前記修正作業者に前記現在の問題の発生箇所に適用可能なメタデータM0を選択させるステップと、
    (f)前記コンピュータが、選択された前記メタデータM0の操作情報を参照して、前記ウェブ・アプリケーションの前記現在の問題を修正するためのメタデータM2を生成するステップと、
    を更に含む請求項1に記載の支援方法。
  10. (g)前記コンピュータが、前記メタデータM2を用いて前記メタデータM0の前記適用条件を汎化することにより既存の前記メタデータM0を更新するステップを更に含む、請求項9に記載の支援方法。
  11. 前記動的なウェブ・アプリケーションの問題を修正するためのメタデータは、前記適用条件として、前記問題が生じたウェブページの場所を特定するアドレス特定情報と、前記ブロック情報内で前記発生箇所を特定する位置特定情報と、前記問題の発生時における前記ブロック情報の前記ウェブページ内の位置を特定するブロック特定情報とを更に含み、
    (h)前記コンピュータが、現在の前記ウェブ・アプリケーションが出力したウェブページのアドレス情報と、前記ウェブ・アプリケーションの現在の状態を特定するグローバル変数群及びクッキー情報とを算出するステップと、
    (i)前記コンピュータが、算出した前記アドレス情報、前記グローバル変数群、及び前記クッキー情報を検索キーとして、一致するメタデータM0を過去に生成されたメタデータを格納するメタデータ格納部から取り出すステップと、
    (j)前記コンピュータが、取り出した前記メタデータM0の前記ブロック情報を、該メタデータM0のブロック特定情報から取り出される前記現在のウェブ・アプリケーションが出力した前記ウェブページ内の対応するブロックと比較し、一致しない場合に前記メタデータM0を前記修正作業者に提示して修正を促し、修正された前記ブロック特定情報を受け取るステップと、
    (k)前記メタデータM0の前記ブロック特定情報を、修正された前記ブロック特定情報を用いて汎化することにより既存の前記メタデータM0を更新するステップを更に含む、
    請求項1に記載の支援方法。
  12. 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援装置であって、
    修正作業者によるウェブ・アプリケーションの問題の修正に応答して、前記問題を修正するための操作を示す操作情報と該操作情報の適用条件とを含むメタデータM1であって、前記適用条件として、ウェブページ内の前記問題の発生箇所を含む意味的にまとまりのあるブロック情報と、前記問題が発生する前記ウェブ・アプリケーションの状態を特定するグローバル変数群及びクッキー情報とを含む前記メタデータM1を生成するメタデータ生成部と、
    前記修正作業者による前記ウェブ・アプリケーション上の操作ログを格納する操作ログ格納部と、
    前記操作ログ格納部から読み出した前記操作ログを参照して、修正作業中に遷移したウェブページ内のブロックのうち前記メタデータM1の前記ブロック情報と一致する1以上のブロックB0の各々に対し、該ブロックB0を含む前記ウェブページを出力した前記ウェブ・アプリケーションの状態を特定するグローバル変数群とクッキー情報とを含むメタデータを算出する類似ブロック検索部と、
    前記メタデータM1と各ブロックB0とに対しそれぞれ求めた全ての前記グローバル変数群及び前記クッキー情報の各々をkey-valueのペア構造に変換して共通する部分を取り出し、取り出した前記共通する部分で前記メタデータM1の前記グローバル変数群及び前記クッキー情報を更新するメタデータ汎化部と、
    を含む支援装置。
  13. 前記動的なウェブ・アプリケーションの問題を修正するためのメタデータは、前記適用条件として、前記ブロック情報内で前記発生箇所を特定する位置特定情報を更に含み、
    過去に生成されたメタデータを格納するメタデータ格納部と、
    前記修正作業者によるウェブ・アプリケーションの現在の問題の発生箇所の特定に応答して、前記発生箇所を含むブロック情報と、該ブロック情報内で前記発生箇所を特定する位置特定情報とを生成するブロック抽出部と、
    前記ブロック抽出部により生成された前記ブロック情報と前記位置特定情報とを検索キーとして、一致するメタデータを前記メタデータ格納部から取り出して前記修正作業者に提示し、前記現在の問題の発生箇所に適用可能な既存のメタデータM0を選択させる類似メタデータ検索部とを更に含み、
    前記メタデータ生成部は、選択された前記既存のメタデータM0の操作情報を参照して、前記ウェブ・アプリケーションの現在の問題を修正するためのメタデータM2を生成する、
    請求項12に記載の支援装置。
  14. 前記メタデータ汎化部は、前記メタデータM2を用いて前記既存のメタデータM0の適用条件を汎化することにより前記既存のメタデータMSを更新する、請求項13に記載の支援装置。
  15. 前記動的なウェブ・アプリケーションの問題を修正するためのメタデータは、前記適用条件として、前記問題が生じたウェブページの場所を特定するアドレス特定情報と、前記ブロック情報内で前記発生箇所を特定する位置特定情報と、前記問題の発生時における前記ブロック情報の前記ウェブページ内の位置を特定するブロック特定情報とを更に含み、
    過去に生成されたメタデータを格納するメタデータ格納部と、
    過去に生成されたメタデータの適用条件を検証するメタデータ検証部であって、前記ウェブ・アプリケーションの現在の状態を特定する前記アドレス特定情報、前記グローバル変数群、及び前記クッキー情報を検索キーとして、一致するメタデータM0を前記メタデータ格納部から取り出し、前記メタデータM0の前記ブロック情報を、該メタデータM0のブロック特定情報から取り出される前記現在の状態のウェブ・アプリケーションが出力した前記ウェブページ内の対応するブロックと比較し、一致しない場合に前記メタデータM0を前記修正作業者に提示して修正を促し、修正された前記ブロック特定情報を受け取る、前記メタデータ検証部とを更に含み、
    前記メタデータ汎化部は、前記メタデータM0の前記ブロック特定情報を、修正された前記ブロック特定情報を用いて汎化することにより既存の前記メタデータM0を更新する、
    請求項12に記載の支援装置。
  16. 請求項1乃至11のいずれか一項に記載の方法をコンピュータに実行させる、動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援プログラム。
JP2011217999A 2011-09-30 2011-09-30 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム Expired - Fee Related JP5756386B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2011217999A JP5756386B2 (ja) 2011-09-30 2011-09-30 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム
US13/629,016 US8935364B2 (en) 2011-09-30 2012-09-27 Method, apparatus, and program for supporting creation and management of metadata for correcting problem in dynamic web application
US13/732,787 US9223815B2 (en) 2011-09-30 2013-01-02 Method, apparatus, and program for supporting creation and management of metadata for correcting problem in dynamic web application

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011217999A JP5756386B2 (ja) 2011-09-30 2011-09-30 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム

Publications (2)

Publication Number Publication Date
JP2013077246A true JP2013077246A (ja) 2013-04-25
JP5756386B2 JP5756386B2 (ja) 2015-07-29

Family

ID=47993719

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011217999A Expired - Fee Related JP5756386B2 (ja) 2011-09-30 2011-09-30 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム

Country Status (2)

Country Link
US (2) US8935364B2 (ja)
JP (1) JP5756386B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101523266B1 (ko) * 2013-04-08 2015-05-28 주식회사 오비고 메타 스토어의 관리 방법, 서버 및 컴퓨터 판독 가능한 기록 매체

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5756386B2 (ja) * 2011-09-30 2015-07-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム
US20140236649A1 (en) * 2013-02-21 2014-08-21 Atlassian Pty Ltd Method and Apparatus for Performing Remote Operations in an Issue Tracking Environment
CA2816781C (en) * 2013-05-28 2022-07-05 Ibm Canada Limited - Ibm Canada Limitee Identifying client states
US9413818B2 (en) * 2014-02-25 2016-08-09 International Business Machines Corporation Deploying applications in a networked computing environment
US10091518B2 (en) * 2015-02-20 2018-10-02 Alcatel Lucent Systems and methods for transmission of compressive sensing data
US10277703B2 (en) 2015-07-22 2019-04-30 International Business Machines Corporation Optimizing bandwidth usage and improving performance for web page caching
US10444934B2 (en) 2016-03-18 2019-10-15 Audioeye, Inc. Modular systems and methods for selectively enabling cloud-based assistive technologies
US11727195B2 (en) 2016-03-18 2023-08-15 Audioeye, Inc. Modular systems and methods for selectively enabling cloud-based assistive technologies
US10229220B2 (en) * 2016-05-09 2019-03-12 Coupa Software Incorporated Automatic entry of suggested translated terms in an online application program
US10235361B2 (en) * 2017-02-15 2019-03-19 International Business Machines Corporation Context-aware translation memory to facilitate more accurate translation
US10318644B1 (en) 2017-07-26 2019-06-11 Coupa Software Incorporated Dynamic update of translations for electronic resources
CN109325201A (zh) * 2018-08-15 2019-02-12 北京百度网讯科技有限公司 实体关系数据的生成方法、装置、设备及存储介质
US11474796B1 (en) * 2019-07-09 2022-10-18 Elements Dev Corporation Build system for distributed applications
US11842176B2 (en) * 2021-11-12 2023-12-12 Bank Of America Corporation System and method for performing parallel and distributed analysis of program code to generate dependency graphs for executing extract transform load transformations
US11853607B2 (en) 2021-12-22 2023-12-26 Western Digital Technologies, Inc. Optimizing flash memory utilization for NVMe KV pair storage
US11817883B2 (en) * 2021-12-27 2023-11-14 Western Digital Technologies, Inc. Variable length ECC code according to value length in NVMe key value pair devices
US11733876B2 (en) 2022-01-05 2023-08-22 Western Digital Technologies, Inc. Content aware decoding in KV devices

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6473794B1 (en) * 1999-05-27 2002-10-29 Accenture Llp System for establishing plan to test components of web based framework by displaying pictorial representation and conveying indicia coded components of existing network framework
US6536037B1 (en) * 1999-05-27 2003-03-18 Accenture Llp Identification of redundancies and omissions among components of a web based architecture
US6571282B1 (en) * 1999-08-31 2003-05-27 Accenture Llp Block-based communication in a communication services patterns environment
US6714963B1 (en) * 2000-09-29 2004-03-30 International Business Machines Corporation System and method for improving web site accessibility
US20020156799A1 (en) * 2001-04-24 2002-10-24 Stephen Markel System and method for verifying and correcting websites
JP4351405B2 (ja) 2001-08-29 2009-10-28 インターナショナル・ビジネス・マシーンズ・コーポレーション トランスコーディングシステム及びアノテーション管理装置
US7657832B1 (en) * 2003-09-18 2010-02-02 Adobe Systems Incorporated Correcting validation errors in structured documents
JP4140916B2 (ja) 2005-12-22 2008-08-27 インターナショナル・ビジネス・マシーンズ・コーポレーション Webページにおける状態遷移を解析する方法
JP4936295B2 (ja) 2009-07-16 2012-05-23 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システムにより実行されるアクセシビリティ・メタデータの作成・拡張・検証を支援する方法
JP5756386B2 (ja) * 2011-09-30 2015-07-29 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101523266B1 (ko) * 2013-04-08 2015-05-28 주식회사 오비고 메타 스토어의 관리 방법, 서버 및 컴퓨터 판독 가능한 기록 매체

Also Published As

Publication number Publication date
US20130124521A1 (en) 2013-05-16
US9223815B2 (en) 2015-12-29
JP5756386B2 (ja) 2015-07-29
US20130086224A1 (en) 2013-04-04
US8935364B2 (en) 2015-01-13

Similar Documents

Publication Publication Date Title
JP5756386B2 (ja) 動的なウェブ・アプリケーションの問題を修正するメタデータの生成・管理の支援方法、装置、およびプログラム
US10534830B2 (en) Dynamically updating a running page
CA2684822C (en) Data transformation based on a technical design document
JP5721818B2 (ja) 検索におけるモデル情報群の使用
US9047346B2 (en) Reporting language filtering and mapping to dimensional concepts
US20160283460A1 (en) Dynamic native content insertion
US8321396B2 (en) Automatically extracting by-line information
US9626368B2 (en) Document merge based on knowledge of document schema
CN103034633B (zh) 生成扩展的搜索结果页面摘要的方法及装置
US20190272478A1 (en) Generating feature vectors from rdf graphs
US20170351656A1 (en) Method of preparing documents in markup languages
US7904406B2 (en) Enabling validation of data stored on a server system
US10572566B2 (en) Image quality independent searching of screenshots of web content
US7720814B2 (en) Repopulating a database with document content
JP5949222B2 (ja) 運用管理支援装置、方法及びプログラム
JP4282312B2 (ja) Webサーバ、Javaサーブレットの機能を有するWebサーバ、およびコンピュータプログラム
US8799256B2 (en) Incorporated web page content
US20090204889A1 (en) Adaptive sampling of web pages for extraction
US10503743B2 (en) Integrating search with application analysis
CN102257490A (zh) 文档信息选择方法和计算机程序产品
Liu et al. An XML-enabled data extraction toolkit for web sources
CN107622125B (zh) 一种信息爬取方法和装置、电子设备
Ploeger et al. Extracting activist events from news articles using existing NLP tools and services
US11960560B1 (en) Methods for analyzing recurring accessibility issues with dynamic web site behavior and devices thereof
English An extensible schema for building large weakly-labeled semantic corpora

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140507

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150423

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150512

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150529

R150 Certificate of patent or registration of utility model

Ref document number: 5756386

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees