説明

構造化文書に含まれるノードの全順序関係を、ログ情報に基づいて決定して可視化する方法、装置及びコンピュータプログラム

【課題】構造化文書に含まれるノードの全順序関係を、ログ情報に基づいて正しく一義的に決定して可視化する方法、装置及びコンピュータプログラムを提供する。
【解決手段】構造化文書に含まれるノードの全順序関係を、ノード間遷移に関するログ情報に基づいて決定して可視化する。構造化文書に含まれるノード間の遷移に関する情報を時系列に記憶したログ情報を取得し、取得したログ情報に基づいて、遷移するノード間の相対的位置関係を特定する。特定したノード間の相対的位置関係を制約条件としてトポロジカルソートを実行し、構造化文書に含まれるノードの全順序関係を決定する。構造化文書に含まれるノードが追加又は削除された場合、ノードのコンテンツに対応するデータに基づいてノードの全順序関係を決定する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、構造化文書に含まれるノードの全順序関係を、ログ情報に基づいて決定して可視化する方法、装置及びコンピュータプログラムに関する。
【背景技術】
【0002】
近年、視覚障害者であってもネットサーフィン等を楽しめるよう、ユーザ操作の挙動を分析する必要性が高まっている。ウェブページのような構造化文書については、ユーザの操作に関するログ情報に基づいて、構造化文書に含まれるノード間の順序関係を正しく推定することが要求される。
【0003】
ここで、ログ情報とは、例えばブラウザ機能を拡張して、ウェブページ内でのノード間の移動軌跡を記録した情報である。ログ情報には、ユーザの操作に関する情報、構造化文書においてユーザが指示するカーソルの現在位置に対応するノードと、カーソルが次に移動する位置に対応するノードとの間の相対的な位置関係に関する情報が含まれる。
【0004】
また、例えばウェブページに記載してある文書の構造化は、HTMLのソースで構造を示すタグを付与することで行われる。ウェブページ内の様々な文章、画像等に対して、この部分は「見出し」、この部分は「段落」、この部分は「強調して伝えたい部分」といった構造を示すタグを付与することで、文章を構造化している。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開平08−263518号公報
【特許文献2】特開2009−043102号公報
【特許文献3】特許第3619015号公報
【特許文献4】特開2002−189595号公報
【特許文献5】特開2008−176528号公報
【特許文献6】特開2001−134360号公報
【特許文献7】特開平09−160821号公報
【特許文献8】特開2005−115498号公報
【特許文献9】特開2003−150296号公報
【特許文献10】特開2002−334070号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、ログ情報に基づいて構造化文書に含まれるノード間の順序関係を推定しようとした場合、ノード間の半順序関係、すなわち構造化文書においてユーザが指示するカーソルの現在位置に対応するノードと、カーソルが次に移動する位置に対応するノードとの相対的位置関係を特定することはできるものの、対象とする構造化文書にいわゆる「正しい全順序」が存在すると仮定したときであっても、ノード間の順序関係を含む全順序関係を一義的に決定することは困難であるという問題点があった。
【0007】
例えば構造化文書が木構造を有している場合、実際のノード間の順序関係と、ログ情報から推定されるノード間の順序関係とが矛盾しないように全順序関係を決定することは困難であり、特に動的にノードが追加又は削除される場合には、ノード間の順序関係を正しく推定すること自体も困難となる。
【0008】
本発明は斯かる事情に鑑みてなされたものであり、構造化文書に含まれるノードの全順序関係を、ログ情報に基づいて正しく一義的に決定して可視化する方法、装置及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するために第1発明に係る方法は、構造化文書に含まれるノードの全順序関係を、ノード間遷移に関するログ情報に基づいて決定して可視化する方法において、構造化文書に含まれるノード間の遷移に関する情報を時系列に記憶したログ情報を取得する工程と、取得したログ情報に基づいて、遷移するノード間の相対的位置関係を特定する工程と、特定したノード間の相対的位置関係を制約条件としてトポロジカルソートを実行して構造化文書に含まれるノードの全順序関係を決定する工程とを含み、前記構造化文書に含まれるノードが追加又は削除された場合、ノードのコンテンツに対応するデータに基づいてノードの全順序関係を決定する。
【0010】
また、第2発明に係る方法は、第1発明において、決定したノードの全順序関係を表示する工程を含む。
【0011】
また、第3発明に係る方法は、第1又は第2発明において、前記ログ情報は、少なくともノード間の移動量に関する情報を含み、該ノード間の移動量に関する情報に基づいて、前記相対的位置関係を特定する。
【0012】
また、第4発明に係る方法は、第1乃至第3発明のいずれか1つにおいて、前記構造化文書は木構造を有し、前記ログ情報は、ノードを識別する識別情報、ノードに対する操作の種類、該操作が行われた相対時刻、及びノードのコンテンツに対応するデータを少なくとも含み、前記識別情報及び前記コンテンツに対応するデータの組み合わせを一のキー情報として、同一であるノードの存否を確認してノードの全順序関係を決定する。
【0013】
また、第5発明に係る方法は、第4発明において、前記ログ情報に含まれる前記ノードに対する操作の種類に基づいて、ノード間の移動量を特定する。
【0014】
また、第6発明に係る方法は、第4又は第5発明において、同一であるノードの指定を受け付ける。
【0015】
次に、上記目的を達成するために第7発明に係る装置は、構造化文書に含まれるノードの全順序関係を、ノード間遷移に関するログ情報に基づいて特定して可視化する装置において、構造化文書に含まれるノード間の遷移に関する情報を時系列に記憶したログ情報を取得するログ情報取得部と、取得したログ情報に基づいて、遷移するノード間の相対的位置関係を特定する位置関係特定部と、特定したノード間の相対的位置関係を制約条件としてトポロジカルソートを実行して構造化文書に含まれるノードの全順序関係を決定する全順序関係決定部とを備え、前記構造化文書に含まれるノードが追加又は削除された場合、ノードのコンテンツに対応するデータに基づいてノードの全順序関係を決定するようにしてある。
【0016】
また、第8発明に係る装置は、第7発明において、決定したノードの全順序関係を表示する表示部を備える。
【0017】
また、第9発明に係る装置は、第7又は第8発明において、前記ログ情報は、少なくともノード間の移動量に関する情報を含み、該ノード間の移動量に関する情報に基づいて、前記相対的位置関係を特定するようにしてある。
【0018】
また、第10発明に係る装置は、第7乃至第9発明のいずれか1つにおいて、前記構造化文書は木構造を有し、前記ログ情報は、ノードを識別する識別情報、ノードに対する操作の種類、該操作が行われた相対時刻、及びノードのコンテンツに対応するデータを少なくとも含み、前記識別情報及び前記コンテンツに対応するデータの組み合わせを一のキー情報として、同一であるノードの存否を確認してノードの全順序関係を決定するようにしてある。
【0019】
また、第11発明に係る装置は、第10発明において、前記ログ情報に含まれる前記ノードに対する操作の種類に基づいて、ノード間の移動量を特定するようにしてある。
【0020】
また、第12発明に係る装置は、第10又は第11発明において、同一であるノードの指定を受け付ける指定受付部を備える。
【0021】
次に、上記目的を達成するために第13発明に係るコンピュータプログラムは、構造化文書に含まれるノードの全順序関係を、ノード間遷移に関するログ情報に基づいて決定して可視化するコンピュータで実行することが可能なコンピュータプログラムにおいて、前記コンピュータを、構造化文書に含まれるノード間の遷移に関する情報を時系列に記憶したログ情報を取得するログ情報取得手段、取得したログ情報に基づいて、遷移するノード間の相対的位置関係を特定する位置関係特定手段、及び特定したノード間の相対的位置関係を制約条件としてトポロジカルソートを実行して構造化文書に含まれるノードの全順序関係を決定する全順序関係決定手段として機能させ、前記構造化文書に含まれるノードが追加又は削除された場合、前記全順序関係決定手段を、ノードのコンテンツに対応するデータに基づいてノードの全順序関係を決定する手段として機能させる。
【0022】
また、第14発明に係るコンピュータプログラムは、第13発明において、前記コンピュータを、決定したノードの全順序関係を表示する表示手段として機能させる。
【0023】
また、第15発明に係るコンピュータプログラムは、第13又は第14発明において、前記ログ情報は、少なくともノード間の移動量に関する情報を含み、前記位置関係特定手段を、該ノード間の移動量に関する情報に基づいて、前記相対的位置関係を特定する手段として機能させる。
【0024】
また、第16発明に係るコンピュータプログラムは、第13乃至第15発明のいずれか1つにおいて、前記構造化文書は木構造を有し、前記ログ情報は、ノードを識別する識別情報、ノードに対する操作の種類、該操作が行われた相対時刻、及びノードのコンテンツに対応するデータを少なくとも含み、前記全順序関係決定手段を、前記識別情報及び前記コンテンツに対応するデータの組み合わせを一のキー情報として、同一であるノードの存否を確認してノードの全順序関係を決定する手段として機能させる。
【0025】
また、第17発明に係るコンピュータプログラムは、第16発明において、前記位置関係特定手段を、前記ログ情報に含まれる前記ノードに対する操作の種類に基づいて、ノード間の移動量を特定する手段として機能させる。
【0026】
また、第18発明に係るコンピュータプログラムは、第16又は第17発明において、前記コンピュータを、同一であるノードの指定を受け付ける指定受付手段として機能させる。
【発明の効果】
【0027】
本発明によれば、構造化文書に含まれるノードの全順序関係を、ユーザの操作に関するログ情報に基づいて決定することができ、動的に構造化文書の構造が変化した場合であっても、ノードのコンテンツに対応するデータの一致/不一致を確認することでノード間の絶対的位置関係を一義的に推定して、ユーザの操作時の挙動を画面上に表示することが可能となる。
【図面の簡単な説明】
【0028】
【図1】本発明の実施の形態に係る情報処理装置の構成を模式的に示すブロック図である。
【図2】本発明の実施の形態に係る情報処理装置の機能ブロック図である。
【図3】本発明の実施の形態に係る情報処理装置の相対的位置関係を特定する例示図である。
【図4】本発明の実施の形態に係る情報処理装置の全順序関係を決定する例示図である。
【図5】本発明の実施の形態に係る情報処理装置の決定した全順序関係をグラフィカルに表示した例示図である。
【図6】本発明の実施の形態に係る情報処理装置のCPUの処理手順を示すフローチャートである。
【図7】構造化文書が木構造を有する場合のノードのパス情報の例示図である。
【図8】ノードのテキストデータのみが変化した場合であって、ループ状態が生じないときの例示図である。
【図9】ノードのパス情報のみが変化した場合であって、ループ状態が生じないときの例示図である。
【図10】ループ状態が生じる場合の例示図である。
【発明を実施するための形態】
【0029】
以下、本発明の実施の形態に係る、構造化文書に含まれるノードの全順序関係を、ログ情報に基づいて決定して可視化する装置について、図面に基づいて具体的に説明する。以下の実施の形態は、特許請求の範囲に記載された発明を限定するものではなく、実施の形態の中で説明されている特徴的事項の組み合わせの全てが解決手段の必須事項であるとは限らないことは言うまでもない。
【0030】
また、本発明は多くの異なる態様にて実施することが可能であり、実施の形態の記載内容に限定して解釈されるべきものではない。実施の形態を通じて同じ要素には同一の符号を付している。
【0031】
以下の実施の形態では、コンピュータシステムにコンピュータプログラムを導入した装置について説明するが、当業者であれば明らかな通り、本発明はその一部をコンピュータで実行することが可能なコンピュータプログラムとして実施することができる。したがって、本発明は、構造化文書に含まれるノードの全順序関係を、ログ情報に基づいて決定して可視化する装置というハードウェアとしての実施の形態、ソフトウェアとしての実施の形態、又はソフトウェアとハードウェアとの組み合わせの実施の形態をとることができる。コンピュータプログラムは、ハードディスク、DVD、CD、光記憶装置、磁気記憶装置等の任意のコンピュータで読み取ることが可能な記録媒体に記録することができる。
【0032】
本発明の実施の形態によれば、構造化文書に含まれるノードの全順序関係を、ユーザの操作に関するログ情報に基づいて決定することができ、動的に構造化文書の構造が変化した場合であっても、ノードのコンテンツに対応するデータの一致/不一致を確認することでノード間の絶対的位置関係を一義的に推定して、ユーザの操作時の挙動を画面上に表示することが可能となる。
【0033】
図1は、本発明の実施の形態に係る情報処理装置の構成を模式的に示すブロック図である。本発明の実施の形態に係る情報処理装置1は、少なくともCPU(中央演算装置)11、メモリ12、記憶装置13、I/Oインタフェース14、ビデオインタフェース15、可搬型ディスクドライブ16、通信インタフェース17及び上述したハードウェアを接続する内部バス18で構成されている。
【0034】
CPU11は、内部バス18を介して情報処理装置1の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置13に記憶されたコンピュータプログラム100に従って、種々のソフトウェア的機能を実行する。メモリ12は、SRAM、SDRAM等の揮発性メモリで構成され、コンピュータプログラム100の実行時にロードモジュールが展開され、コンピュータプログラム100の実行時に発生する一時的なデータ等を記憶する。
【0035】
記憶装置13は、内蔵される固定型記憶装置(ハードディスク)、ROM等で構成されている。記憶装置13に記憶されたコンピュータプログラム100は、プログラム及びデータ等の情報を記録したDVD、CD−ROM等の可搬型記録媒体90から、可搬型ディスクドライブ16によりダウンロードされ、実行時には記憶装置13からメモリ12へ展開して実行される。もちろん、通信インタフェース17を介して接続されている外部コンピュータからダウンロードされたコンピュータプログラムであっても良い。
【0036】
通信インタフェース17は内部バス18に接続されており、インターネット、LAN、WAN等の外部のネットワークに接続されることにより、外部コンピュータ等とデータ送受信を行うことが可能となっている。
【0037】
I/Oインタフェース14は、キーボード21、マウス22と接続され、データの入力を受け付ける。また、ビデオインタフェース15は、表示装置23と接続され、所定の画像を表示する。ユーザの、表示装置23に表示されている画像に対する操作ログが、ログ情報として記憶される。
【0038】
図2は、本発明の実施の形態に係る情報処理装置1の機能ブロック図である。図2において、情報処理装置1のログ情報取得部201は、構造化文書に含まれるノード間の遷移に関する情報を時系列に記憶したログ情報を取得する。
【0039】
ログ情報は、構造化文書の行(エントリ)の集まりとして記憶される。ログ情報のフォーマットは(式1)で表すことができる。
【0040】
entry::=(time,op,nodeID,text)・・・(式1)
【0041】
(式1)において、「time」は、ログ情報の取得対象となるページの閲覧を開始した時点からの、操作が行われた相対時刻を表している。「op」は、ユーザが行った操作の種類を表している。「nodeID」は、「op」の操作により到達したノードを識別するノードIDを表している。したがって、「op」の操作を行う前の「nodeID」は、「op」の操作の種類に基づいて容易に特定することができる。すなわち、操作の種類に基づいてノード間の移動量を特定することができるので、特定した移動量に基づいて逆算すれば良い。
【0042】
構造化文書は、ノード列として表すことができる。各ノードは、ノードのコンテンツに対応するデータ、例えば合成音声等で読み上げることが可能なテキストデータを有している。ノードのコンテンツに対応するデータとしては、テキストデータ、画像データ等、コンテンツを特定することが可能なデータであれば特に限定されるものではない。ノードの種類としては、テキストデータ自体であるテキストノード、ヘッダ、フッタ等を示すヘディングノード、リンク先を示すリンクノード、テキストボックス、ボタン等を示すフォームコントロールノード等がある。なお、画像ノードのような非テキストノードであっても、コンテンツの作成者が代替テキストデータを付与することにより、テキストデータを有することができる。
【0043】
ユーザが行う操作の種類としては、例えばページ先頭への移動、ページ末尾への移動、次のノードへの移動、前のノードへの移動、10ノード先への移動、10ノード前への移動、次のリンクへの移動、前のリンクへの移動、次のヘディングノードへの移動、前のヘディングノードへの移動、ページ内リンクによるジャンプ等、ウェブページ内にて移動する任意の操作がある。単純なノード間の移動操作においては、操作の種類に基づいて、ノード間の移動量を容易に特定することができる。
【0044】
ノードIDには、ノードのアドレス、ノードのパス、ノードのコンテンツに対応するデータ、又はこれらの組み合わせを用いる。もちろん、動的にノードが追加又は削除される場合には、ノードIDも動的に変化する。
【0045】
そして、「text」は、ノードのコンテンツに対応するデータとして、ノードのテキストデータを表している。本発明の実施の形態では、ログ情報にノードのテキストデータを含み、ノードIDとテキストデータとを組み合わせて一のキー情報として、同一であるノードを検索する。これにより、ノード間の相対的な位置関係だけからは決定することができないノードの全順序関係を、ノードIDとテキストデータとを組み合わせて同一のノードであるか否かを判断することにより特定することができる。例えばノードIDが一致しているものの、同一ではないノードをテキストデータの相違で区別する。
【0046】
位置関係特定部202は、取得したログ情報に基づいて、遷移するノード間の相対的位置関係を特定する。例えばログ情報には、ユーザが行う操作の種類、及び到達したノードを識別するノードIDが含まれているので、操作の種類に基づくノード間の移動量に基づいて、ノード間の相対的位置関係を特定することができる。
【0047】
図3は、本発明の実施の形態に係る情報処理装置1の相対的位置関係を特定する例示図である。図3(a)に示すようにノードAからノードB(1)、B(2)に遷移し、ノードB(2)からはノードC(1)及びノードC(2)の2つのノードへ遷移する。
【0048】
例えば、ノードB(2)からノードC(1)へ操作「次のノードへの移動」により遷移し、ノードB(2)からノードC(2)へは操作「10ノード先への移動」により遷移したものとすると、B(2)<C(1)、B(2)<C(2)の2つの相対的位置関係を特定することができる。
【0049】
ここで、図3(b)に示すように、ノードB(1)と旧ノードB(2)との間に、新ノードB(2)を追加した場合、旧ノードB(2)は新ノードB(3)に変更される。この後、例えば新ノードB(2)からノードC(1)へ操作「次のノードへの移動」により遷移し、新ノードB(2)からノードC(2)へは操作「10ノード先への移動」により遷移した場合、B(2)<C(1)、B(2)<C(2)の2つの相対的位置関係が特定される。しかし、ノードB(2)が旧ノードB(2)であるのか、追加された新ノードB(2)であるのか、区別することができず、ノードの全順序関係を決定することができない。
【0050】
そこで、全順序関係決定部203は、特定したノード間の相対的位置関係を制約条件としてトポロジカルソートを実行して構造化文書に含まれるノードの全順序関係を決定する。構造化文書に含まれるノードが追加又は削除された場合、ノードIDに対応付けられたテキストデータに基づいて、ノードの全順序関係を決定する。
【0051】
図4は、本発明の実施の形態に係る情報処理装置1の全順序関係を決定する例示図である。図3と同じく、ノードB(1)と旧ノードB(2)との間に、新ノードB(2)を追加した場合、旧ノードB(2)は新ノードB(3)に変更される。この後、例えば新ノードB(2)からノードC(1)へ操作「次のノードへの移動」により遷移し、新ノードB(2)からノードC(2)へは操作「10ノード先への移動」により遷移した場合、B(2)<C(1)、B(2)<C(2)の2つの相対的位置関係が特定される。
【0052】
このままでは、ノードB(2)が旧ノードB(2)であるのか、追加された新ノードB(2)であるのか、区別することができない。そこで、付与されているテキストデータの違いによってノードB(2)がいずれのノードであるかを特定する。まず、旧ノードB(2)又は新ノードB(3)は、テキストデータT1が付与されている。ノードB(2)が旧ノードB(2)である場合、旧ノードB(2)はテキストデータT1が付与されているので、相対的位置関係は(B(2)、T1)<C(1)、(B(2)、T1)<C(2)となる。しかし、新ノードB(2)は、異なるテキストデータが付与されているので、ノードB(2)が新ノードB(2)である場合には、相対的位置関係はB(2)<C(1)、B(2)<C(2)となる。本来、旧ノードB(2)に付与されているのはテキストデータT1であるので、テキストデータT1が付与されていないノードを削除することによりノードB(2)がいずれのノードであるか特定することができる。つまり、両方の相対的位置関係を比較することにより、ノードB(2)が旧ノードB(2)であると特定することができる。したがって、ノードの絶対的位置関係を一義的に推定することができ、ログ情報が十分に収集された場合、ノードの全順序関係を決定することができる。
【0053】
ノードIDが異なっている場合には、このようにノードのテキストデータが一致しているか否かで同一のノードであるか否かを判断することができるが、相対的位置関係を特定する前に、ノードIDとテキストデータとの組み合わせを一のキー情報として、ノードIDが一致している、あるいはノードIDは異なるがテキストデータが一致しているノードを同一のノードとして抽出しておいても良い。これにより、事前に同一のノードの存否を確認しておくことができ、ノードの追加又は削除によりノードIDが変更された場合であっても異なるノードであると誤認することを未然に防止することができる。もちろん、指定受付部204を備えておき、事前に同一であるノードの指定を受け付けておいても良い。
【0054】
表示部205は、全順序関係決定部203にて決定したノードの全順序関係を、グラフィカルに表示する。図5は、本発明の実施の形態に係る情報処理装置1の決定した全順序関係をグラフィカルに表示した例示図である。
【0055】
図5は、縦軸に経過時間を、横軸にウェブページ内でのユーザが指示するカーソルの位置に対応するノードの位置を示しており、ユーザがどのような振る舞いで操作したかをグラフィカルに示している。図5の例では、左上を原点として、次第に画面右側のノードへと遷移し(これを順方向とする)、画面中央近傍で推移した後、一気に逆方向へジャンプしている。そして、画面左端近傍で推移した後、今度は一気に順方向へジャンプし、所望の位置を通り過ぎたと判断して逆方向へ遷移を開始し、その後戻りすぎたと判断して順方向へ遷移を開始している。このように、ノードの絶対的位置関係を一義的に推定することができ、ログ情報が十分に収集された場合、ノードの全順序関係が決定することにより、実際のユーザ操作の挙動を正しく表示することが可能となる。
【0056】
図6は、本発明の実施の形態に係る情報処理装置1のCPU11の処理手順を示すフローチャートである。図6の例では、構造化文書が木構造を有しており、木構造におけるノードのパス情報がノードIDとして付与されている場合について説明する。
【0057】
図6において、情報処理装置1のCPU11は、ログ情報を取得する(ステップS601)。取得するログ情報は、例えばノードを識別する識別情報であるノードID、ノードに対する操作の種類、操作が行われた相対時刻、及びノードのテキストデータを少なくとも含んでいる。
【0058】
図7は、構造化文書が木構造を有する場合のノードのパス情報の例示図である。図7の例では、ルートノード「body」から下位階層のノード「div(1)」、「div(2)」の2つのノードに分岐し、ノード「div(2)」は、さらに下位階層のノード「a(1)」、「a(2)」の2つのノードに分岐している。ノード「a(2)」にはテキストデータ「text」が付与されている。
【0059】
この場合、ノード「a(2)」を示すパス情報は、いわゆるXPath的な表現を用いて、(式2)のように表すことができる。
【0060】
XPath=/body/div(2)/a(2) <text> ・・・(式2)
【0061】
従来は、(式2)の右辺のうち、テキストデータを除いた部分をノードIDとすることにより、ノードが追加又は削除され、木構造が変動しない限り、木構造中のどのノードであるのかパスをたどることができた。しかし、ノードが追加又は削除され、木構造が変動する場合には、パスをたどることができない。
【0062】
そこで、本実施の形態では、テキストデータを含めてノードIDとする。これにより、ノードが追加又は削除され、木構造が変動した場合であっても、テキストデータの一致/不一致を確認することにより、パス情報がノードの追加又は削除により変動した場合であっても、同一のノードであるか否かを容易に判断することができる。
【0063】
図6に戻って、情報処理装置1のCPU11は、取得したログ情報から、一のログ情報を選択し(ステップS602)、ログ情報に含まれるノードに対する操作の種類に基づいて、移動前のノードとの半順序制約を生成する(ステップS603)。ここで、半順序制約とは、ノードに対する操作の種類に基づいて特定される、ノードの相対的位置関係を意味する。
【0064】
例えばノードn1、n2に対して、ノードn1からノードn2へ順方向に移動する場合には、n1<n2という相対的位置関係であることが特定される。同様にノードn2からノードn1へ順方向に移動する場合には、n1>n2という相対的位置関係であることが特定される。特定された相対的位置関係を制約条件としてトポロジカルソートを実行してノードの全順序関係を決定することができる。
【0065】
CPU11は、次のログ情報を選択する(ステップS604)、ログ情報に含まれるノードに対する操作の種類に基づいて、移動前のノードとの半順序制約を生成する(ステップS605)。CPU11は、全てのログ情報を選択したか否かを判断し(ステップS606)、CPU11が、まだ選択していないログ情報が存在すると判断した場合(ステップS606:NO)、CPU11は、処理をステップS604へ戻し、上述した処理を繰り返す。
【0066】
CPU11が、全てのログ情報を選択したと判断した場合(ステップS606:YES)、CPU11は、生成した半順序制約を全て満たす全順序関係を決定するためにトポロジカルソートを実行する(ステップS607)。
【0067】
CPU11は、トポロジカルソートの実行により、全順序関係が決定されたか否かを判断する(ステップS608)。CPU11が、全順序関係が決定されていないと判断した場合(ステップS608:NO)、CPU11は、半順序制約を一部削除し(ステップS609)、トポロジカルソートを再実行する(ステップS610)。従来のトポロジカルソートとは相違し、ノードIDにノードのテキストデータが含まれているので、木構造が変動した場合であっても、テキストデータの一致/不一致を確認することにより、パス情報がノードの追加又は削除により変動した場合であっても、同一のノードであるか否かを容易に判断することができる。具体的には、同一のノードについては、いずれかのノードIDに統一して、トポロジカルソートを再実行する。
【0068】
CPU11は、トポロジカルソートの再実行により、全順序関係が決定されたか否かを判断する(ステップS611)。CPU11が、全順序関係が決定されていないと判断した場合(ステップS611:NO)、CPU11は、処理をステップS609へ戻して上述した処理を繰り返す。
【0069】
CPU11が、全順序関係が決定されたと判断した場合(ステップS608:YES、ステップS611:YES)、CPU11は、処理を終了し、決定された全順序関係に基づいて、ノード遷移の絶対的位置関係を時系列に表示装置23に表示する。具体的には図5に例示したような、ユーザ操作の振る舞い図として表示される。
【0070】
なお、半順序制約によっては、ノード間の順序関係にループ状態が生じている可能性もある。ステップS611にて全順序関係が決定されていないと判断された場合の多くが、これに相当する。原因は、ノードのパス情報又はテキストデータが変化することにより、誤った半順序制約が生成されたからである。
【0071】
図8は、ノードのテキストデータのみが変化した場合であって、ループ状態が生じないときの例示図である。図8では順序関係を矢印で示している。図8(a)に示すように、初期状態では、ノードの正しい順序はn1<n2<n3とする。ノードn1、n2、n3のパス情報は、それぞれp1、p2、p3とし、テキストデータは、それぞれtext1、text2、text3とする。
【0072】
ノードn1からノードn2、ノードn3と順に移動した時点で、ノードn2のテキストデータがtext2’に変化し、その後ノードn3からノードn2、ノードn1と順に移動した場合、生成される半順序制約は、(式3)のようになる。なお、(式3)において、ノードは、(パス情報、テキストデータ)の組み合わせとして表しており、(p2、text2)と(p2、text2’)とは別のノードとして扱う。
【0073】
(p1、text1)<(p2、text2)
(p2、text2)<(p3、text3)
(p2、text2’)<(p3、text3)
(p1、text1)<(p2、text2’) ・・・(式3)
【0074】
(式3)に示す半順序制約を解くことにより、図8(b)に示すような順序関係が生じる。すなわち、(式4)のように表すことができる。ただし、(式4)において記号「:」は、隣接する2つのノードの順序が確定していないことを意味している。
【0075】
(p1、text1)<(p2、text2):(p2、text2’)
<(p3、text3) ・・・(式4)
【0076】
ノードのテキストデータのみが変化した場合、例えばノード(p2、text2)とノード(p2、text2’)とは、元来同一のノードである。したがって、順序関係が確定していなくても問題が生じることがない。
【0077】
図9は、ノードのパス情報のみが変化した場合であって、ループ状態が生じないときの例示図である。図9でも順序関係を矢印で示している。図9(a)に示すように、初期状態では、ノードの正しい順序はn1<n2<n3とする。ノードn1、n2、n3のパス情報は、それぞれp1、p2、p3とし、テキストデータは、それぞれtext1、text2、text3とする。
【0078】
ノードn1からノードn2、ノードn3と順に移動した時点で、図9(b)に示すようにノードn1とノードn2との間にテキストデータがtext4であるノードn4が追加され、ノードn4のパス情報がp2、ノードn2のパス情報がp3、ノードn3のパス情報がp3’に変化したものとする。その後ノードn3からノードn2、ノードn4、ノードn1と順に移動した場合、生成される半順序制約は、(式5)のようになる。なお、(式5)においても、ノードは、(パス情報、テキストデータ)の組み合わせとして表しており、(p3、text2)と(p3、text3)とは別のノードとして扱う。
【0079】
(p1、text1)<(p2、text2)
(p2、text2)<(p3、text3)
(p3、text2)<(p3’、text3)
(p2、text4)<(p3、text2)
(p1、text1)<(p2、text4) ・・・(式5)
【0080】
(式5)に示す半順序制約を解くことにより、図9(c)に示すような順序関係が生じる。図9(c)において、ノードn2とn2’とは、本来は同一のノードであることから、順序関係が確定していなくても問題が生じることがない。
【0081】
図10は、ループ状態が生じる場合の例示図である。図10(a)に示すように、初期状態では、ノードの正しい順序はn1<n2<n3<n4とする。ノードn1、n2、n3、n4のパス情報は、それぞれp1、p2、p3、p4とし、テキストデータは、それぞれtext1、text2、text1、text4とする。つまり、ノードn1のテキストデータとノードn3のテキストデータが同一である。
【0082】
ノードn1からノードn2、ノードn3、ノードn4と順に移動した時点で、図10(b)に示すようにノードn1が削除され、ノードn3のパス情報がp1に変化したものとする。その後ノードn4からノードn3、ノードn2と順に移動した場合、生成される半順序制約は、(式6)のようになる。なお、(式6)においても、ノードは、(パス情報、テキストデータ)の組み合わせとして表している。
【0083】
(p1、text1)<(p2、text2)
(p2、text2)<(p3、text1)
(p3、text1)<(p4、text4)
(p4、text4)>(p1、text1)
(p2、text2)<(p1、text1) ・・・(式6)
【0084】
(式6)に示す半順序制約集合には、図10(c)に示すように、ノード(p1、text1)とノード(p2、text2)との間にループ状態が生じている。この場合、以下の手順で削除するべき半順序制約を、ループを構成する半順序制約の中から選択する。
【0085】
まず時刻的に一番最後に追加された半順序制約を削除する。図10(c)では矢印101の半順序制約(p2、text2)<(p1、text1)を削除することにより、ループ状態が解消する。
【0086】
また、時刻的に一番最初に追加された半順序制約を削除しても良い。図10(c)では矢印102の半順序制約(p1、text1)<(p2、text2)を削除した場合であっても、ループ状態が解消する。
【0087】
もちろん、所定の時刻から一番経過した時刻の長い半順序制約を削除しても良い。これにより、所定の時刻においてループ状態が生じていない場合には、所定の時刻における半順序制約の集合へと近づけることができる。
【0088】
いずれも、ループ状態が解消するまで、順次、上述した手順で半順序制約を削除し、ループ状態が解消した時点で、全順序関係を決定すれば良い。
【0089】
以上のように本実施の形態によれば、構造化文書に含まれるノードの全順序関係を、ユーザの操作に関するログ情報に基づいて決定することができ、動的に構造化文書の構造が変化した場合であっても、ノードのコンテンツに対応するテキストデータの一致/不一致を確認することでノード間の絶対的位置関係を一義的に推定して、ユーザ操作時の挙動を画面上に表示することが可能となる。
【0090】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。
【符号の説明】
【0091】
1 情報処理装置
11 CPU
12 メモリ
13 記憶装置
14 I/Oインタフェース
15 ビデオインタフェース
16 可搬型ディスクドライブ
17 通信インタフェース
18 内部バス
23 表示装置
90 可搬型記録媒体
100 コンピュータプログラム

