(57)【要約】【課題】様々なＷｅｂアプリケーションをＷｅｂサービスとして利用することを可能にするシステムを提供する。【解決手段】半構造化データ生成装置は、要求に応じて処理を実行し、その処理の結果として半構造化データを生成する。半構造化データ構造化装置１１は、コンフィグファイル読み込み部２２にて、半構造化データから構造化データを構成する要素を抽出するための抽出ルールと、要素を構造化して構造化データを生成するための構造化ルールとを読み込む。続いて、要素抽出部２３にて、半構造化データ生成装置によって生成された半構造化データから抽出ルールに従って要素を抽出する。さらに、要素構造化部２４にて、その要素を構造化ルールに従って構造化することで構造化データを生成する。【選択図】図２
2008003848.tif 000002
【特許請求の範囲】
【請求項１】
構造化された部分を含む半構造化データから構造化データを生成する半構造化データ構造化システムであって、
要求に応じて処理を実行し、該処理の結果として前記半構造化データを生成する半構造化データ生成装置と、
半構造化データから構造化データを構成する要素を抽出するための抽出ルールと、前記要素を構造化して構造化データを生成するための構造化ルールとを読み込み、前記半構造化データ生成装置によって生成された前記半構造化データから前記抽出ルールに従って要素を抽出し、該要素を前記構造化ルールに従って構造化することで構造化データを生成する半構造化データ構造化装置と、を有する半構造化データ構造化システム。
【請求項２】
前記半構造化データ構造化装置は、
構造化データを構成する要素を半構造化データから抽出するための抽出ルールと、前記要素を構造化して構造化データを生成するための構造化ルールとを読み込むコンフィグファイル読み込み部と、
入れ子構造に基づいて前記半構造化データを変換することによって木構造データを生成する半構造化データ木構造化部と、
前記半構造化データ木構造化部で生成された木構造データから前記抽出ルールを用いて前記要素を抽出する要素抽出部と、
前記要素抽出部で抽出された前記要素を、前記構造化ルールを用いて構造化する要素構造化部と、を有する、
請求項１に記載の半構造化データ構造化システム。
【請求項３】
前記抽出ルールは、前記木構造データの木構造を前記要素の位置まで辿るための探索ルートが列記されたデータであり、
前記要素抽出部は、前記抽出ルールに列記された前記探索ルートに従って前記木構造データを辿ることによって前記要素を抽出する、
請求項２に記載の半構造化データ構造化システム。
【請求項４】
構造化された部分を含む半構造化データから構造化データを生成する半構造化データ構造化装置であって、
半構造化データから構造化データを構成する要素を抽出するための抽出ルールと、前記要素を構造化して構造化データを生成するための構造化ルールとを読み込むコンフィグファイル読み込む読み込み部と、
前記半構造化データから前記抽出ルールに従って要素を抽出する要素抽出部と、
前記要素抽出部で抽出された前記要素を前記構造化ルールに従って構造化することで構造化データを生成する要素構造化部と、を有する半構造化データ構造化装置。
【請求項５】
入れ子構造に基づいて前記半構造化データを変換することによって木構造データを生成する半構造化データ木構造化部を更に有し、
前記要素抽出部は、前記半構造化データ木構造化部で生成された前記木構造データから前記要素を抽出する、請求項４に記載の半構造化データ構造化装置。
【請求項６】
前記抽出ルールは、前記木構造データの木構造を前記要素の位置まで辿るための探索ルートが列記されたデータであり、
前記要素抽出部は、前記抽出ルールに列記された前記探索ルートに従って前記木構造データを辿ることによって前記要素を抽出する、
請求項５に記載の構造化データ構造化装置。
【請求項７】
構造化された部分を含む半構造化データから構造化データを生成するための半構造化データ構造化方法であって、
半構造化データから構造化データを構成する要素を抽出するための抽出ルールと、前記要素を構造化して構造化データを生成するための構造化ルールとを読み込み、
前記半構造化データから前記抽出ルールに従って要素を抽出し、
抽出された前記要素を前記構造化ルールに従って構造化することで構造化データを生成する、半構造化データ構造化方法。
【請求項８】
入れ子構造に基づいて前記半構造化データを変換することによって木構造データを生成し、前記木構造データから前記要素を抽出する、請求項７に記載の半構造化データ構造化方法。
【請求項９】
前記抽出ルールは、前記木構造データの木構造を前記要素の位置まで辿るための探索ルートが列記されたデータであり、
前記抽出ルールに列記された前記探索ルートに従って前記木構造データを辿ることによって前記要素を抽出する、
請求項８に記載の構造化データ構造化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＷｅｂアプリケーションをＷｅｂサービスとして利用するシステムに関し、特に、Ｗｅｂアプリケーションの生成する半構造化データからＷｅｂサービスの戻り値に当たる構造化データを抽出する技術に関する。
【背景技術】
【０００２】
近年、Ｗｅｂサービスの需要が高まっている。Ｗｅｂサービスとは、Ｗｅｂ上での様々なサービスを実現するために、部品として用いられるサービスコンポーネントのことである。Ｗｅｂサービスの一例として、インタフェースがＷＳＤＬ（Ｗｅｂ  Ｓｅｒｖｉｃｅｓ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｌａｎｇｕａｇｅ）で記述され、コンポーネント間の通信にＳＯＡＰ（Ｓｉｍｐｌｅ  Ｏｂｊｅｃｔ  Ａｃｃｅｓｓ  Ｐｒｏｔｏｃｏｌ）が用いられるものがある。
【０００３】
その主な応用対象はＢ２Ｂの分野である。ビジネスの世界でＷｅｂ環境が充実してきたことに伴い、これまで理論的なものとして考えられてきたものが、実際的なものとなってきている。また、ユビキタスの分野においてもＷｅｂサービスを用いることが検討されている。このため、Ｂ２ＣやＣ２Ｃの分野でもＷｅｂサービスが注目されている。
【０００４】
このようにＷｅｂサービスの応用範囲が広がっている状況においては、サービスを充実させるためにＷｅｂサービス数を増やすことが要求される。これに対して、膨大な数の既存のＷｅｂアプリケーションをＷｅｂサービスとして利用するという発想がある。Ｗｅｂアプリケーションは既に膨大な数が存在するので、これをＷｅｂサービスとして利用することには大きなメリットがある。
【０００５】
しかし、Ｗｅｂサービスはインタフェースが統一されているのに対して、ＷｅｂアプリケーションはＷｅｂサービス程にはインタフェースが統一されていない。Ｗｅｂサービスの結果が構造化データであるのに対して、Ｗｅｂアプリケーションの結果が半構造化データである。構造化データは、表のように規則的に整理された構造を有するデータである。これに対して、構造が整理されていないデータが非構造化データである。半構造化データは、構造化データと非構造化データの中間的なデータであり、多くの場合、構造化された部分と構造化されていない部分を含んでいる。
【０００６】
そこで、ＷｅｂアプリケーションをＷｅｂサービスとして利用するために、ラッパを用いて半構造化データから構造化データを抽出することが行われている。ＷｅｂアプリケーションをＷｅｂサービスとして利用するためのラッパは、今後、重要な役割を果たすと考えられている。
【０００７】
しかし、上述したように膨大な数のＷｅｂアプリケーションが存在するので、それらをＷｅｂサービスとして利用するためのラッパを人手によって個々に作るには膨大なコストと膨大な時間が必要となる。そのため、ラッパを自動生成することが検討されている（非特許文献１参照）。非特許文献１には、Ｗｅｂアプリケーションのプログラムのソースコードからラッパを生成する技術が開示されている。
【非特許文献１】Ｈ．Ｐ．Ｈｕｙ，  Ｔ．Ｋａｗａｍｕｒａ，  Ｔ．Ｈａｓｅｇａｗａ：Ｗｅｂ  Ｓｅｒｖｉｃｅ  Ｇａｔｅｗａｙ−ａ  ｓｔｅｐ  ｆｗｏｒｗａｒｄ  ｔｏ  ｅ−Ｂｕｓｉｎｅｓｓ，  Ｐｒｏｃｅｅｄｉｎｇ  ｏｆ  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｗｅｂ  Ｓｅｒｖｉｃｅｓ（ＩＣＷＳ  ２００４），ＩＥＥＥ，ｐｐ．６４８−６５５，２００４
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかし、従来技術では、Ｗｅｂアプリケーションに仕様の変更があるとラッパの仕様も変更しなければならず、膨大な数のラッパの個々の仕様を適正に管理することは現実的には可能なことではない。
【０００９】
また、非特許文献１に開示された従来技術では、ラッパを生成するために既存のＷｅｂアプリケーションのソースコードが必要であった。ソースコードを入手できたＷｅｂアプリケーションのラッパだけしか生成できず、膨大な数のＷｅｂアプリケーションをＷｅｂサービスとして利用するのに適しているとは言えないものであった。
【００１０】
本発明の目的は、様々なＷｅｂアプリケーションをＷｅｂサービスとして利用することを可能にするシステムを提供することである。
【課題を解決するための手段】
【００１１】
上記目的を達成するために、本発明の構造化データ抽出システムは、構造化された部分を含む半構造化データから構造化データを生成する半構造化データ構造化システムであって、
要求に応じて処理を実行し、該処理の結果として前記半構造化データを生成する半構造化データ生成装置と、
半構造化データから構造化データを構成する要素を抽出するための抽出ルールと、前記要素を構造化して構造化データを生成するための構造化ルールとを読み込み、前記半構造化データ生成装置によって生成された前記半構造化データから前記抽出ルールに従って要素を抽出し、該要素を前記構造化ルールに従って構造化することで構造化データを生成する半構造化データ構造化装置と、を有している。
【００１２】
本発明によれば、半構造化データから抽出ルールを用いて要素を抽出し、抽出した要素を構造化ルールで構造化して構造化データを生成するので、個々のＷｅｂアプリケーション毎のラッパを予め用意しなくても、また、Ｗｅｂアプリケーションのソースコードを用いなくても、抽出ルールと構造化ルールを用意することで様々な半構造化データから構造化データを生成することができる。そのため様々なＷｅｂアプリケーションを容易にＷｅｂサービスとして利用することが可能となる。
【００１３】
また、前記半構造化データ構造化装置は、
構造化データを構成する要素を半構造化データから抽出するための抽出ルールと、前記要素を構造化して構造化データを生成するための構造化ルールとを読み込むコンフィグファイル読み込み部と、
入れ子構造に基づいて前記半構造化データを変換することによって木構造データを生成する半構造化データ木構造化部と、
前記半構造化データ木構造化部で生成された木構造データから前記抽出ルールを用いて前記要素を抽出する要素抽出部と、
前記要素抽出部で抽出された前記要素を、前記構造化ルールを用いて構造化する要素構造化部と、を有することとしてもよい。
【００１４】
これによれば、半構造化データを木構造データに変換し、その木構造データから一定のルールで要素を抽出するので、構造化データの要素となる部分の、木構造における位置が共通する半構造化データから容易に要素を抽出することができる。
【００１５】
また、前記抽出ルールは、前記木構造データの木構造を前記要素の位置まで辿るための探索ルートが列記されたデータであり、
前記要素抽出部は、前記抽出ルールに列記された前記探索ルートに従って前記木構造データを辿ることによって前記要素を抽出することとしてもよい。
【発明の効果】
【００１６】
本発明によれば、半構造化データから抽出ルールを用いて要素を抽出し、抽出した要素を構造化ルールで構造化して構造化データを生成するので、個々のＷｅｂアプリケーション毎のラッパを予め用意しなくても、また、Ｗｅｂアプリケーションのソースコードを用いなくても、抽出ルールと構造化ルールを用意することで様々な半構造化データから構造化データを生成することができる。そのため様々なＷｅｂアプリケーションを容易にＷｅｂサービスとして利用することが可能となる。
【発明を実施するための最良の形態】
【００１７】
本発明を実施するための形態について図面を参照して詳細に説明する。
【００１８】
図１は、本実施形態の半構造化データ構造化システムの構成を示すブロック図である。図１を参照すると、半構造化データ構造化システム１０は半構造化データ生成装置１１および半構造化データ構造化装置１２を有している。
【００１９】
半構造化データ生成装置１２は、例えばインターネットなどのネットワーク上に存在しているＷｅｂアプリケーションであり、Ｗｅｂアプリケーションの実行結果として半構造化データを生成する。
【００２０】
半構造化データ構造化装置１１は、半構造化データ生成装置１２であるＷｅｂアプリケーションの実行結果である半構造化データから、そのＷｅｂアプリケーションがＷｅｂサービスとして利用された場合にＷｅｂサービスの実行結果として提供する構造化データを生成する。
【００２１】
例えば、半構造化データ生成装置１２がホテル検索Ｗｅｂアプリケーションであれば、半構造化データであるＨＴＭＬ（Ｈｙｐｅｒ  Ｔｅｘｔ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）データにはホテル情報部分の他に広告部分が含まれていることがある。そのＷｅｂアプリケーションをＷｅｂサービスとして利用する場合、Ｗｅｂサービスの実行結果として提供すべきなのはホテル情報部分である。
【００２２】
ＨＴＭＬデータは、要素が入れ子構造になっているため、入れ子関係（親子関係）をツリー状につなげることによって木構造で表すことができる。ホテル情報部分のようにＷｅｂサービスの結果として利用できる部分は、半構造化データにおいて特定の位置に配置されることが多く、すなわち木構造において特定の位置に配置されていることが多い。
【００２３】
図２は、半構造化データ構造化装置１１の構成を示すブロック図である。図２を参照すると、半構造化データ構造化装置１１は、半構造化データ木構造化部２１、コンフィグファイル読み込み部２２、要素抽出部２３、および要素構造化部２４を有している。
【００２４】
半構造化データ木構造化部２１は半構造化データ生成装置１２から半構造化データを受け取り、受け取った半構造化データを解析して木構造データに変換する。これは、例えば、半構造化データであるＨＴＭＬデータを解析し、ＨＴＭＬデータの入れ子構造において、入れ子が始まっている部分を見つけると木に枝を付加し、テキスト部分を見つけると枝の先に葉を付加することで木構造データを生成する。
【００２５】
図３は、半構造化データの一例を示す図である。図４は、図３に示した半構造化データを木構造化した木構造データの一例を示す図である。
【００２６】
図３に示した半構造化データを先頭から解析して行くと、まず入れ子の始まり部分が３つ連続している。そこで、半構造化データ木構造化部２１は、図４に示すように、木の深度０，１，２に枝を１つずつ付加する。
【００２７】
図３の続きを見ると、半構造化データに入れ子の終わりが１つあり、さらに入れ子の始まりが１つある。そこで、半構造化データ木構造化部２１は、図４に示すように、深度２に枝を１つ付加する。
【００２８】
さらに図３の続きを見ると、半構造化データには「旅館Ａ」というテキストがある。そのため、図４に示すように、半構造化データ木構造化部２１は、そのテキスト部分を葉として、最後に付加した枝に付加する。このようにして、半構造化データ木構造化部２１は、半構造化データを木構造データに変換していく。
【００２９】
コンフィグファイル読み込み部２２は、予め用意されているコンフィグファイルを読み込み、そのコンフィグファイルから抽出ルールを取り出して要素抽出部２３に渡し、またコンフィグファイルから構造化ルールを取り出して要素構造化部２４に渡す。コンフィグファイルは、半構造化データを構造化するのに用いるルールを記述したファイルであり、抽出ルールと構造化ルールを含んでいる。抽出ルールは、木構造データから、構造化データとなる要素を抽出するのに用いるルールである。構造化ルールは、抽出された要素を構造化して構造化データを生成するのに用いるルールである。
【００３０】
図５は、コンフィグファイルの一例を示す図である。図５の例では、コンフィグファイルにおいて、「←」の右側に抽出ルールが記述されており、「←」の左側に構造化ルールが記述されている。抽出ルールは、抽出対象となる要素まで木構造データの木構造を辿るための探索ルートによって示されている。構造化ルールには、各抽出ルールによって抽出された要素の属性を示す情報が含まれている。
【００３１】
要素抽出部２３は、半構造化データ木構造化部２１から木構造データを受け取り、コンフィグファイル読み込み部２２から抽出ルールを受け取る。そして、要素抽出部２３は、抽出ルールに従って木構造データを探索して要素を抽出し、要素構造化部２４に送る。
【００３２】
図５に示した抽出ルールで、図４に示した木構造データを探索する例について説明する。例えば、要素抽出部２３は、最初の抽出ルール｛（１），（１），（２）｝で旅館名の「旅館Ａ」を抽出する。次の抽出ルール｛（１），（１），（３）｝を用いて、要素抽出部２３は、住所の「大分県Ａ郡」を抽出する。
【００３３】
また、本実施形態では、（１）〜（４）のように探索する枝の範囲を記述することで、複数の要素を抽出することができる。例えば、抽出ルール｛（１），（１），（５），（１），（１）〜（４），（１）｝を用いて、要素抽出部２３は「プラン１」〜「プラン４」の４つのプラン名を抽出する。
【００３４】
図６は、木構造データから抽出された要素の一例を示す図である。図６には、図５に示した抽出ルールで抽出される要素の例が示されている。この例では、「旅館Ａ」，「旅館Ｂ」，「旅館Ｃ」，「旅館Ｄ」という要素と、それぞれに対応する「大分県Ａ郡」，「熊本県Ｂ市」，「熊本県Ｃ郡」，「宮崎県Ｄ郡」という要素が抽出されている。このようにして抽出された「旅館Ａ」・・・、「大分県Ａ郡」、・・・、「プラン１」〜「プラン４」、・・・といった要素は要素構造化部２４に通知される。
【００３５】
要素構造化部２４は、要素抽出部２３から要素を受け取り、コンフィグファイル読み込み部２２から構造化ルールを受け取る。そして、要素構造化２４は、構造化ルールに従って要素を構造化することで構造化データを生成する。
【００３６】
図７は、構造化データの一例を示す図である。図７を参照すると、「旅館名」として「旅館Ａ」，「旅館Ｂ」，「旅館Ｃ」，「旅館Ｄ」が示され、それらに対応する「住所」として「大分県Ａ郡」，「熊本県Ｂ市」，「熊本県Ｃ郡」，「宮崎県Ｄ郡」が示されている。このようにして構造化データが生成される。
【００３７】
図８は、半構造化データ構造化装置１１の動作を示すフローチャートである。図８を参照すると、まず、半構造化データ構造化装置１１は、半構造化データ木構造化部２１によって半構造化データを木構造データに変換する（ステップ１０１）。続いて、半構造化データ構造化装置１１は、要素抽出部２３によって木構造データから要素を抽出する（ステップ１０２）。続いて、半構造化データ構造化装置１１は、要素構造化部２４によって要素を構造化して構造化データを生成する（ステップ１０３）。
【００３８】
以上、説明したように、本実施形態によれば、半構造化データ構造化装置１１は、半構造化データ生成装置１２で生成された半構造化データから抽出ルールを用いて要素を抽出し、抽出した要素を構造化ルールで構造化して構造化データを生成するので、個々のＷｅｂアプリケーション毎のラッパを予め用意しなくても、また、Ｗｅｂアプリケーションのソースコードを用いなくても、抽出ルールと構造化ルールを含むシンプルなコンフィグファイルを用意することで、さまざまな半構造化データから構造化データを生成することができる。そのため、さまざまなＷｅｂアプリケーションを容易にＷｅｂサービスとして利用することが可能となる。
【００３９】
また、半構造化データを木構造データに変換し、その木構造データから共通のコンフィグファイルで要素を抽出するので、構造化データの要素となる部分の、木構造における位置が共通する半構造化データから容易に要素を抽出することができる。
【図面の簡単な説明】
【００４０】
【図１】本実施形態の半構造化データ構造化システムの構成を示すブロック図である。
【図２】半構造化データ構造化装置１１の構成を示すブロック図である。
【図３】半構造化データの一例を示す図である。
【図４】図３に示した半構造化データを木構造化した木構造データの一例を示す図である。
【図５】コンフィグファイルの一例を示す図である。
【図６】木構造データから抽出された要素の一例を示す図である。
【図７】構造化データの一例を示す図である。
【図８】半構造化データ構造化装置１１の動作を示すフローチャートである。
【符号の説明】
【００４１】
１０    半構造化データ構造化システム
１１    半構造化データ生成装置
１２    半構造化データ構造化装置
２１    半構造化データ木構造化部
２２    コンフィグファイル読み込み部
２３    要素抽出部
２４    要素構造化部
１０１〜１０３    ステップ
【図１】
2008003848.tif 000003
【図２】
2008003848.tif 000004
【図３】
2008003848.tif 000005
【図４】
2008003848.tif 000006
【図５】
2008003848.tif 000007
【図６】
2008003848.tif 000008
【図７】
2008003848.tif 000009
【図８】
2008003848.tif 000010