(57)【要約】【課題】変更履歴を個別管理する各属性情報から構成される情報の検索を容易にすることを課題とする。【解決手段】データ検索装置１０は、メインテーブル２１のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とを対応付けて記憶する複数の履歴テーブル２２から、属性情報および変更履歴を取得し、有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成する。そして、データ検索装置１０は、作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成する。そして、データ検索装置１０は、作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う。【選択図】        図１
2014032522.tif 000002
【特許請求の範囲】
【請求項１】
所定のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とを対応付けて記憶する複数の履歴テーブルから、前記属性情報および前記変更履歴を取得し、前記有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成するテーブル作成部と、
前記テーブル作成部によって作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成するグラフ作成部と、
前記グラフ作成部によって作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う検索部と、
を備えることを特徴とするデータ検索装置。
【請求項２】
前記テーブル作成部は、前記履歴テーブルから、前記属性情報および前記変更履歴を取得し、全ての属性情報について、前記有効期間が共通する属性情報同士を対応付け、前記有効期間が共通する属性情報の組に対して一意に識別できる識別子を付与したテーブルをログテーブルとして作成し、前記ログテーブルの情報に基づき、前記有効期間のうち最も新しい期間の属性情報を記憶するテーブルをカレントログテーブルとして作成することを特徴とする請求項１に記載のデータ検索装置。
【請求項３】
前記テーブル作成部によって作成されたテーブルを記憶する記憶部をさらに備え、
前記検索部は、前記記憶部によって記憶されたテーブルを読み出し、該テーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成することを特徴とする請求項１または２に記載のデータ検索装置。
【請求項４】
前記グラフ作成部は、前記テーブル作成部で作成されたテーブルを用いて、所定のデータの最新の全属性情報と、その属性情報が有効な期間とを紐づけたカレントリソースと、所定のデータの最新の全属性情報が不変な期間と、その期間の全属性情報とを紐づけたログリソースと、前記カレントリソースと前記ログリソースの関係情報で構成されたグラフデータを作成することを特徴とする請求項１〜３のいずれか一つに記載のデータ検索装置。
【請求項５】
前記グラフ作成部は、前記最新の全属性情報、前記カレントリソース、前記不変な期間、前記ログリソース、および、前記グラフデータに加え、前記ログリソース間の順序関係をさらに作成することを特徴とする請求項４に記載のデータ検索装置。
【請求項６】
前記所定のデータを記憶するメインテーブルとともに、該所定のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とが対応付けられた複数の履歴テーブルを記憶する記憶部と、
前記記憶部によって記憶された複数の履歴テーブルから、前記属性情報および前記変更履歴を取得し、前記有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成するテーブル作成部と、
前記テーブル作成部によって作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成するグラフ作成部と、
前記グラフ作成部によって作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う検索部と、
を備えることを特徴とするデータ検索システム。
【請求項７】
データ検索装置で実行される情報推薦方法であって、
所定のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とを対応付けて記憶する複数の履歴テーブルから、前記属性情報および前記変更履歴を取得し、前記有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成するテーブル作成工程と、
前記テーブル作成工程によって作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成するグラフ作成工程と、
前記グラフ作成工程によって作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う検索工程と、
を含んだことを特徴とするデータ検索方法。
【請求項８】
所定のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とを対応付けて記憶する複数の履歴テーブルから、前記属性情報および前記変更履歴を取得し、前記有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成するテーブル作成ステップと、
前記テーブル作成ステップによって作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成するグラフ作成ステップと、
前記グラフ作成ステップによって作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う検索ステップと、
をコンピュータに実行させることを特徴とするデータ検索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ検索装置、データ検索システム、データ検索方法およびデータ検索プログラムに関する。
【背景技術】
【０００２】
近年、異なるシステムや異なるフォーマットで蓄積されたために、統合した利用が困難な共有資産となるデータが多数存在している。このようなデータを利用する既存システムに応じて個別最適化されたスキーマとデータ群が、既存の枠組みを超えて参照・有効活用できることが求められている。
【０００３】
例えば、企業内のシステムを連結しデータ連携を図るＥＡＩ（Enterprise  Application  Integration）、企業内の知識共有が可能なようにするナレッジマネージメント、マスタデータを統合活用するためのマスタデータマネージメントなどの技術が提供されている。
【０００４】
また、このようなデータを管理する技術として、コード管理ファイルに有効期限を付与することにより同一コードに対応する値の変更履歴の管理を可能とする技術が知られている（例えば、非特許文献１参照）。また、このようなデータを管理して検索する技術として、リレーショナルデータベースに格納されているデータをグラフデータの一種であるＲＤＦデータへと変換し、ＲＤＦデータを検索する技術が知られている（例えば、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】“就業管理システム  リシテアシリーズ”、［online］、［平成２４年７月２３日検索］、インターネット＜http://lysithea.jp/products/＞
【非特許文献２】“Ｄ２ＲＱ”、［online］、［平成２４年７月２３日検索］、インターネット＜http://d2rq.org/＞
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記した同一コードに対応する値の変更履歴を管理する技術では、検索のためのクエリが複雑化するという課題があった。つまり、複数の属性情報から構成される情報を一意に実体が定まるＩＤに紐付けて統合・管理する場合に、ＩＤに紐付けられた情報を構成する属性情報個々の変更履歴は管理されているが、変更履歴情報を横断的に検索する手段については言及されていない。このため、変更履歴を個別管理する各属性情報から構成される情報を検索する場合に、情報のスキーマ構造を把握していなければ、どのような属性情報から構成されるかが分からず、検索のためのクエリが複雑化するという課題があった。
【０００７】
また、上記したＲＤＦデータを検索する技術では、スキーマ構造を知らなくても全属性情報を検索、取得できるようになるが、履歴情報を持つ各属性情報のテーブルを１つに統合するために再構成するスキーマ変更機能を持たないため、全属性情報の変遷を辿る検索の実施にあたり、複数の履歴情報の精査が必要となり、クエリが複雑化するという課題があった。
【０００８】
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、変更履歴を個別管理する各属性情報から構成される情報の検索を容易に実現することを目的とする。
【課題を解決するための手段】
【０００９】
上述した課題を解決し、目的を達成するため、データ検索装置は、所定のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とを対応付けて記憶する複数の履歴テーブルから、前記属性情報および前記変更履歴を取得し、前記有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成するテーブル作成部と、前記テーブル作成部によって作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成するグラフ作成部と、前記グラフ作成部によって作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う検索部と、を備えることを特徴とする。
【００１０】
また、データ検索システムは、前記所定のデータを記憶するメインテーブルとともに、該所定のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とが対応付けられた複数の履歴テーブルを記憶する記憶部と、前記記憶部によって記憶された複数の履歴テーブルから、前記属性情報および前記変更履歴を取得し、前記有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成するテーブル作成部と、前記テーブル作成部によって作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成するグラフ作成部と、前記グラフ作成部によって作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う検索部と、を備えることを特徴とする。
【００１１】
また、データ検索方法は、データ検索装置で実行される情報推薦方法であって、所定のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とを対応付けて記憶する複数の履歴テーブルから、前記属性情報および前記変更履歴を取得し、前記有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成するテーブル作成工程と、前記テーブル作成工程によって作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成するグラフ作成工程と、前記グラフ作成工程によって作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う検索工程と、を含んだことを特徴とする。
【００１２】
また、データ検索プログラムは、所定のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とを対応付けて記憶する複数の履歴テーブルから、前記属性情報および前記変更履歴を取得し、前記有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成するテーブル作成ステップと、前記テーブル作成ステップによって作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成するグラフ作成ステップと、前記グラフ作成ステップによって作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う検索ステップと、をコンピュータに実行させることを特徴とする。
【発明の効果】
【００１３】
本願に開示するデータ検索装置、データ検索システム、データ検索方法およびデータ検索プログラムは、変更履歴を個別管理する各属性情報から構成される情報の検索を容易にするという効果を奏する。
【図面の簡単な説明】
【００１４】
【図１】図１は、第一の実施の形態に係るデータ検索装置の構成を示すブロック図である。
【図２】図２は、社員メインテーブルの一例を示す図である。
【図３】図３は、部屋番号履歴テーブルの一例を示す図である。
【図４】図４は、職責履歴テーブルの一例を示す図である。
【図５】図５は、部屋番号履歴テーブルの一例を示す図である。
【図６】図６は、社員ログテーブルの一例を示す図である。
【図７】図７は、社員ログ順序テーブルの一例を示す図である。
【図８】図８は、社員カレントログテーブルの一例を示す図である。
【図９】図９は、ＲＤＦデータの一例を示す図である。
【図１０】図１０は、ＲＤＦデータの一例を示す図である。
【図１１】図１１は、社員カレントログテーブルの一例を示す図である。
【図１２】図１２は、ＵＲＩであらわされるカレントリソースをグラフ表現した場合におけるノードの一例を示す図である。
【図１３】図１３は、ＲＤＦデータの一例を示す図である。
【図１４】図１４は、設定ファイルの一例を示す図である。
【図１５】図１５は、ＲＤＦデータの計算機処理フォーマットの一例を示す図である。
【図１６】図１６は、社員ログテーブルの一例を示す図である。
【図１７】図１７は、ＵＲＩであらわされるログリソースをグラフ表現した場合におけるノードの一例を示す図である。
【図１８】図１８は、ＲＤＦデータの一例を示す図である。
【図１９】図１９は、設定ファイルの一例を示す図である。
【図２０】図２０は、ＲＤＦデータの計算機処理フォーマットの一例を示す図である。
【図２１】図２１は、ＲＤＦデータの一例を示す図である。
【図２２】図２２は、設定ファイルの一例を示す図である。
【図２３】図２３は、ＲＤＦデータの計算機処理フォーマットの一例を示す図である。
【図２４】図２４は、マスタデータから作成したＲＤＦデータの一例を示す図である。
【図２５】図２５は、簡単な検索クエリで検索結果を取得できることを説明するための図である。
【図２６】図２６は、簡単な検索クエリで検索結果を取得できることを説明するための図である。
【図２７】図２７は、ＲＤＦに変換しているため、外部のＲＤＦデータとの相互接続が容易であることを説明する図である。
【図２８】図２８は、第一の実施の形態に係るデータ検索装置の処理動作を示すフローチャートである。
【図２９】図２９は、第一の実施の形態に係るデータ検索装置の処理動作を示すフローチャートである。
【図３０】図３０は、データ検索プログラムを実行するコンピュータを示す図である。
【発明を実施するための形態】
【００１５】
以下に添付図面を参照して、この発明に係るデータ検索装置、データ検索システム、データ検索方法およびデータ検索プログラムの実施形態を詳細に説明する。なお、この実施形態によりこの発明が限定されるものではない。
【００１６】
［第一の実施の形態］
以下の実施の形態では、第一の実施の形態に係るデータ検索システムの構成、および処理の流れを順に説明し、最後に第一の実施の形態による効果を説明する。
【００１７】
［データ検索装置の構成］
まず、図１を用いて、図１に示したデータ検索システム１００に含まれるデータ検索装置１０の構成を説明する。図１は、第一の実施の形態に係るデータ検索装置の構成を示すブロック図である。図１に示すように、データ検索システム１００は、データ検索装置１０と、マスタデータＤＢ（Data  Base）２０と、アプリケーション３０とを有する。
【００１８】
マスタデータＤＢ２０は、メインテーブル２１と、メインテーブル２１に対応付けられた複数の履歴テーブル２２とを格納する。メインテーブル２１には、プライマリキーとなる「ＩＤ」と、レコードの有効期限である「start  Data」および「end  Data」と、レコードが存在する間不変な「属性情報」とが格納されている。履歴テーブル２２には、「ＩＤ」、「属性情報」、および、「start  Data」および「end  Data」が格納されている。
【００１９】
例えば、メインテーブル２１は、図２に例示するように、社員に関する情報を格納するメインテーブルとして「社員メインテーブル」を記憶する。図２の例を挙げて説明すると、社員メインテーブルでは、プライマリキーとなる「ＩＤ」と、社員の「氏名」と、社員が所属する組織のＩＤである「組織ＩＤ」と、レコードの有効期限である「start  Data」および「end  Data」とを記憶する。
【００２０】
また、例えば、履歴テーブル２２は、図３および図４に例示するように、社員に関する履歴管理された属性情報を格納した履歴テーブルとして、「部屋番号履歴テーブル」および「職責履歴テーブル」を記憶する。図３の例を挙げて説明すると、部屋番号履歴テーブルは、社員メインテーブルのプライマリキーとなる「ＩＤ」と、社員が職務を行う部屋の番号である「部屋」と、レコードの有効期限である「start  Data」および「end  Data」とを対応付けて記憶する。また、図４の例を挙げて説明すると、職責履歴テーブルは、社員メインテーブルのプライマリキーとなる「ＩＤ」と、社員の会社における職責を示す「職責」と、レコードの有効期限である「start  Data」および「end  Data」とを対応付けて記憶する。
【００２１】
アプリケーション３０は、データ検索装置１０に対して、検索クエリを送信して検索要求を行い、その検索要求に対する検索結果を受信する。なお、検索処理については、データ検索装置の検索部１３の説明で詳述する。
【００２２】
データ検索装置１０は、テーブル作成部１１、グラフ作成部１２、検索部１３、変換用ＤＢ１４およびグラフＤＢ１５を有し、マスタデータＤＢ２０およびアプリケーション３０と接続している。以下にこれらの各部の処理を説明する。
【００２３】
変換用ＤＢ１４は、後述するテーブル作成部１１によって作成されるログテーブル、ログ順序テーブルおよびカレントログテーブルを記憶する。また、変換用ＤＢ１４は、記憶したログテーブル、ログ順序テーブルおよびカレントログテーブルが、後述するグラフ作成部１２によって読み出される。なお、ログテーブル、ログ順序テーブルおよびカレントログテーブルについては、後に詳述する。
【００２４】
グラフＤＢ１５は、後述するグラフ作成部１２によって作成されたＲＤＦグラフデータを格納する。また、グラフＤＢ１５は、記憶したＲＤＦグラフデータが、後述する検索部１３によって検索され、読み出される。なお、ＲＤＦグラフデータについては、後に詳述する。
【００２５】
テーブル作成部１１は、メインテーブル２１のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とを対応付けて記憶する複数の履歴テーブル２２から、属性情報および変更履歴を取得し、有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成し、変換用ＤＢ１４に格納する。以下に、テーブル作成部１１によって実行させる処理について詳しく説明する。
【００２６】
まず、テーブル作成部１１は、変換するメインテーブル２１をマスタデータＤＢ２１から取得し、メインテーブル２１に紐付く全ての履歴テーブル２２を取得する。例えば、テーブル作成部１１は、図２に例示した「社員メインテーブル」が変換するメインテーブルとして指定された場合には、該メインテーブルに紐付く全履歴テーブルとして、図３および図４に例示した「部屋番号履歴テーブル」と「職責履歴テーブル」とをマスタデータＤＢ２０から取得する。
【００２７】
そして、テーブル作成部１１は、履歴テーブルの中で、履歴情報の無い期間を精査し、履歴の無い期間をＮＵＬＬ値で埋める。例えば、図３の部屋番号履歴テーブルの例では、「２０００−４−１から２０００−４−３１までの期間」および「２００２−６−１から２００３−５−３１までの期間」については、履歴情報が無い期間である。このような場合、テーブル作成部１１は、履歴情報の無い期間に対しては、期間とＩＤ以外の属性情報にＮＵＬＬ値を入れて、図５に例示するように、履歴の無い期間を無くした部屋番号履歴テーブルを作成する。なお、オリジナルのテーブルにデータを追記することは、安全でないため、ビューや一時テーブルの形で記録しておくことが望ましい。
【００２８】
続いて、テーブル作成部１１は、全履歴テーブルで、属性値が変化しない期間を取得し、ログテーブルを構築する。具体的には、テーブル作成部１１は、メインテーブル２１と関連する属性テーブルに格納されている属性情報を精査し、全ての属性情報において変更しない期間を取得する。そして、テーブル作成部１１は、「ＬｏｇＩＤ」を付与して、ＩＤおよび全属性値と属性値が変化しない期間をログテーブルに格納する。
【００２９】
例えば、図４に例示した職責履歴テーブルおよび図５に例示した部屋番号履歴テーブルを精査し、全ての属性情報において変更しない期間を取得してログテーブルを構築した結果、図６に例示するような社員ログテーブルが出来上がる。なお、「ＬｏｇＩＤ」は、一意の値となるように自動的に付与されており、上記の例では、ＩＤ＋ｓｔａｒｔＤａｔａとなっているが、この例に限定されることはない。
【００３０】
そして、テーブル作成部１１は、ログテーブルからログ順序テーブルを構築する。具体的には、テーブル作成部１１は、ログテーブルの中で、同一ＩＤを持つレコード間の順序関係を精査し、順序関係を記録するログ順序テーブルを作成する。このログ順序テーブルには、図７に例示するように、「ＬｏｇＩＤ」と、ＬｏｇＩＤの１つ前のログを示す「ＰｒｅｖＬｏｇＩＤ」、ＬｏｇＩＤの次のログを示す「ＮｅｘｔＬｏｇＩＤ」が格納される。図７に例示する社員ログ順序テーブルは、図６の社員ログテーブルを精査した結果、出来上がったテーブルの例である。
【００３１】
続いて、テーブル作成部１１は、ログテーブルからカレントログテーブルを構築する。具体的には、テーブル作成部１１は、社員ログテーブルの各ＩＤに対して、end  Dateの値が最も新しいレコード１つを抽出して、社員ログテーブルの当該抽出したレコードにおけるstart  Date以外の値を社員カレントログテーブルに格納する。なお、社員ログテーブルにおけるＬｏｇＩＤは、社員カレントログテーブルにおけるカレントＬｏｇＩＤに対応する。また、社員カレントログテーブルのstart  Data値は、社員メインテーブルの同じＩＤのレコードのstart  Data値を入れる。例えば、図２の社員メインテーブルと図６の社員ログテーブルから、図８に例示する社員カレントログテーブルを構築することができる。
【００３２】
その後、テーブル作成部１１は、全ての変換するメインテーブルに対して上記で説明した処理を行って、ログテーブル、ログ順序テーブルおよびカレントログテーブルを作成する処理を繰り返し行い、ログテーブル、ログ順序テーブルおよびカレントログテーブルを変換用ＤＢ１４に格納する。
【００３３】
グラフ作成部１２は、テーブル作成部１１によって作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータ（例えば、ＲＤＦ（Resource  Description  Framework）データ）を作成し、グラフＤＢ１５に格納する。以下に、グラフ作成部１２によって実行させる処理について詳しく説明する。ＲＤＦデータとは、サブジェクト、プロパティ、オブジェクトの３つ組みで表されるラベル付き有向グラフで表せるデータである。図９および図１０は、ＲＤＦデータをグラフ表現した例である。図９の「emp:1234111」とラベルが付けされた楕円ノードがサブジェクト、「鈴木太郎」とラベルが付けされた長方形ノードがオブジェクト、「emp:氏名」とラベル付けされた有向きエッジがプロパティである。ＲＤＦデータのノードには、楕円ノードで表現されるＲＤＦリソースと、長方形ノードで表現されるリテラルの２種類のノードがある。ＲＤＦリソースとプロパティには、ＵＲＩなどユニークに識別できるＩＤをラベルにふられる。ＲＤＦリソースは、「rdf:type」でタイプを割り当てることができる。例えば図１０では、ＲＤＦリソース「emp:1234111」のタイプは「emp:社員」である。
【００３４】
まず、グラフ作成部１２は、カレントログテーブルから、カレントリソースと、カレントリソースに繋がる周辺情報を作成する。ここで、カレントリソースとは、カレントログテーブルに格納されているＩＤに該当する項目が抽出され、ＵＲＩ（Uniform  Resource  Identifier）化してＲＤＦリソース化したものである。カレントリソースの周辺情報は、カレントリソースをサブジェクトないしはオブジェクトにし、カレントログテーブルのＩＤ以外の属性をプロパティに、その属性値をオブジェクトないしはサブジェクトに変換することで作成する。
【００３５】
例えば、図１１に例示する社員カレントログテーブルに格納されているデータからは、ＵＲＩのカレントリソースとして、「http://hogehoge.com/employee#1234111」および「http://hogehoge.com/employee#3399000」が得られる。また、上記したＵＲＩであらわされるカレントリソースは、後述のグラフ表現するとき、図１２に示すような楕円で囲まれたノードで表現される。
【００３６】
具体的には、グラフ作成部１２は、カレントリソースと、カレントリソースに繋がる周辺情報を作成する処理として、カレントログテーブルのレコードごとにＲＤＦデータを変換する。例えば、グラフ作成部１２は、ＩＤをＲＤＦリソースに変換し、これをサブジェクトに、ＩＤ以外のカレントログテーブルの属性をプロパティに、その属性値をオブジェクトに変換する。ここで、カレントリソースのタイプ、カレントリソースをサブジェクトにするか、オブジェクトにするか、各属性に対応するプロパティ名、各属性値をリテラルにするか、ＲＤＦにするか等は、グラフ作成部１２が保持する設定ファイルによって事前に定義されている。図１４は、図１１の社員カレントログテーブルから、カレントリソースとカレントリソースにつながる周辺情報を作成するための設定ファイルの例である。図１４の設定ファイルを用いた、カレントリソースの作成方法を説明する。まず、社員カレントログテーブルの「ＩＤ」の値と「http://hogehoge.com/employee#」を組み合わせて、タイプが「emp:社員」となるＲＤＦリソース化し、これをカレントリソースとする。次に、図１４の設定ファイルを用いた周辺情報の作成方法を説明する。まず、社員カレントログテーブルの「カレントＬｏｇＩＤ」の値を、「http://hogehoge.com/employee#」と組み合わせてＲＤＦリソース化したものをオブジェクトとし、カレントリソースをサブジェクトとし、プロパティ「emp:カレントlog」を経由してつなげる。また、社員カレントログテーブルの「氏名」の値は、値をそのままリテラル化したものをオブジェクトとし、カレントリソースをサブジェクトとして、プロパティ「emp:氏名」を経由してつなげる。同様に、社員カレントログテーブルの他の値もＲＤＦに変換する。
【００３７】
具体例を挙げると、図１３に示すＲＤＦデータは、図８に例示する社員カレントログテーブルのＩＤ「１２３４１１１」のレコードを変換してＲＤＦデータにしたものである。また、図１４に例示するデータは、図１３に例示するＲＤＦデータに変換する際に使用した設定ファイルの例であり、各属性に対応するプロパティ名などが定義されている。また、図１５に例示するデータは、図１３に例示するＲＤＦデータを計算機処理する際のデータフォーマットの例である。
【００３８】
そして、グラフ作成部１２は、ログテーブルから、ログリソースと、ログリソースに繋がる周辺情報を作成する。ここで、ログリソースとは、ログテーブルやログ順序テーブルに格納されている「ＬｏｇＩＤ」に該当する項目、ログ順序テーブルに格納されている「ＮｅｘｔＬｏｇＩＤ」および「ＰｒｅｖＬｏｇＩＤ」に該当する項目が抽出され、ＵＲＩ化してＲＤＦリソース化したものである。ログリソースの周辺情報は、ログリソースをサブジェクトないしはオブジェクトにし、ログテーブルのＬｏｇＩＤ以外の属性をプロパティに、その属性値をオブジェクトないしはサブジェクトに変換することで作成する。
【００３９】
例えば、図１６に例示する社員ログテーブルに格納されているデータからは、ＵＲＩのログソースとして、「http://hogehoge.com/employee#1234111-2000-4-1」、「http://hogehoge.com/employee#1234111-2000-5-1」等が得られる。なお、ＵＲＩの「http://hogehoge.com/employee#」の部分は、グラフ作成部１２が保持する定義ファイル等で設定されているものとする。また、上記したＵＲＩであらわされるログリソースは、後述のグラフ表現するとき、図１７に示すような楕円で囲まれたノードで表現される。
【００４０】
具体的には、グラフ作成部１２は、ログリソースと、ログリソースに繋がる周辺情報を作成する処理として、ログテーブルから、ログリソースの周辺情報を作成する。例えば、グラフ作成部１２は、ＩＤをリソースに変換してサブジェクトにし、ＬｏｇＩＤから作成したログリソースをオブジェクトに、ＩＤとログＩＤ間の関係性を示す名称をプロパティに変換する。
【００４１】
また、グラフ作成部１２は、ログＩＤをＲＤＦリソースに変換し、これをサブジェクトに、ログＩＤとＩＤ以外のログテーブルの属性をプロパティに、その属性値をオブジェクトに変換する。ここで、ログリソースのタイプ、ログリソースをサブジェクトにするか、オブジェクトにするか、各属性に対応するプロパティ名、各属性値をリテラルにするか、ＲＤＦにするか等は、グラフ作成部１２が保持する設定ファイルによって事前に定義されている。図１９は、図１６の社員ログテーブルから、ログリソースとログリソースに繋がる周辺情報を作成するために使用する、設定ファイルの例である。図１９の設定ファイルを用いた、ログリソースの作成方法を説明する。まず、社員ログテーブルの「ＬｏｇＩＤ」の値と「http://hogehoge.com/employee#」を組み合わせて、タイプが「emp:社員ログ」となるＲＤＦリソース化し、これをログリソースとする。次に、図１９の設定ファイルを用いた周辺情報の作成方法を説明する。まず、社員ログテーブルの「ＩＤ」の値を、「http://hogehoge.com/employee#」と組み合わせてＲＤＦリソース化したものをサブジェクトとし、ログリソースをオブジェクトとして、プロパティ「emp: log」を経由してつなげる。また、社員ログテーブルの「氏名」の値は、値をそのままリテラル化したものをオブジェクトとし、ログリソースをサブジェクトとして、プロパティ「emp:氏名」を経由してつなげる。同様に、社員ログテーブルの他の値もＲＤＦに変換する。
【００４２】
具体例を挙げると、図１８に示すＲＤＦデータは、図６に例示する社員ログテーブルのＩＤ「１２３４１１１−２０００−５−１」のレコードを変換してＲＤＦデータにしたものである。また、図１９に例示するデータは、図１８に例示するＲＤＦデータに変換する際に使用した設定ファイルの例であり、各属性に対応するプロパティ名などが定義されている。また、図２０に例示するデータは、図１８に例示するＲＤＦデータを計算機処理する際のデータフォーマットの例である。
【００４３】
続いて、グラフ作成部１２は、ログ順序テーブルから、ログリソース間の順序関係情報を作成する。具体的には、グラフ作成部１２は、ログＩＤをＲＤＦリソース化したものをサブジェクトに、前ログを示すプロパティを用意し、ＰｒｅｖＬｏｇＩＤをＲＤＦリソース化したものをオブジェクトに変換する。なお、プロパティ名等は、設定ファイルによって事前に定義されている。図２２は、図７のログ順序テーブルから、ログリソース間の順序関係情報を作成するために使用する、設定ファイルの例である。図２２の設定ファイルを用いたログリソース間の順序関係情報の作成方法を説明する。まず、社員ログ順序テーブルの「ＬｏｇＩＤ」の値を、「http://hogehoge.com/employee#」と組み合わせてＲＤＦリソース化したものを、サブジェクトとする。次に、プロパティを「emp:prevLog」として、社員ログ順序テーブルの「ＰｒｅｖＬｏｇＩＤ」の値を、「http://hogehoge.com/employee#」と組み合わせてＲＤＦリソース化したものを、オブジェクトとする。
【００４４】
具体例を挙げると、図２１に示すＲＤＦデータは、図７に例示する社員ログ順序テーブルのレコードを変換してＲＤＦデータにしたものである。また、図２２に例示するデータは、図２１に例示するＲＤＦデータに変換する際に使用した設定ファイルの例であり、各属性に対応するプロパティ名などが定義されている。また、図２３に例示するデータは、図２１に例示するＲＤＦデータを計算機処理する際のデータフォーマットの例である。
【００４５】
上記の処理によってグラフ作成部１２は、図２４に例示するように、マスタデータＤＢ２０に記憶されたマスタデータからＲＤＦデータを作成する。図２４のＲＤＦデータの例は、図２のマスタデータから作成されたグラフデータである。このように、データ検索装置１０は、マスタデータのスキーマ構造を知らなくても、属性情報と属性値を取得できるように、マスタデータに記録された実体を表す実体リソースに対して、全ての実体リソースの属性情報と属性値を紐づくようにスキーマ変更を行う。
【００４６】
また、データ検索装置１０は、事前に複数の履歴情報を持つテーブルの履歴情報を精査し、全ての属性情報に対して変更が無い期間を抽出したのち、属性情報の変更が無い期間に対して履歴リソースを割り当て、実体リソースと履歴リソースの関係を定義し、属性情報と上記の属性情報の変更が無い期間の属性値のペアを、上記の履歴リソースと直接紐づくようにスキーマを変換する。また、同じ実体リソースに関係する履歴リソースを、履歴期間順にソートし、履歴の前後関係を明記するスキーマに変換する。
【００４７】
図１の説明に戻って、検索部１３は、グラフ作成部１２によって作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う。具体的には、検索部１３は、アプリケーション３０からクエリを受け付けると、受け付けたクエリを用いて、グラフＤＢ１５に対してデータ検索を行い、検索結果をアプリケーション３０に返信する。
【００４８】
ここで、図２５および図２６の例を用いて、検索処理について具体的に説明する。図２５に示すように、検索部１３は、検索クエリとして、氏名「鈴木太郎」の２００２年８月１日時点の全属性情報を検索するクエリを受け付け、該クエリを用いて、グラフＤＢ１５に対してデータ検索を行い、鈴木太郎に関する全属性情報を取得する。例えば、図２５の例では、鈴木太郎の属性情報として、所属「１１１」、職責「研究員」、有効期限「２００２−６−１」〜「２００３−３−３１」、１つ前のログのログＩＤ「１２３４１１１−２０００−５−１」を取得する。
【００４９】
このように、ある時点の全属性情報を検索するクエリが容易に記述できる。つまり、オリジナルのマスタデータのスキーマ構造では、複雑なクエリになってしまうところが、簡単なクエリの記述で、どのような属性情報があるか分からなくとも、全ての属性情報を取得できる。
【００５０】
また、図２６に示すように、検索部１３は、検索クエリとして、氏名「鈴木太郎」の属性情報の変更履歴を検索するクエリを受け付け、該クエリを用いて、グラフＤＢ１５に対してデータ検索を行い、鈴木太郎に関する属性情報の変更履歴を取得し、検索結果としてアプリケーション３０に返信する。このように、全属性情報の変更履歴を、簡易なクエリで辿ることができる。つまり、オリジナルのマスタデータのスキーマ構造では、複雑なクエリになってしまうところが、簡単なクエリの記述で、どのような属性情報があるか分からなくとも、全属性情報の変更履歴を取得できる。
【００５１】
このように、データ検索装置１０は、ある時点における全属性情報の検索、及び全属性情報個々の変更履歴の検索を、情報のスキーマ構造を知らず、簡単なクエリにより実現可能とする。
【００５２】
また、データ検索装置１０は、マスタデータＤＢ２０に格納されたマスタデータをＲＤＦデータに変換しているので、外部のＲＤＦデータとの相互接続が容易となる。つまり、ＲＤＦデータは、全てのリソースにユニークなＩＤとなるＵＲＩが割り当てられるため、異種データ間での相互接続が容易となる。また、異種データを相互接続するため、近年ＲＤＦ形式のデータが多数公開されている。異なるＵＲＩリソースが同一実体であることも、図２７に示すように、「ｏｗｌ：ｓａｍｅＡｓ」プロパティを用いることで表現できる。また、図２７に示すように、ＲＤＦ化することで、マスタデータと外部データとの接続ができ、マスタデータには存在しない情報を辿ることができるようになる。
【００５３】
［データ検索装置による処理］
次に、図２８および図２９を用いて、第一の実施形態に係るデータ検索装置１０による処理を説明する。図２８および図２９は、第一の実施形態に係るデータ検索装置の処理動作を示すフローチャートである。なお、図２８は、テーブル作成部１１によって実行される処理を示すフローチャートであり、図２９は、グラフ作成部１２によって実行される処理を示すフローチャートである。
【００５４】
まず、図２８を用いて、テーブル作成部１１によって実行される処理について説明する。図２８に示すように、テーブル作成部１１は、変換するメインテーブルをマスタデータＤＢ２１から取得し（ステップＳ１０１）、メインテーブルに紐付く全ての履歴テーブル２２を取得する（ステップＳ１０２）。例えば、テーブル作成部１１は、図２に例示した「社員メインテーブル」が変換するメインテーブルとして指定された場合には、該メインテーブルに紐付く全履歴テーブルとして、図３および図４に例示した「部屋番号履歴テーブル」と「職責履歴テーブル」とをマスタデータＤＢ２０から取得する。
【００５５】
そして、テーブル作成部１１は、履歴テーブル２２の中で、履歴情報の無い期間を精査し、履歴の無い期間をＮＵＬＬ値で埋める（ステップＳ１０３）。例えば、図３の部屋番号履歴テーブルの例では、「２０００−４−１から２０００−４−３１までの期間」および「２００２−６−１から２００３−５−３１までの期間」については、履歴情報が無い期間である。このような場合、テーブル作成部１１は、履歴情報の無い期間に対しては、期間とＩＤ以外の属性情報にＮＵＬＬ値を入れて、図５に例示するように、履歴の無い期間を無くした部屋番号履歴テーブルを作成する。
【００５６】
続いて、テーブル作成部１１は、全履歴テーブルで、属性値が変化しない期間を取得し、ログテーブルを構築する（ステップＳ１０４）。具体的には、テーブル作成部１１は、メインテーブル２１と関連する属性テーブルに格納されている属性情報を精査し、全ての属性情報において変更しない期間を取得する。そして、テーブル作成部１１は、「ＬｏｇＩＤ」を付与して、ＩＤおよび全属性値と属性値が変化しない期間をログテーブルに格納する。
【００５７】
そして、テーブル作成部１１は、ログテーブルからログ順序テーブルを構築する（ステップＳ１０５）。具体的には、テーブル作成部１１は、ログテーブルの中で、同一ＩＤを持つレコード間の順序関係を精査し、順序関係を記録するログ順序テーブルを作成する。このログ順序テーブルには、図７に例示するように、「ＬｏｇＩＤ」と、ＬｏｇＩＤの１つ前のログを示す「ＰｒｅｖＬｏｇＩＤ」、ＬｏｇＩＤの次のログを示す「ＮｅｘｔＬｏｇＩＤ」が格納される。
【００５８】
続いて、テーブル作成部１１は、ログテーブルからカレントログテーブルを構築する（ステップＳ１０６）。具体的には、テーブル作成部１１は、社員ログテーブルの各ＩＤに対して、end  Dateの値が最も新しいレコード１つを抽出して、社員ログテーブルの当該抽出したレコードにおけるstart  Date以外の値を社員カレントログテーブルに格納する。また、社員カレントログテーブルのstart  Data値は、社員メインテーブルの同じＩＤのレコードのstart  Data値を入れる。
【００５９】
その後、テーブル作成部１１は、全ての変換するメインテーブル２１を処理したか判定する（ステップＳ１０７）。この結果、テーブル作成部１１は、全ての変換するメインテーブル２１を処理していない場合には（ステップＳ１０７否定）、ステップＳ１０１の処理に戻る。一方、テーブル作成部１１は、全ての変換するメインテーブル２１を処理した場合には（ステップＳ１０７肯定）、テーブル作成部１１の処理を終了する。
【００６０】
次に、図２９を用いて、グラフ作成部１２によって実行される処理について説明する。図２９に示すように、グラフ作成部１２は、カレントログテーブルから、カレントリソースに繋がる周辺情報を作成する（ステップＳ２０１）。具体的には、グラフ作成部１２は、カレントリソースに繋がる周辺情報を作成する処理として、カレントログテーブルのレコードごとにＲＤＦデータを変換する。例えば、グラフ作成部１２は、ＩＤをＲＤＦリソースに変換し、これをサブジェクトに、ＩＤ以外のカレントログテーブルの属性をプロパティに、その属性値をオブジェクトに変換する。
【００６１】
そして、グラフ作成部１２は、ログテーブルから、ログリソースと、ログリソースに繋がる周辺情報を作成する（ステップＳ２０２）。具体的には、グラフ作成部１２は、ログリソースと、ログリソースに繋がる周辺情報を作成する処理として、ログテーブルから、ログリソースの周辺情報を作成する。例えば、グラフ作成部１２は、ＩＤをリソースに変換してサブジェクトにし、ＬｏｇＩＤから作成したログリソースをオブジェクトに、ＩＤとログＩＤ間の関係性を示す名称をプロパティに変換する。また、グラフ作成部１２は、ログＩＤをＲＤＦリソースに変換し、これをサブジェクトに、ログＩＤとＩＤ以外のログテーブルの属性をプロパティに、その属性値をオブジェクトに変換する。
【００６２】
続いて、グラフ作成部１２は、ログ順序テーブルから、ログリソース間の順序関係情報を作成し（ステップＳ２０３）、グラフ作成部１２の処理を終了する。具体的には、グラフ作成部１２は、ログＩＤをＲＤＦリソース化したものをサブジェクトに、前ログを示すプロパティを用意し、ＰｒｅｖＬｏｇＩＤをＲＤＦリソース化したものをオブジェクトに変換する。
【００６３】
[第一の実施形態の効果]
上述してきたように、データ検索装置１０は、メインテーブル２１のデータに関する属性情報の変更履歴と変更された各属性情報が有効であった期間である有効期間とを対応付けて記憶する複数の履歴テーブル２２から、属性情報および変更履歴を取得し、有効期間が共通する属性情報同士を対応付けて記憶するテーブルを作成する。そして、データ検索装置１０は、作成されたテーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成する。そして、データ検索装置１０は、作成されたグラフデータに対して、検索クエリを用いてデータ検索を行う。これにより、変更履歴を個別管理する各属性情報から構成される情報の検索を容易にすることが可能である。このように、マスタデータとその属性値の変更履歴に関する情報をＲＤＦデータの形式に変換してＲＤＦグラフとしてモデル化して格納する仕組み、及びＲＤＦグラフにモデル化されたマスタデータの変更履歴を検索する仕組みを提供することで、マスタデータの履歴情報の横断検索を容易化することが可能である。例えば、ある時点における全属性情報の検索、及び全属性情報個々の変更履歴の検索を、情報のスキーマ構造を知らず、簡単なクエリにより実現可能とする。
【００６４】
また、第一の実施形態によれば、データ検索装置１０は、履歴テーブル２２から、属性情報および変更履歴を取得し、全ての属性情報について、有効期間が共通する属性情報同士を対応付け、有効期間が共通する属性情報の組に対して一意に識別できるログＩＤを付与したログテーブルを作成する。このようなログテーブルを用いて、全ての属性値の変更履歴に関する情報をＲＤＦグラフデータとして作成することが可能である。
【００６５】
また、第一の実施形態によれば、データ検索装置１０は、履歴テーブル２２から、属性情報および変更履歴を取得し、有効期間が共通する属性情報同士を対応付けて記憶するログテーブルを作成するとともに、該属性情報の組同士の順序関係を記憶するログ順序テーブルを作成する。このため、ログリソース間の順序関係をＲＤＦグラフデータとして作成することが可能である。
【００６６】
また、第一の実施形態によれば、データ検索装置１０は、履歴テーブル２２から、属性情報および変更履歴を取得し、有効期間が共通する属性情報同士を対応付けて記憶するログテーブルを作成するとともに、有効期間のうち最も新しい期間の属性情報を記憶するカレントログテーブルを作成する。このため、カレントログテーブルを用いて、最も新しい属性値の変更履歴に関する情報をＲＤＦグラフデータとして作成することが可能である。
【００６７】
また、第一の実施形態によれば、データ検索装置１０は、作成されたログテーブル等を記憶する変換用ＤＢ１４をさらに備える。そして、データ検索装置１０は、変換用ＤＢ１４によって記憶されたテーブルを読み出し、該テーブルを用いて、所定の期間における各属性情報同士の関係を表現するグラフデータを作成する。このため、データ検索装置１０は、作成したテーブルを適切に記憶して、グラフデータを作成することが可能である。
【００６８】
［変換用ＤＢ］
上記第一の実施形態では、変換用ＤＢ１４は、テーブル作成部１１によって作成されるログテーブル、ログ順序テーブルおよびカレントログテーブルを記憶し、記憶したログテーブル、ログ順序テーブルおよびカレントログテーブルが、グラフ作成部１２によって読み出される場合を説明したが、これに限定されるものでなく、変換用ＤＢ１４がなくともよい。この場合には、テーブル作成部１１は、作成したログテーブル、ログ順序テーブルおよびカレントログテーブルを、グラフ作成部１２に通知する。
【００６９】
［システム構成］
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
【００７０】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【００７１】
［プログラム］
また、上記実施形態において説明したデータ検索装置１０が実行する処理をコンピュータが実行可能な言語で記述したプログラムを作成することもできる。例えば、第一の実施形態に係るデータ検索装置１０が実行する処理をコンピュータが実行可能な言語で記述したデータ検索プログラムを作成することもできる。この場合、コンピュータがデータ検索プログラムを実行することにより、上記実施形態と同様の効果を得ることができる。さらに、かかるデータ検索プログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されデータ検索プログラムをコンピュータに読み込ませて実行することにより上記第一の実施形態と同様の処理を実現してもよい。以下に、図１に示したデータ検索装置１０と同様の機能を実現するデータ検索プログラムを実行するコンピュータの一例を説明する。
【００７２】
図３０は、データ検索プログラムを実行するコンピュータ１０００を示す図である。図３０に例示するように、コンピュータ１０００は、例えば、メモリ１０１０と、ＣＰＵ１０２０と、ハードディスクドライブインタフェース１０３０と、ディスクドライブインタフェース１０４０と、シリアルポートインタフェース１０５０と、ビデオアダプタ１０６０と、ネットワークインタフェース１０７０とを有し、これらの各部はバス１０８０によって接続される。
【００７３】
メモリ１０１０は、図３０に例示するように、ＲＯＭ（Read  Only  Memory）１０１１及びＲＡＭ１０１２を含む。ＲＯＭ１０１１は、例えば、ＢＩＯＳ（Basic  Input  Output  System）等のブートプログラムを記憶する。ハードディスクドライブインタフェース１０３０は、図３０に例示するように、ハードディスクドライブ１０３１に接続される。ディスクドライブインタフェース１０４０は、図３０に例示するように、ディスクドライブ１０４１に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ１０４１に挿入される。シリアルポートインタフェース１０５０は、図３０に例示するように、例えばマウス１０５１、キーボード１０５２に接続される。ビデオアダプタ１０６０は、図３０に例示するように、例えばディスプレイ１０６１に接続される。
【００７４】
ここで、図３０に例示するように、ハードディスクドライブ１０３１は、例えば、ＯＳ１０９１、アプリケーションプログラム１０９２、プログラムモジュール１０９３、プログラムデータ１０９４を記憶する。すなわち、上記のデータ検索プログラムは、コンピュータ１０００によって実行される指令が記述されたプログラムモジュールとして、例えばハードディスクドライブ１０３１に記憶される。
【００７５】
また、上記実施形態で説明した各種データは、プログラムデータとして、例えばメモリ１０１０やハードディスクドライブ１０３１に記憶される。そして、ＣＰＵ１０２０が、メモリ１０１０やハードディスクドライブ１０３１に記憶されたプログラムモジュール１０９３やプログラムデータ１０９４を必要に応じてＲＡＭ１０１２に読み出し、テーブル作成手順、グラフ作成手順、検索手順を実行する。
【００７６】
なお、データ検索プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ハードディスクドライブ１０３１に記憶される場合に限られず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ等を介してＣＰＵ１０２０によって読み出されてもよい。あるいは、データ検索プログラムに係るプログラムモジュール１０９３やプログラムデータ１０９４は、ネットワーク（ＬＡＮ（Local  Area  Network）、ＷＡＮ（Wide  Area  Network）等）を介して接続された他のコンピュータに記憶され、ネットワークインタフェース１０７０を介してＣＰＵ１０２０によって読み出されてもよい。
【符号の説明】
【００７７】
１０  データ検索装置
１１  テーブル作成部
１２  グラフ作成部
１３  検索部
１４  変換用ＤＢ
１５  グラフＤＢ
２０  マスタデータＤＢ
２１  メインテーブル
２２  履歴テーブル
３０  アプリケーション
１００  データ検索システム
【図１】
2014032522.tif 000003
【図２】
2014032522.tif 000004
【図３】
2014032522.tif 000005
【図４】
2014032522.tif 000006
【図５】
2014032522.tif 000007
【図６】
2014032522.tif 000008
【図７】
2014032522.tif 000009
【図８】
2014032522.tif 000010
【図９】
2014032522.tif 000011
【図１０】
2014032522.tif 000012
【図１１】
2014032522.tif 000013
【図１２】
2014032522.tif 000014
【図１３】
2014032522.tif 000015
【図１４】
2014032522.tif 000016
【図１５】
2014032522.tif 000017
【図１６】
2014032522.tif 000018
【図１７】
2014032522.tif 000019
【図１８】
2014032522.tif 000020
【図１９】
2014032522.tif 000021
【図２０】
2014032522.tif 000022
【図２１】
2014032522.tif 000023
【図２２】
2014032522.tif 000024
【図２３】
2014032522.tif 000025
【図２４】
2014032522.tif 000026
【図２５】
2014032522.tif 000027
【図２６】
2014032522.tif 000028
【図２７】
2014032522.tif 000029
【図２８】
2014032522.tif 000030
【図２９】
2014032522.tif 000031
【図３０】
2014032522.tif 000032