【特許請求の範囲】
【請求項1】
構造化文書に含まれるノードの全順序関係を、ノード間遷移に関するログ情報に基づいて決定して可視化する方法において、
構造化文書に含まれるノード間の遷移に関する情報を時系列に記憶したログ情報を取得する工程と、
取得したログ情報に基づいて、遷移するノード間の相対的位置関係を特定する工程と、
特定したノード間の相対的位置関係を制約条件としてトポロジカルソートを実行して構造化文書に含まれるノードの全順序関係を決定する工程と
を含み、
前記構造化文書に含まれるノードが追加又は削除された場合、ノードのコンテンツに対応するデータに基づいてノードの全順序関係を決定する方法。
【請求項2】
決定したノードの全順序関係を表示する工程を含む請求項1記載の方法。
【請求項3】
前記ログ情報は、少なくともノード間の移動量に関する情報を含み、
該ノード間の移動量に関する情報に基づいて、前記相対的位置関係を特定する請求項1又は2記載の方法。
【請求項4】
前記構造化文書は木構造を有し、
前記ログ情報は、ノードを識別する識別情報、ノードに対する操作の種類、該操作が行われた相対時刻、及びノードのコンテンツに対応するデータを少なくとも含み、
前記識別情報及び前記コンテンツに対応するデータの組み合わせを一のキー情報として、同一であるノードの存否を確認してノードの全順序関係を決定する請求項1乃至3のいずれか一項に記載の方法。
【請求項5】
前記ログ情報に含まれる前記ノードに対する操作の種類に基づいて、ノード間の移動量を特定する請求項4記載の方法。
【請求項6】
同一であるノードの指定を受け付ける請求項4又は5記載の方法。
【請求項7】
構造化文書に含まれるノードの全順序関係を、ノード間遷移に関するログ情報に基づいて決定して可視化する装置において、
構造化文書に含まれるノード間の遷移に関する情報を時系列に記憶したログ情報を取得するログ情報取得部と、
取得したログ情報に基づいて、遷移するノード間の相対的位置関係を特定する位置関係特定部と、
特定したノード間の相対的位置関係を制約条件としてトポロジカルソートを実行して構造化文書に含まれるノードの全順序関係を決定する全順序関係決定部と
を備え、
前記構造化文書に含まれるノードが追加又は削除された場合、ノードのコンテンツに対応するデータに基づいてノードの全順序関係を決定するようにしてある装置。
【請求項8】
決定したノードの全順序関係を表示する表示部を備える請求項7記載の装置。
【請求項9】
前記ログ情報は、少なくともノード間の移動量に関する情報を含み、
該ノード間の移動量に関する情報に基づいて、前記相対的位置関係を特定するようにしてある請求項7又は8記載の装置。
【請求項10】
前記構造化文書は木構造を有し、
前記ログ情報は、ノードを識別する識別情報、ノードに対する操作の種類、該操作が行われた相対時刻、及びノードのコンテンツに対応するデータを少なくとも含み、
前記識別情報及び前記コンテンツに対応するデータの組み合わせを一のキー情報として、同一であるノードの存否を確認してノードの全順序関係を決定するようにしてある請求項7乃至9のいずれか一項に記載の装置。
【請求項11】
前記ログ情報に含まれる前記ノードに対する操作の種類に基づいて、ノード間の移動量を特定するようにしてある請求項10記載の装置。
【請求項12】
同一であるノードの指定を受け付ける指定受付部を備える請求項10又は11記載の装置。
【請求項13】
構造化文書に含まれるノードの全順序関係を、ノード間遷移に関するログ情報に基づいて決定して可視化するコンピュータで実行することが可能なコンピュータプログラムにおいて、
前記コンピュータを、
構造化文書に含まれるノード間の遷移に関する情報を時系列に記憶したログ情報を取得するログ情報取得手段、
取得したログ情報に基づいて、遷移するノード間の相対的位置関係を特定する位置関係特定手段、及び
特定したノード間の相対的位置関係を制約条件としてトポロジカルソートを実行して構造化文書に含まれるノードの全順序関係を決定する全順序関係決定手段
として機能させ、
前記構造化文書に含まれるノードが追加又は削除された場合、前記全順序関係決定手段を、ノードのコンテンツに対応するデータに基づいてノードの全順序関係を決定する手段として機能させるコンピュータプログラム。
【請求項14】
前記コンピュータを、決定したノードの全順序関係を表示する表示手段として機能させる請求項13記載のコンピュータプログラム。
【請求項15】
前記ログ情報は、少なくともノード間の移動量に関する情報を含み、
前記位置関係特定手段を、該ノード間の移動量に関する情報に基づいて、前記相対的位置関係を特定する手段として機能させる請求項13又は14記載のコンピュータプログラム。
【請求項16】
前記構造化文書は木構造を有し、
前記ログ情報は、ノードを識別する識別情報、ノードに対する操作の種類、該操作が行われた相対時刻、及びノードのコンテンツに対応するデータを少なくとも含み、
前記全順序関係決定手段を、前記識別情報及び前記コンテンツに対応するデータの組み合わせを一のキー情報として、同一であるノードの存否を確認してノードの全順序関係を決定する手段として機能させる請求項13乃至15のいずれか一項に記載のコンピュータプログラム。
【請求項17】
前記位置関係特定手段を、前記ログ情報に含まれる前記ノードに対する操作の種類に基づいて、ノード間の移動量を特定する手段として機能させる請求項16記載のコンピュータプログラム。
【請求項18】
前記コンピュータを、同一であるノードの指定を受け付ける指定受付手段として機能させる請求項16又は17記載のコンピュータプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図5】
image rotate


【公開番号】特開2012−113640(P2012−113640A)
【公開日】平成24年6月14日(2012.6.14)
【国際特許分類】
【出願番号】特願2010−264010(P2010−264010)
【出願日】平成22年11月26日(2010.11.26)
【出願人】(390009531)インターナショナル・ビジネス・マシーンズ・コーポレーション (4,084)
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MASCHINES CORPORATION
【復代理人】
【識別番号】100117260
【弁理士】
【氏名又は名称】福永 正也
【Fターム(参考)】