(57)【特許請求の範囲】
【請求項１】
ＸＭＬフォーマットデータの同一データの重複を排除するための、部分木要素選定手段、処理対象要素選定手段、重複要素選定手段、重複要素併合手段とを有する装置におけるＸＭＬフォーマットデータ重複排除方法であって、
前記部分木要素選定手段が、入力された前記ＸＭＬフォーマットデータ内の全要素を上位から順に部分木要素として選定する部分木要素選定ステップと、
前記処理対象要素選定手段が、前記部分木要素選定ステップで選定された部分木要素をルートとする各部分木について、重複排除処理の対象となる処理対象要素を順に選定する処理対象要素選定ステップと、
前記重複判定要素選定手段が、前記処理対象要素選定ステップで選定された処理対象要素の重複について判断するための重複判定要素を選定する際に、該処理対象要素の直下の子要素のうち、テキスト値のみを有する要素をすべて重複要素判定要素として選定する、または、利用者が指定した要素を重複判定要素として選定する重複判定要素選定ステップと、
前記重複要素併合手段が、前記処理対象要素選定ステップにより選定された前記処理対象要素の直下の子要素のうち、該処理対象要素からみて孫要素に該当する要素を持つ子要素が２つ以上ある場合には、該処理対象要素の重複判定を実施しない、という制約を用い、該制約を受けない場合には、前記重複判定要素選定ステップにより選定された前記重複判定要素の内容により重複判定を行い、重複していると判断された場合に、該処理対象要素及び該重複判定要素を併合する重複要素併合ステップと、
を行うことを特徴とするＸＭＬフォーマットデータ重複排除方法。
【請求項２】
前記重複要素併合ステップにおいて、
前記重複要素併合手段が、重複排除の対象となる前記ＸＭＬフォーマットデータに対して、予め同一性を示すＩＤを付与するステップと、
前記ＩＤに従って、前記処理対象要素の重複を判断するステップと、
を行う請求項１記載のＸＭＬフォーマットデータ重複排除方法。
【請求項３】
前記重複要素併合ステップにおいて、
前記重複要素併合手段が、前記重複排除の対象となるＸＭＬフォーマットデータに対して、予め下位要素から順に同一要素に同一ＩＤを付与するステップと、
前記ＩＤに従って、前記処理対象要素の重複を判断するステップと、
を行う請求項２記載のＸＭＬフォーマットデータ重複排除方法。
【請求項４】
ＸＭＬフォーマットデータの同一データの重複を排除するためのＸＭＬフォーマットデータ重複排除装置であって、
前記ＸＭＬフォーマットデータ内の全要素を上位から順に部分木要素として選定する部分木要素選定手段と、
前記部分木要素選定手段で選定された部分木要素をルートとする各部分木について、重複排除処理の対象となる処理対象要素を順に選定する処理対象要素選定手段と、
前記処理対象要素選定手段で選定された処理対象要素の重複について判断するための重複判定要素を選定する際に、該処理対象要素の直下の子要素のうち、テキスト値のみを有する要素をすべて重複要素判定要素として選定する、または、利用者が指定した要素を重複判定要素として選定する重複判定要素選定手段と、
前記処理対象要素選定手段により選定された前記処理対象要素の直下の子要素のうち、該処理対象要素からみて孫要素に該当する要素を持つ子要素が２つ以上ある場合には、該処理対象要素の重複判定を実施しない、という制約を用い、該制約を受けない場合には、前記重複判定要素選定手段により選定された前記重複判定要素の内容により重複判定を行い、重複していると判断された場合に、該処理対象要素及び該重複判定要素を併合する重複要素併合手段と、
を有することを特徴とするＸＭＬフォーマットデータ重複排除装置。
【請求項５】
前記重複要素併合手段は、
重複排除の対象となる前記ＸＭＬフォーマットデータに対して、予め同一性を示すＩＤを付与する手段と、
前記ＩＤに従って、前記処理対象要素の重複を判断する手段と、
を含む請求項４記載のＸＭＬフォーマットデータ重複排除装置。
【請求項６】
前記重複要素併合手段は、
前記重複排除の対象となるＸＭＬフォーマットデータに対して、予め下位要素から順に同一要素に同一ＩＤを付与する手段と、
前記ＩＤに従って、前記処理対象要素の重複を判断する手段と、
を含む請求項５記載のＸＭＬフォーマットデータ重複排除装置。
【請求項７】
コンピュータを、
請求項４乃至６記載のＸＭＬフォーマットデータ重複排除装置として機能させることを特徴とするプログラム。
【請求項８】
請求項７記載のプログラムを格納したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＸＭＬフォーマットデータ重複排除方法及び装置及びプログラム及びコンピュータ読み取り可能な記録媒体に係り、特に、ＸＭＬフォーマットデータを扱うシステムにおいて、データの管理の効率化及びデータ検索速度を向上させるためにＸＭＬフォーマットデータの重複を排除するためのＸＭＬフォーマットデータ重複排除方法及び装置及びプログラム及びコンピュータ読み取り可能な記録媒体に関する。
【０００２】
【従来の技術】
データの再利用性向上のための、企業間で交換されるデータの形式としてＸＭＬフォーマットが多く採用されてきている。また、同じ理由のために、将来インターネット上で公開されるデータの多くもＸＭＬフォーマットにされることが予想される。このような状況において、ＸＭＬデータの構築や検索に対するニーズが高まっている。
【０００３】
このニーズに対して、ＸＭＬベースのデータベースシステムや、ＸＭＬファイルエディタが開発されている。前者には、eXcelon 社の「eXcelon 」や、SoftwareAG社の「Tamino」などがあり、これらは企業内の大量のデータをＸＭＬフォーマットで蓄積、検索する用途に適している。後者には、TIBICO社の「TurboXML」やVervetLogic 社の「XMLPro」などがあり、個人がインターネット上で情報公開をする際にＸＭＬフォーマットのデータを作成する用途に適している。インターネット上に公開されたＸＭＬファイルに対する検索を実現できるツールとしては、「文検索方法及び装置及び全文検索プログラムを格納した記憶媒体」（特願２０００−１４２１２１）等を適用できる。
【０００４】
【発明が解決しようとする課題】
ＸＭＬフォーマットでは、半構造データを表現することができる。データをＸＭＬフォーマットで扱うことにより、正規化が制約されるリレーショナルデータベースでは実現できないスキーマでのデータ管理が可能になり、スキーマが定義されない状態でのデータ管理も可能になる。
【０００５】
言い換えると、ＸＭＬフォーマットでは、同一データが重複する検索処理に不向きなデータ管理が可能であるといえる。従って、ＸＭＬフォーマットでデータ管理を実現する場合には、煩雑なデータの管理の必要性やデータ検索速度の低下が懸念される。特に、ＸＭＬデータベースやＸＭＬ検索システムによる検索結果として新たに得られるＸＭＬフォーマットのデータについては、内部にデータが重複する可能性が高く、再利用性の一層の低下が予想される。
【０００６】
Ｗ３Ｃにおいて標準化が進められているＸＭＬ問い合わせ言語の「XQuery」では、重複排除の対象となる要素と判断基準となる要素の組み合わせを指定することで、データの重複が排除された形式で検索結果を得ることも可能である。しかし、このためには、半構造データ全体を把握した要素指定が必要となる。さらに、データ全体に対して重複排除を実施する場合には、重複排除の対象となる要素と判断基準となる要素の組み合わせを指定した問い合わせが、組み合わせの数だけ必要となる。このような重複排除を任意のＸＭＬフォーマットのデータに対して実施することは非常に困難である。
【０００７】
本発明は、上記の点に鑑みなされたもので、ＸＭＬフォーマットのデータを扱う際に、ＸＭＬフォーマットのデータの重複排除を可能とし、データ管理の効率化及びデータ検索速度の向上が可能なＸＭＬフォーマットデータ重複排除方法及び装置及びプログラム及びコンピュータ読み取り可能な記録媒体を提供することを目的とする。
【０００８】
本発明（請求項１）は、ＸＭＬフォーマットデータの同一データの重複を排除するための、部分木要素選定手段、処理対象要素選定手段、重複要素選定手段、重複要素併合手段とを有する装置におけるＸＭＬフォーマットデータ重複排除方法であって、
部分木要素選定手段が、入力されたＸＭＬフォーマットデータ内の全要素を上位から順に部分木要素として選定する部分木要素選定ステップ（ステップ１）と、
処理対象要素選定手段が、部分木要素選定ステップ（ステップ１）で選定された部分木要素をルートとする各部分木について、重複排除処理の対象となる処理対象要素を順に選定する処理対象要素選定ステップ（ステップ２）と、
重複判定要素選定手段が、処理対象要素選定ステップ（ステップ２）で選定された処理対象要素の重複について判断するための重複判定要素を選定する際に、該処理対象要素の直下の子要素のうち、テキスト値のみを有する要素をすべて重複要素判定要素として選定する、または、利用者が指定した要素を重複判定要素として選定する重複判定要素選定ステップ（ステップ３）と、
重複要素併合手段が、処理対象要素選定ステップ（ステップ２）により選定された処理対象要素の直下の子要素のうち、該処理対象要素からみて孫要素に該当する要素を持つ子要素が２つ以上ある場合には、該処理対象要素の重複判定を実施しない、という制約を用い、該制約を受けない場合には、重複判定要素選定ステップ（ステップ３）により選定された重複判定要素の内容により重複判定を行い、重複していると判断された場合に、該処理対象要素及び該重複判定要素を併合する重複要素併合ステップと、（ステップ４）と、を行う。
【００１３】
また、本発明（請求項２）は、重複要素併合ステップにおいて、
重複要素併合手段が、重複排除の対象となるＸＭＬフォーマットデータに対して、予め同一性を示すＩＤを付与するステップと、
ＩＤに従って、処理対象要素の重複を判断するステップと、を行う。
【００１４】
また、本発明（請求項３）は、重複要素併合ステップにおいて、
重複要素併合手段が、重複排除の対象となるＸＭＬフォーマットデータに対して、予め下位要素から順に同一要素に同一ＩＤを付与するステップと、
ＩＤに従って、処理対象要素の重複を判断するステップと、を行う。
【００１５】
図２は、本発明の原理構成図である。
【００１６】
本発明（請求項４）は、ＸＭＬフォーマットデータの同一データの重複を排除するためのＸＭＬフォーマットデータ重複排除装置であって、
ＸＭＬフォーマットデータ内の全要素を上位から順に部分木要素として選定する部分木要素選定手段１２０と、
部分木要素選定手段１２０で選定された部分木要素をルートとする各部分木について、重複排除処理の対象となる処理対象要素を順に選定する処理対象要素選定手段１３０と、
処理対象要素選定手段１３０で選定された処理対象要素の重複について判断するための重複判定要素を選定する際に、該処理対象要素の直下の子要素のうち、テキスト値のみを有する要素をすべて重複要素判定要素として選定する、または、利用者が指定した要素を重複判定要素として選定する重複判定要素選定手段１４０と、
処理対象要素選定手段１３０により選定された処理対象要素の直下の子要素のうち、該処理対象要素からみて孫要素に該当する要素を持つ子要素が２つ以上ある場合には、該処理対象要素の重複判定を実施しない、という制約を用い、該制約を受けない場合には、重複判定要素選定手段１４０により選定された重複判定要素の内容により重複判定を行い、重複していると判断された場合に、該処理対象要素及び該重複判定要素を併合する重複要素併合手段１５０と、を有する。
【００２０】
また、本発明（請求項５）は、重複要素併合手段１４０において、
重複排除の対象となるＸＭＬフォーマットデータに対して、予め同一性を示すＩＤを付与する手段と、
ＩＤに従って、処理対象要素の重複を判断する手段と、を含む。
【００２１】
また、本発明（請求項６）は、重複要素併合手段１４０において、
重複排除の対象となるＸＭＬフォーマットデータに対して、予め下位要素から順に同一要素に同一ＩＤを付与する手段と、
ＩＤに従って、処理対象要素の重複を判断する手段と、を含む。
【００２２】
本発明（請求項７）は、コンピュータを、請求項４乃至６記載のＸＭＬフォーマットデータ重複排除装置として機能させるプログラムである。
【００２３】
本発明（請求項８）は、請求項７記載のプログラムを格納したコンピュータ読み取り可能な記録媒体である。
【００２４】
上記のように、本発明では、スキーマ上同一位置に存在する要素のうち、データが重複するものが自動的に併合される。
【００２５】
また、重複判定要素をユーザに選定させることにより、よりユーザの目的にあった重複排除を実現することが可能となる。
【００２６】
さらに、重複排除処理の前に予め各要素に同一性判断用ＩＤを付与しておくことにより、単一の要素値だけではなく、その要素をルートとする部分木全体を考慮した重複排除を実現することが可能となる。
【００２７】
【発明の実施の形態】
最初に、ＸＭＬフォーマットデータの重複排除情報の概要について説明する。図３は、本発明の一実施の形態におけるＸＭＬフォーマットデータの例を示す。部分木重複排除処理の対象となる最初の部分木は、ＸＭＬフォーマットデータのルート要素と同一の要素をルートとする部分木、即ち、ＸＭＬフォーマットデータ全体と同一である。同図に示す例では、要素「ＲＯＯＴ」をルート要素とする部分木である。
【００２８】
部分木重複排除処理について、まず、処理対象要素選定処理を説明する。処理対象要素選定処理は、部分木のルート要素の直下に存在するデータ構造上同一の位置に存在する子要素を、要素併合処理の対象となる要素として順次選定する処理である。選定された処理対象要素が、重複要素併合処理の対象となる。同図に示す例では、ルート要素の直下に存在する子要素の中で、ＩＤ＝０１である要素「Ａ」とＩＤ＝０２である要素「Ａ」がデータ構造上同一の位置に存在する子要素であり、ＩＤ＝３の要素「Ｂ」とＩＤ＝４の要素「Ｂ」もまたデータ構造上同一の位置に存在する子要素である。これらの要素を順に処理対象要素として選定していく。ここでは、要素名について辞書順に選定するとし、まず、２つの要素「Ａ」を処理対象要素として選定する。この後、要素「Ａ」に対して重複判定要素選定処理及び重複要素併合処理を実施し、次に２つの要素「Ｂ」を処理対象要素として選定して同様の処理を実施する。
【００２９】
次に、重複判定要素選定処理について説明する。ここで、図３に示す例におて、２つの要素「Ａ」が処理対象要素であるとする。各要素「Ａ」の下には、３つの要素が存在するが、このうち自動的または、利用者の指定により１つ以上３つ以下の要素が重複判定要素として選定される。なお、重複判定要素の選定方法については、後述する実施例で説明する。ここでは、処理対象要素「Ａ」の直下の要素「Ｃ」及び「Ｄ」が重複判定要素として選定されたものとする。
【００３０】
次に、重複要素併合処理について説明する。まず、要素「Ｃ」及び「Ｄ」が同一であるならば、２つの処理対象要素「Ａ」は重複していると判断し、２つの処理対象要素「Ａ」とそれぞれの重複判定要素「Ｃ」「Ｄ」を併合する。重複判定要素「Ｃ」及び「Ｄ」のうち少なくとも１つでも異なれば、２つの処理対象要素「Ａ」は重複していないと判断し、併合は実施しない。ここでは、重複の判断を、全ての重複判定要素のテキスト値が同一であれば重複していると判断する、ということにする。例では、各要素「Ａ」は重複していると判断され、処理対象要素「Ａ」及び重複判定要素「Ｃ」「Ｄ」は併合される。
【００３１】
なお、要素の同一性比較方法については、実施例で詳細に説明する。この段階では、ＩＤ＝０７の要素「Ｅ」とＩＤ＝１０の要素「Ｅ」は、重複判定要素ではないため併合されず、両方の「Ｅ」が併合された「Ａ」の直下の子要素となる。その後、「Ａ」を部分木要素とした部分木重複排除処理が実施されると、各「Ｅ」が処理対象要素となる。
【００３２】
部分木重複排除処理を、ＸＭＬフォーマットデータ全体について、上位から順に全要素に適用していくことで、重複要素が排除されたＸＭＬフォーマットデータを得ることが可能になる。図３に示す例において、要素「ＲＯＯＴ」をルート要素とする部分木における重複部分木併合処理を終えると、その結果として得られるＸＭＬフォーマットデータにおいて、次は各要素「Ａ」または、「Ｂ」をルート要素とする部分木における重複部分木併合処理を適用する。処理対象要素「Ａ」における重複判定要素を「Ｃ」及び「Ｄ」、処理対象要素「Ｂ」における重複判定要素を「Ｆ」及び「Ｇ」、処理対象要素「Ｅ」における重複判定要素を「Ｉ」及び「Ｊ」、処理対象要素「Ｈ」における重複判定要素を「Ｋ」及び「Ｌ」とし、すべての重複判定要素のテキスト値が同一であれば重複していると判断する場合、このＸＭＬフォーマットデータ全体に重複部分木併合処理を適用すると、図４に示すデータが得られる。
【００３３】
上記のように、本発明によれば、データの重複が排除されたＸＭＬフォーマットデータを得ることができる。このデータには、元のデータと比較して、データ間の重複が少ないためにデータ量が少なく、管理が容易であり、検索が高速に実現されるという特徴がある。
【００３４】
【実施例】
以下、図面と共に本発明の実施例を説明する。
【００３５】
図５は、本発明の一実施例のＸＭＬフォーマット重複排除処理装置の構成を示す。
【００３６】
同図に示すＸＭＬフォーマット重複排除処理装置は、入力部１１０、部分木要素選定部１２０、処理対象要素選定部１３０、重複判定要素選定部１４０、重複要素併合部１５０、出力部１６０から構成される。
【００３７】
入力部１１０は、ＸＭＬフォーマットデータを入力し、部分木要素選定部１２０に渡す。
【００３８】
部分木選定部１２０は、ＸＭＬフォーマットデータ内の全要素を上位から順に部分木要素として選定する。
【００３９】
処理対象要素選定部１３０は、部分木要素をルートとする各部分木について、重複排除処理の対象となる要素を順に選定する。
【００４０】
重複判定要素選定部１４０は、処理対象要素選定部１３０で選定された処理対象要素の重複について判断するための要素を選定する。また、重複判定要素選定部１４０は、処理対象要素選定部１３０で選定された要素の直下の子要素のうち、自動的にテキスト値のみを有する要素を全て重複判定要素として選定する。さらに、選定された要素の子要素のうち、利用者が指定した要素を重複判定要素として選定する。
【００４１】
重複要素併合部１５０は、重複判定要素選定部１４０において重複していると判断された場合に、処理対象要素及び重複判定要素を併合する。また、重複していると判断された要素について、各々テキスト値が同一である場合に、処理対象要素が重複していると判断する。また、重複要素併合部１５０は、選定された要素の直下の子要素にうち、処理対象要素から見て孫要素に該当する要素を持つ子要素が２つ以上ある場合には、処理対象要素の重複判定を実施しないという制約を用いる。また、重複排除の対象となるＸＭＬフォーマットデータに対して、予め同一性を示すＩＤを付与しておき、当該ＩＤに従って処理対象要素の重複を判断する。また、重複排除の対象となるＸＭＬフォーマットデータに対して、予め下位要素から順に同一要素に同一ＩＤを付与しておき、ＩＤに従って処理対象要素の重複を判断することも可能である。
【００４２】
次に、上記の構成における動作を説明する。
【００４３】
図６は、本発明の一実施例のＸＭＬフォーマットデータの重複排除処理のフローチャートである。
【００４４】
本発明では、ＸＭＬフォーマットデータ内の全要素を上位から順に部分木要素として選定し、各部分木要素について部分木重複排除処理を適用していく処理を繰り返す。
【００４５】
部分木選定処理は、順次部分木重複排除処理（ステップ１２０）によって重複排除が実施された部分木に対して適用される。すべの部分木要素の選定が終了したら、出力部１６０から重複排除済ＸＭＬフォーマットデータを出力する（ステップ１１０）。部分木要素の選定順序としては、幅優先探索方法や深さ優先探索方法に基づく順序などが挙げられる。
【００４６】
部分木重複排除処理（ステップ１２０）では、処理対象要素選定処理（ステップ１２１）において、部分木要素の直下に存在する子要素の中から重複排除処理の対象となる要素を順次選定し、選定された各処理対象要素について要素併合処理を適用していく処理を繰り返す。処理対象要素の選定順序としては、要素名に関する辞書順などが挙げられる。
【００４７】
要素併合処理（ステップ１３０）は、重複判定要素選定処理（ステップ１３１）及び重複要素併合処理（ステップ１３２）からなる。
【００４８】
重複判定要素選定処理（ステップ１３１）では、処理判定要素の直下に存在するｎ個の子要素のうち、重複判定に用いられる１個以上ｎ個以下の要素を選定する。重複判定要素の選定方法としては、利用者による指定や、ルールに基づく自動選定が挙げられる。
【００４９】
重複要素併合処理（ステップ１３２）では、定められた同一性判定方法に従い、重複判定要素が同一であるか否かを判定し、同一であると判定された場合に、処理対象要素及び重複判定要素を併合する。同一性の判定方法としては、全重複判定要素のテキスト値の同一性判定などが挙げられる。
【００５０】
次に、部分木要素選定処理（ステップ１１０）について説明する。
【００５１】
図７は、本発明の一実施例の部分木要素選定処理のフローチャートである。
【００５２】
部分木要素選定処理は、重複排除を実施する範囲となる部分木のルート要素となる要素を選定する処理である。部分木要素として、ＸＭＬフォーマットデータ内の全要素が、上位から順に選定される。選定順序としては、幅優先探索方法や深さ優先探索方法に基づく順序などが挙げられる。順次選定された部分木要素について、部分木重複排除処理を実施するが、次に、部分木要素選定処理を実行する際には、部分木重複排除処理（ステップ１２０）の施されたＸＭＬフォーマットデータに対して実行していく（ステップ１１０）。
【００５３】
次に、処理対象要素選定処理について説明する。
【００５４】
図８は、本発明の一実施例の処理対象要素選定処理のフローチャートである。処理対象要素選定処理（ステップ１２１）は、重複している場合に併合される要素を、重複要素併合処理の対象として選定する処理である。
【００５５】
処理対象要素として、重複部分木併合処理の対象である部分木におけるルート要素の直下に存在する、データ構造上の同一の位置に存在する子要素が順次選定される。選定方法としては、要素名に関する辞書順に従って、順次選定する方法などが挙げられる。
【００５６】
処理対象要素選定処理（ステップ１２１）では、まず、部分木要素の直下に存在するすべての子要素の要素名を抽出する（ステップ１２１１）。次に、抽出された全子要素名を、例えば、辞書順に従って整列する（ステップ１２１２）。そして、整列順に要素名に対応する要素を処理対象要素として抽出し、要素併合処理に引き渡す（ステップ１２１３）。
【００５７】
要素併合処理（ステップ１３０）が終了すると、次の処理対象要素名を選定し、同様に要素名に対応する要素を抽出して、要素併合処理に引き渡す。以上の処理を部分木要素の直下に存在するすべての子要素に対して実施する。
【００５８】
次に、重複判定要素選定処理（ステップ１３１）について説明する。
【００５９】
重複判定要素選定処理は、処理対象要素が重複しているか否を判断するための比較対象となる要素を、重複判定要素として選定する処理である。比較対象要素の選定方法としては、利用者が指定する方法と自動的に実施する方法が挙げられる。
【００６０】
利用者が指定する場合には、要素の意味を考慮した選定が可能になる。例えば、「商品」という要素が処理対象要素であり、その直下に「カテゴリ」「商品名」「価格」という子要素が存在する場合、利用者は重複判定要素として「カテゴリ」要素を選択することにより、「カテゴリ」要素の内容に従って「商品」要素の重複を排除することが可能になる。
【００６１】
自動的に実施する方法としては、処理対象要素の直下に存在する子要素の中から、無条件に全要素を選定する方法や、テキスト値のみを持つ要素だけをすべて選定する方法などが挙げられる。
【００６２】
図９は、本発明の一実施例の重複判定要素選定処理のフローチャートであり、自動的にテキスト値のみを持つ要素だけを全て選定する処理を示している。
【００６３】
まず、全処理対象要素の直下に存在する子要素の要素名を、重複排除してすべて抽出する（ステップ１３１１）。次に、抽出された各要素名の中から、対応するすべての要素について、それがテキスト値のみを持ち、子要素を持たないものを、重複判定要素とし、その要素名を導出する（ステップ１３１２）。
【００６４】
次に、重複要素併合処理（ステップ１３２）を説明する。
【００６５】
重複要素併合処理（ステップ１３２）は、重複判定要素の内容に従って、複数の処理対象の要素の同一性を判断し、同一であると判断された処理対象要素同士は重複していると見做し、処理対象要素及び重複判定要素を併合する処理である。
【００６６】
同一性判定方法としては、各重複判定要素のテキスト値がすべて同一である場合に同一であると判断する方法などが挙げられる。
【００６７】
図１０は、本発明の一実施例の重複要素併合処理のフローチャートであり、重複判定要素のテキスト値がすべて同一である場合に同一であると判断し、処理対象要素及び重複判定要素を併合する処理を示す。ここでは、重複判定要素としてテキスト値のみを持つ要素の要素名が抽出されていることを前提とする。
【００６８】
まず、各処理対象要素について、すべての重複判定要素のテキスト値を読み出す（ステップ１３２１）。ここで、判定済の他の処理対象要素と比較して（ステプ１３２２）、全重複判定要素のテキスト値が完全に同一である場合（ステップ１３２２，Ｙｅｓ）、当該処理対象要素に対して、比較した判定済処理対象要素に付与されたＩＤと同一のＩＤを付与する（ステップ１３２３）。重複判定要素のテキスト値が少しでも異なる場合は（ステップ１３２２，Ｎｏ）、判定済処理対象要素に付与されたＩＤと異なるＩＤを付与する（ステップ１３２４）。ＩＤを付与した処理対象要素は判定済とし、次の処理対象要素について同様の処理を行う。最後に、すべての処理対象要素にＩＤを付与し終えたら、同一ＩＤの付与された処理対象要素同士について、処理対象要素及び重複判定要素を併合する（ステップ１３２５）。併合される処理判定要素について、その直下に存在する重複判定要素以外の子要素は、そのまま併合後の処理判定要素の直下の子要素となる。
【００６９】
ここで、重複判定要素の選定方法に関する注意点を挙げる。重複判定要素が自動的に選定される場合には、意図しない重複排除が実施される可能性がある。例を図１１に示す。「商品」という要素が処理対象要素であり、その著かに「カテゴリ」「商品名」「価格」という子要素が存在し、要素「商品名」は子要素「名称」及び「色」を持ち、要素「価格」は、子要素「通常価格」及び「会員価格」があるとする。ここで、処理対象要素「商品」に対する重複判定要素を、自動的にテキスト値のみを持つ要素だけをすべて選定した場合、重複判定処理を実施すると要素「カテゴリ」のテキスト値が同一であるすべての要素「商品」が併合されることになる。この結果、要素「カテゴリ」のテキスト値が同一である各「商品」が併合され、それぞれの「商品名」と「通常価格」の対応関係が失われてしまう。
【００７０】
このような問題が発生しないような、即ち、重複排除によって要素間の対応関係が失われないように、制約を受けた重複要素併合処理について説明する。
【００７１】
図１２は、本発明の一実施例の制約つき重複要素併合処理のフローチャートである。重複判定要素としては、テキスト値のみを持つ子要素を全て選定することとする。ここで、処理対象要素の直下に存在する要素を子要素、子要素の直下に存在する要素を孫要素と呼ぶ。孫要素が存在する子要素が複数存在する場合、処理対象要素を併合すると、孫要素間の対応関係が失われてしまう。そこで、孫要素を持つ子要素が複数存在する場合、処理対象要素は併合しない、という制約を設ける。処理対象要素がこの制約を受けない場合、各重複判定要素のテキスト値がすべて同一である処理対象要素について、処理対象要素と重複判定要素を併合する。
【００７２】
まず、処理対象要素の直下の全重複判定要素のテキスト値を読み出し（ステップ２０１）、判定済の他の処理対象要素と重複判定要素のテキスト値が完全に同一でない場合には（ステップ２０２，Ｎｏ）、処理対象要素に、判定済処理対象要素と異なるＩＤを付与する（ステップ２０５）。一方、判定済の他の処理対象要素と重複判定要素のテキスト値が完全に同一である場合には（ステップ２０２，Ｙｅｓ）、処理対象要素の直下に孫要素を持つ子要素が複数存在するかを判断し、存在する場合には（ステップ２０３，Ｙｅｓ）、処理対象要素に、判定済処理対象要素と異なるＩＤを付与する（ステップ２０５）。存在しない場合には（ステップ２０３，Ｎｏ）、処理対象要素に、同一の判定済処理対象要素と同一のＩＤを付与する（ステップ２０４）。
【００７３】
また、重複要素併合処理（ステップ１３２）における同一性判定方法として、重複判定要素のテキスト値の同一性に従う方法以外について説明する。
【００７４】
例として、要素に付与された同一性を示すＩＤに従って判断する方法が挙げられる。まず、本発明による重複排除処理より前に、予め何らかの同一性評価処理を実施し、ＸＭＬフォーマットデータの全要素に同一性を示すＩＤを新たに付与しておく。そして、重複要素併合処理では、各処理対象要素における重複判定要素のＩＤが同一性を示している場合に、処理対象要素同士が同一であると判断し、処理対象要素及び重複判定要素を併合する。ここでは、重複排除処理の前に予め実施される同一性評価用ＩＤ付与処理をスコーレム処理と呼ぶ。
【００７５】
図１３は、本発明の一実施例のスコーレム処理方法の一例を示す。
【００７６】
これは、下位要素から順に同一要素に同一ＩＤを付与する処理である。複数の要素について、当該要素がデータ構造上同一の位置に存在し、そのテキスト値及び直下の全要素が同一である場合、当該要素を同一であると判断する。直下の要素の同一性については、下位要素から順にスコーレム処理で付与されるＩＤに従って判断する。重複要素併合処理では、複数の処理対象要素について、それぞれの重複判定要素にスコーレム処理で付与されたＩＤが同一である場合に、処理対象要素及び重複判定要素を併合することが可能になる。
【００７７】
下位から順にデータ構造上同一の位置に存在する要素について以下の処理を行う。要素に対応する各インスタンスについて、直下の全子要素のスコーレムＩＤが処理済インスタンスと同一である、または、直下に子要素がない場合には（ステップ３０１，Ｙｅｓ）、テキスト値も処理済インスタンスと同一であるかを判定し、同一である場合には（ステップ３０２，Ｙｅｓ）、比較した処理済インスタンスと同一のＩＤを付与し、処理済インスタンスとする（ステップ３０３）。また、要素に対応する各インスタンスについて、直下の全子要素のスコーレムＩＤが処理済インスタンスと同一ではなく、または、直下に子要素がある場合には（ステップ３０１，Ｎｏ）、処理済インスタンスと異なる新しいＩＤを付与し、処理済インスタンスとする（ステップ３０４）。また、要素に対応する各インスタンスについて、直下の全子要素のスコーレムＩＤが処理済インスタンスと同一である、または、直下に子要素がない場合で（ステップ３０１，Ｙｅｓ）、テキスト値も処理済インスタンスと同一である場合には（ステップ３０２，Ｎｏ）、処理済インスタンスと異なる新しいＩＤを付与し、処理済インスタンスとする（ステップ３０４）。この処理を要素に対応する各インスタンスについて、全インスタンスに対する処理が終了するまで行い、さらに、全要素についての処理が終了するまで繰り返す。
【００７８】
例として、図１４に示す衣料情報を管理するＸＭＬフォーマットデータに、本発明のＸＭＬフォーマットデータ重複排除処理を適用した結果をいくつか示す。図１５は、本発明の一実施例の重複排除結果の例（重複判定要素を利用者が選定）を示す。同図では、重複判定要素を利用者が選定し、重複判定要素のテキスト値がすべて同一の場合に、処理対象要素が重複していると判断する方法であり、重複排除処理を適用した結果である。要素「デザイン」における重複判定要素として、「色」を選定しているため、「色」のテキスト値が同一であるすべての「デザイン」が併合される。
【００７９】
図１６は、本発明の一実施例の重複排除結果の例（重複判定要素としてテキスト値のみを持つ要素を自動的に選定）を示す。同図では、重複判定要素を処理対象要素の直下に存在するテキスト値のみを持つすべての子要素として自動的に選定し、重複判定要素のテキスト値がすべて同一の場合に処理対象要素が重複していると判断する方法であり、重複排除処理を適用した結果である。要素「デザイン」における重複判定要素として自動的に「色」と「柄」が選定されるため、両方の要素のテキスト値が同一の「デザイン」のみが併合される。
【００８０】
図１７は、本発明の一実施例の重複排除結果の例（重複判定要素を自動選定・孫要素を持つ子要素が複数存在する処理対象要素は併合しないという制約付き）を示す。同図は、図１６と同様の処理を実施するが、処理対象要素について、孫要素を持つ子要素が複数存在するときには、重複要素併合処理を実施しない制約を設けた場合の結果である。制約により、要素「情報」は併合されない。これにより、図１６では失われてしまった「デザイン」と「価格」の関連が維持される。
【００８１】
図１８は、本発明の一実施例のスコーレム処理によりＩＤを付与したＸＭＬフォーマットデータを示す。同図は、予め対象ＸＭＬフォーマットデータの全要素に対し、下位要素から順に同一要素に同一ＩＤを付与するスコーレム処理を実施した結果である。
【００８２】
図１９は、本発明の一実施例の重複排除結果の例（予めスコーレム処理で付与されたＩＤに従い重複を判断）を示す。同図は、処理対象要素の直下の全子要素を重複判定要素として自動的に選定し、スコーレム処理で重複判定要素に付与されたＩＤがすべて同一の場合、処理対象要素が重複していると判断する方法の結果である。図１７では、制約のために併合されなかった要素「情報」をルート要素とするが部分木が併合される。
【００８３】
図２０は、本発明の一実施例の重複排除の結果の例（重複判定要素を利用者が選定・スコーレム処理で付与されたＩＤに従い重複を判断）を示す。同図は、重複判定要素を利用者が選定し、スコーレム処理で付与されたＩＤに従って重複を判断する方法の結果である。要素「商品」における重複判定要素として「カテゴリ」を選定しているため、図１９では部分木が完全に同一ではないために併合されなかった「商品」が併合される。
【００８４】
上記のＸＭＬフォーマットデータ重複排除処理（部分木重複排除処理、要素併合処理）をプログラムとして構築し、ＸＭＬフォーマットデータを利用するコンピュータにインストールして、当該コンピュータに実行させる、または、ネットワークを介して流通させることが可能である。
【００８５】
また、構築されたプログラムをＸＭＬフォーマットデータを利用するコンピュータに接続されるハードディスク装置や、フレキシブルディスク、ＣＤ−ＲＯＭ等の可搬記憶媒体に格納しておき、本発明を実施する際に、コンピュータにインストールすることにより本発明を実現できる。
【００８６】
なお、本発明は、上記の実施の形態及び実施例に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
【００８７】
【発明の効果】
上述のように、本発明によれば、ＸＭＬフォーマットのデータにおける自動的な重複排除が実現される。重複の判断に対しては、結果として得られるデータの用途に応じて、機械的な判断やユーザ指定の判断を選択することができる。
【００８８】
本発明を適用して得られるＸＭＬフォーマットのデータを利用することにより、ＸＭＬフォーマットデータの管理の効率化及び検索速度の向上が実現される。
【図面の簡単な説明】
【図１】本発明の原理を説明するための図である。
【図２】本発明の原理構成図である。
【図３】本発明の一実施の形態のＸＭＬフォーマットデータの例である。
【図４】本発明の一実施の形態における重複排除処理により得られるＸＭＬフォーマットデータの例である。
【図５】本発明の一実施例のＸＭＬフォーマットデータ重複排除装置の構成図である。
【図６】本発明の一実施例のＸＭＬ形式データ重複排除処理のフローチャートである。
【図７】本発明の一実施例の部分木要素選定処理のフローチャートである。
【図８】本発明の一実施例の処理対象要素選定処理のフローチャートである。
【図９】本発明の一実施例の重複判定要素選定処理のフローチャートである。
【図１０】本発明の一実施例の重複要素併合処理のフローチャートである。
【図１１】本発明の一実施例の意図しない重複排除の例である。
【図１２】本発明の一実施例の制約つき重複要素併合処理のフローチャートである。
【図１３】本発明の一実施例のスコーレム処理方法の一例である。
【図１４】本発明の一実施例のＸＭＬフォーマットデータの例である。
【図１５】本発明の一実施例の重複排除結果の例（重複判定要素を利用者が選定）である。
【図１６】本発明の一実施例の重複排除結果の例（重複判定要素としてテキスト値のみを持つ要素を自動的に選定）である。
【図１７】本発明の一実施例の重複排除結果の例（重複判定要素を自動選定・孫要素を持つ子要素が複数存在する処理対象要素は併合しないという制約付き）である。
【図１８】本発明の一実施例のスコーレム処理によりＩＤを付与したＸＭＬフォーマットデータである。
【図１９】本発明の一実施例の重複排除結果の例（あらかじめスコーレム処理で付与されたＩＤに従い重複を判断）である。
【図２０】本発明の一実施例の重複排除結果の例（重複判定要素を利用者が選定・スコーレム処理で付与されたＩＤに従い重複を判断）である。
【符号の説明】
１１０  入力部
１２０  部分木要素選定手段、部分木要素選定部
１３０  処理対象要素選定手段、処理対象要素選定部
１４０  重複判定要素選定手段、重複判定要素選定部
１５０  重複要素併合手段、重複要素併合部
１６０  出力部
【図１】
0004013632.tif 000002
【図２】
0004013632.tif 000003
【図３】
0004013632.tif 000004
【図４】
0004013632.tif 000005
【図５】
0004013632.tif 000006
【図６】
0004013632.tif 000007
【図７】
0004013632.tif 000008
【図８】
0004013632.tif 000009
【図９】
0004013632.tif 000010
【図１０】
0004013632.tif 000011
【図１１】
0004013632.tif 000012
【図１２】
0004013632.tif 000013
【図１３】
0004013632.tif 000014
【図１４】
0004013632.tif 000015
【図１５】
0004013632.tif 000016
【図１６】
0004013632.tif 000017
【図１７】
0004013632.tif 000018
【図１８】
0004013632.tif 000019
【図１９】
0004013632.tif 000020
【図２０】
0004013632.tif 000021