JP4657432B2 - 階層構造の構造化文書を変換する装置 - Google Patents

階層構造の構造化文書を変換する装置 Download PDF

Info

Publication number
JP4657432B2
JP4657432B2 JP2000296161A JP2000296161A JP4657432B2 JP 4657432 B2 JP4657432 B2 JP 4657432B2 JP 2000296161 A JP2000296161 A JP 2000296161A JP 2000296161 A JP2000296161 A JP 2000296161A JP 4657432 B2 JP4657432 B2 JP 4657432B2
Authority
JP
Japan
Prior art keywords
elements
document
new
structured document
records
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.)
Expired - Fee Related
Application number
JP2000296161A
Other languages
English (en)
Other versions
JP2002108850A (ja
Inventor
裕紀 矢作
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2000296161A priority Critical patent/JP4657432B2/ja
Priority to US09/819,729 priority patent/US7519903B2/en
Publication of JP2002108850A publication Critical patent/JP2002108850A/ja
Application granted granted Critical
Publication of JP4657432B2 publication Critical patent/JP4657432B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/151Transformation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99942Manipulating data structure, e.g. compression, compaction, compilation

Description

【0001】
【発明の属する技術分野】
本発明は、階層構造を持つ要素の集合で記述される構造化文書の検索処理に係り、構造化文書の要素を検索するためにその文書の構造を変換する変換装置に関する。
【0002】
【従来の技術】
構造化文書の記述形式の代表例としては、大規模データベース向けのSGML(Standard General Markup Language)、WWW(World Wide Web)向けに簡便な構成を持つHTML(Hyper Text Markup Language)、SGMLをインターネット向けに簡略化したXML(eXtensible Markup Language)等がある。HTMLは、WWWのコンテンツ形式として世界的に普及している。XMLは、HTMLを補うものとして、最近、特に注目を浴びており、インターネット上で文書を記述するだけでなく、携帯電話、カーナビゲーション等あらゆる情報機器が交信するための媒介となりつつある。
【0003】
XMLで記述されたXML文書の概要については、例えば、「標準XML完全解説」(技術評論社,1998年,pp.27−51)に紹介されている。XML文書は、図20に示すように、大きく分けて、XML宣言11、文書型定義(Document Type Definition,DTD)12、およびXML実現値(インスタンス)13の3つの部分から成る。このうち、XML実現値の部分は、階層構造を持つ要素の集合で記述され、これらの要素を識別するマークとして、タグが用いられる。
【0004】
図21は、1つの要素を表すタグの書き方を示している。図21において、要素名を含む開始タグ21と終了タグ22の間に記述された“要素の内容です。”の部分が要素の内容を表し、空要素タグ23は、内容のない要素のタグを表す。また、要素の内容として平文と下位の要素が混在するような階層構造を表すタグの書き方は、図22のようになる。図22においては、要素aの内容1と内容2の間に要素bが挿入されており、要素aの下位に要素bが存在する。この場合、要素aと要素bは親子関係にある。
【0005】
さらに、要素に属性が与えられている場合は、以下に示すように、その要素の開始タグに属性名と属性値が記述される。
<要素名 属性名1=“属性値1” 属性名2=“属性値2”・・・>
また、XML文書は、処理上の観点から、整形式(well-formed )と検証済み(valid )の2つの種類に分けられる。このような2種類のXML文書を含む構造化文書の構成と処理上の区分との関係は、図23のようになる。図23では、整形式XML文書、検証済みXML文書、SGML文書、およびHTML文書のそれぞれについて、宣言、文書型定義、および実現値が必須である(○)か否(△)かが示されている。例えば、整形式XML文書の場合は、実現値のみが必須であり、宣言と文書型定義はなくてもよい。
【0006】
XML文書を解析して、ブラウザ等の他の応用ソフトウェアに渡す媒介となる役割を果たすソフトウェアは、XMLプロセッサ(XMLパーサー)と呼ばれる。XMLプロセッサの概要については、例えば、「OpenDesign2月号」(CQ出版,2000年2月,pp.39−85)に紹介されている。
【0007】
図24は、XMLプロセッサが行う処理の例を示している。図24において、XMLプロセッサ32は、与えられたXML文書31をチェックして、木構造で表されたXML文書33を応用ソフトウェア34に渡す。このとき、XML文書31に文書型定義が含まれていなければ、XML実現値のタグ付け形式のみがチェックされる。
【0008】
このようなXMLプロセッサにおいて、Java(商標)言語でXML文書を操作するためのAPI(Application Programming Interface )には、SAX(Simple API for XML)とDOM(Document Object Model )の2種類がある。SAXは、XML文書を読みながら、文書や要素の開始や終了、文字列の出現といった事象(event )を応用ソフトウェアに通知する事象駆動型のAPIである。
【0009】
これに対して、DOMは、汎用的なXML操作APIであり、XML文書をDOMオブジェクトの木構造として、メモリ上に展開する。そして、応用ソフトウェアは、このDOMオブジェクトに対する操作を行うことで、XML文書へのアクセスを行うことができる。また、DOMオブジェクトから元のXML文書を生成することもできる。
【0010】
例えば、図25のようなXML文書からは、図26のようなDOMの木構造が生成される。図26において、矢印は、各ノードを呼び出すためのメソッド(関数)を表し、Document41は、XML文書の全体を表現するインタフェースに対応する。
【0011】
また、NodeList42は、あるノードに属する下位の要素や文字データをXML文書内での出現順に管理するために使用され、Element43やText44等のインスタンスを下位のノードとして持つ。NamedNodeMap45は、並び順に意味はないが、名前をキーにして値を参照する必要があるようなノードを収容するためのコレクションであり、ここには属性(Attr46)等が記述される。
【0012】
XML文書の代表的な応用例として、データベースとしてのXML文書のタグ検索がある。この処理では、XML文書で与えられた検索キーに対応する箇所が検索され、検索結果が出力される。
【0013】
図27は、DOMを用いた場合のタグ検索処理のフローチャートである。処理プログラムは、まず、XML文書を入力し(ステップS1)、検索キーを入力する(ステップS2)。次に、XMLプロセッサのインスタンスを生成し(ステップS3)、それを実行する(ステップS4)。これにより、XML文書のタグ構造が解析され、DOMの木構造が構築される。
【0014】
次に、木構造をルート(根)から辿り、検索キーに対応する個所を検出して、木構造の不要な部分を削除する(ステップS5)。これにより、木構造のノードが削減されて、部分木が生成される。そして、得られた部分木を検索結果として出力し(ステップS6)、処理を終了する。
【0015】
大規模データベースをXMLで構築した場合、図27のタグ検索は、比較的高速に検索できる点で有効な方法である。例えば、住民票データのデータベースにおいて、出身県を検索キーとして入力し、DOMの木構造を探索して、該当する個人データの部分木を残して出力するような処理が可能になる。
【0016】
また、図28は、SAXを用いた場合のタグ検索処理のフローチャートである。処理プログラムは、まず、XML文書を入力し(ステップS11)、検索キーを入力する(ステップS12)。次に、ハンドラーのインスタンスを生成し(ステップS13)、XMLプロセッサのインスタンスを生成して(ステップS14)、XMLプロセッサを実行する(ステップS15)。
【0017】
XMLプロセッサは、XML文書のタグ構造を解析し、タグを検出する度にハンドラーを実行して、検索キーに対応する個所を検出する(ステップS16)。そして、得られた検索結果を出力して(ステップS17)、処理を終了する。
【0018】
【発明が解決しようとする課題】
しかしながら、上述した従来のDOMを用いたタグ検索には、以下のような問題がある。
【0019】
DOMの木構造の規模が大きくなると、木構造を辿って、各要素の内容から検索キーと同じ文字列を検出するために、多大な処理時間を要する。また、DOMでは、各項目に長い文字列が出現することを予期して、長い固定長メモリ領域を確保してデータを書き込むので、木構造が大きくなると、大きな動作メモリ量が必要となる。
【0020】
本発明の課題は、XML文書のような構造化文書を変換することにより、タグ検索の処理速度を向上させ、必要な動作メモリ量を削減する変換装置を提供することである。
【0021】
【課題を解決するための手段】
図1は、本発明の変換装置の原理図である。本発明の第1の局面において、変換装置は、文書入力手段51、接合手段52、生成手段53、変換手段54、および文書出力手段55を備える。
【0022】
文書入力手段51は、階層構造の要素の集合で記述され、それぞれが1つ以上の要素を含む複数のレコードから成る構造化文書の情報を入力する。接合手段52は、構造化文書の2つ以上のレコード間で、相対的に同じ位置にある要素の内容を接合して、新しい要素を生成する。
【0023】
生成手段53は、生成された新しい要素を含み、上記2つ以上のレコードにおける要素の相対的位置関係を継承した新しいレコードを生成する。変換手段54は、それらの2つ以上のレコードを新しいレコードに置き換えて、構造化文書を変換する。そして、文書出力手段55は、変換後の構造化文書を出力する。
【0024】
レコードは、構造化文書を構成するために繰り返される単位データに対応し、構造化文書は、複数のレコードから成る。文書入力手段51により入力された構造化文書は、接合手段52に渡される。そして、接合手段52は、2つ以上のレコードの同じ位置にある要素を合成対象としてそれらの内容を接合し、接合された内容を持つ新しい要素を生成して、生成手段53に渡す。
【0025】
次に、生成手段53は、受け取った新しい要素を用いて、接合前の元のレコードにおける要素の相対的位置関係を継承した新しいレコードを生成し、変換手段54に渡す。変換手段54は、元のレコードを新しいレコードに置き換えて、変換後の構造化文書を生成し、文書出力手段55に渡す。そして、文書出力手段55は、受け取った構造化文書を変換結果として出力する。
【0026】
また、本発明の第2の局面において、変換装置は、文書入力手段51、接合手段52、生成手段53、変換手段54、文書出力手段55、格納手段56、複製手段57、および削除手段58を備える。
【0027】
文書入力手段51は、階層構造の要素の集合で記述された構造化文書の情報を入力し、格納手段56は、構造化文書の情報を格納する。接合手段52は、構造化文書において、ある要素の1段下の層で連続して並ぶ同じ要素名の要素同士の組み合わせと、その組み合わせの各要素より下位のある層の同じ要素名の要素同士であって、その組み合わせの各要素からある層に至る経路上の各層において互いに同じ要素名の要素を経由するような、ある層の要素同士の組み合わせとに含まれる各要素の内容を合成対象として接合し、複数の新しい要素を生成する。
【0028】
生成手段53は、生成された複数の新しい要素を含み、それらの新しい要素の間で元の要素の相対的位置関係を継承した合成部分構造を生成する。複製手段57は、接合されなかった要素より上位の要素から生成された合成部分構造に含まれる新しい要素の下位に、接合されなかった要素の複製を生成する。削除手段58は、不要な元の要素を削除する。
【0029】
変換手段54は、接合手段52、生成手段53、複製手段57、および削除手段58を用いて、構造化文書を合成部分構造から成る合成型構造化文書に変換する。そして、文書出力手段55は、合成型構造化文書を出力する。
【0030】
文書入力手段51により入力された構造化文書は、格納手段56に格納される。次に、接合手段52は、格納手段56から構造化文書の情報を取り出し、合成対象の要素を選択する。ここでは、ある要素の1段下の層に並んでいる兄弟要素のうち、連続して並ぶ複数の同名の要素の組み合わせが第1の合成対象として選択される。また、それらの要素より下位の任意の層に複数の互いに同名の要素が存在し、その層に至る経路上においても互いに同名の要素が連なっているとき、その任意の層の同名の要素の組み合わせが第2の合成対象として選択される。
【0031】
次に、接合手段52は、各合成対象の組み合わせの中で同名の要素の内容を接合し、接合された内容を持つ新しい要素を生成して、生成手段53に渡す。生成手段53は、受け取った新しい要素を含み、それらの要素の間で元の要素の相対的位置関係を継承した合成部分構造を生成して、複製手段57に渡す。
【0032】
複製手段57は、接合されなかった要素が存在する場合、その要素より上位の要素から生成された合成部分構造に含まれる、新しい要素の下位に、その要素の複製を追加する。また、削除手段58は、接合された元の要素と複製された元の要素を削除する。変換手段54は、接合手段52、生成手段53、複製手段57、および削除手段58を制御することにより、元の構造化文書を合成型構造化文書に変換し、文書出力手段55に渡す。そして、文書出力手段55は、受け取った合成型構造化文書を変換結果として出力する。
【0033】
このような変換装置によれば、構造化文書の複数の要素が合成されて1つになるため、文書情報が圧縮され、文書を格納するためのメモリ量が削減される。また、要素の数が減ることで木構造のノードが減少するので、タグ検索の処理速度が向上する。
【0034】
また、変換後の構造化文書においても、元の要素の相対的位置関係が継承されるため、元の階層構造を把握することができ、既存のブラウザ、ビューア等の応用ソフトウェアを適用して、従来の機能をそのまま実行することができる。言い換えれば、既存の応用ソフトウェアから見て、元の文書を変換したことが分からないような透過性が実現される。
【0035】
例えば、図1の文書入力手段51は、後述する図18の入力装置83またはネットワーク接続装置87に対応し、図1の格納手段56は、図18のメモリ82または外部記憶装置85に対応する。また、例えば、図18の接合手段52、生成手段53、変換手段54、文書出力手段55、複製手段57、および削除手段58は、図18のCPU(中央処理装置)81およびメモリ82に対応する。
【0036】
【発明の実施の形態】
以下、図面を参照しながら、本発明の実施の形態を詳細に説明する。
まず、図2のXML文書を処理対象として、合成の対象を指定する処理について説明する。一般に、XML文書は、複数のレコードの繰り返しにより構成される。例えば、図2のXML文書では、<event>から次の</event>までの部分が1つのレコードに対応する。図2のXML文書をXMLプロセッサで解析すると、図3のようなDOMの木構造が得られる。ここでは、図2の8個のEvent要素のうち、最初の4個のみが明示的に示されている。
【0037】
木構造において、一般に、合成の対象となるのは、同じ名前を持つ兄弟の要素からそれぞれ派生した部分木である。図3の木構造を見ると、Eventlist要素61の下には、Event要素62が4個連続して存在する。各Event要素62に連なる部分木は、1つのレコードに対応する。このうち、左から2番目のEvent要素62の下には、Info要素63が2個連続して存在し、1番目、3番目、および4番目のEvent要素62では、Info要素63はそれぞれ1個しか存在しない。
【0038】
2番目のEvent要素62に連なる部分木の中では、子であるInfo要素63が2つ存在し、それぞれのInfo要素63が部分木を成している。このようなEvent要素62を合成の対象にすると、合成の候補となる部分木が重なりあい、処理が煩雑になる。
【0039】
そこで、このEvent要素62の部分木のように、2つ以上の階層にまたがって同名の兄弟要素が連続して並ぶような場合は、合成の対象から外すことにする。したがって、連続して並ぶ同名の兄弟要素のうちの1つからある層に至る経路上の2つ以上の層において、連続して並ぶ同名の兄弟要素の組み合わせが見られない場合に、それらの兄弟要素に連なる部分木が合成の対象として指定される。
【0040】
実際の処理では、変換装置は、各要素のNodeListを見て、兄弟のノードの中で、同じ要素名を持つ要素が連続して出現するようなものを検出し、合成の対象から外す。図3では、Event要素62が4つ連続しているが、2番目のEvent要素62は、下の層に2つの連続するInfo要素63を持っているので、対象外になる。すると、連続したEvent要素62は3番目および4番目のみとなり、これらにそれぞれ連なる部分木が合成の対象として指定される。
【0041】
このように、合成の対象となる部分木が複数個得られた場合、これらの部分木は幾つかの群(グループ)に分割される。2個の部分木を1つの群にまとめた場合、図3では、1番目および2番目のEvent要素62の部分木から成る部分P1が合成の対象外となり、3番目および4番目のEvent要素62の部分木から成る部分P2が合成の対象となる。同様にして、図2の他のEvent要素のうち、P3およびP4の部分がそれぞれ合成の対象となる。
【0042】
また、各部分木の親の要素(ここでは、Event要素)の間には、親の要素の内容である文字データ(Text)が挿入されている。これらの文字データについても、合成の対象となったEvent要素62に付随するものを2つずつ群に分けて、接合の対象とする。
【0043】
次に、図4のXML文書を処理対象として、合成対象として指定された要素を合成する処理について説明する。ここでは、部分木を4つずつ群にまとめて、各群の中の要素を合成するものとする。図4のXML文書をXMLプロセッサで解析すると、図5のようなDOMの木構造が得られる。
【0044】
図5の木構造において、変換装置は、互いの先祖が同じ要素名を持ち、それ自身も同じ要素名を持つようなノード同士で、要素内容を接合して登録する。ここでは、3つのStart要素73が同じ要素名のEvent要素72を親として持っているので、それらの要素内容である“8:40”、“9:00”、および“9:30”が接合される。
【0045】
同様に、4つのInfo要素74がEvent要素72を親として持っているので、それらの要素内容である“出社”、“退社”、“接客”、および“会議”も接合される。このとき、各Event要素72に付随するText(親であるEventlist要素71の内容)も接合されて登録される。
【0046】
接合される2つの要素内容の間には、境界を示すために境界文字(デリミッタ)を挿入する。一方の部分木には存在し、他方の部分木には存在しない(つまり、欠損している)要素については、接合の際に、存在している要素内容の後に境界文字だけを追加して、要素の欠損を表すことにする。この場合、新しい要素の内容には、境界文字が連続して挿入されることになる。
【0047】
こうして、図5の部分木を合成した後の木構造は、図6のようになる。図6において、Event要素72に連なる部分木が合成部分木に対応し、Text75が合成部分木の要素内容を表し、“@”が境界文字に対応する。図5では、左から2番目のEvent要素72にStart要素73が欠損しているので、図6のStart要素73の要素内容“8:40@@9:00@9:30”において、2つの@が連続して挿入されている。
【0048】
また、図6の木構造に対応する合成後のXML文書は、図7のようになる。図7のXML文書では、<event>から次の</event>までの部分が合成部分木のレコードに対応する。このレコードは、要素を合成して得られた合成部分構造を表す。
【0049】
図6および図7に示されるように、合成部分木においては、要素内容が出現順に接合され、要素内容の間に境界文字@が挿入される。また、接合すべき内容がない場合は、空白を入れずに次の@が挿入される。このような接合方法によれば、境界文字@の位置と個数から元の部分木の構造を復元することができる。例えば、Text75において“A@B”と記述されていれば、初めの2つのEvent要素72に対応する要素内容が“A”および“B”であることが分かる。
【0050】
図6では、Event要素72の内容“第一@第二@第三@第四”は、1番目、2番目、3番目、および4番目のEvent要素72の内容が、それぞれ、“第一”、“第二”、“第三”、および“第四”であることを表す。また、Info要素74の内容“出社@退社@接客@会議”は、1番目、2番目、3番目、および4番目のEvent要素72に連なるInfo要素74の内容が、それぞれ、“出社”、“退社”、“接客”、および“会議”であることを表す。
【0051】
一方、Start要素73の内容“8:40@@9:00@9:30”は、1番目、3番目、および4番目のEvent要素72に連なるStart要素73の内容が、それぞれ、“8:40”、“9:00”、および“9:30”であり、2番目のEvent要素72にはStart要素73が欠損していることを表す。したがって、このような合成部分木の要素内容から、図5の木構造を容易に復元することができる。
【0052】
また、合成部分木のデータを保存する場合、変換装置は、その部分木の親から任意の要素に至るまでに経由する要素名の組み合わせと、接合した要素内容の文字列を、テーブルに登録する。このような保存方法によれば、異なる部分木に属する要素でも、経由する要素名の組み合わせが等しければ、テーブルの同じ欄にそれらの要素内容を登録することができ、接合が可能になる。
【0053】
図8は、図6の合成部分木を登録したハッシュ表の例を示している。図8のハッシュ表では、ハッシュ値H1の欄に、Info要素の接合された要素内容が、親の要素名Eventと要素名Infoの組み合わせとともに登録されている。また、ハッシュ値H2の欄には、Start要素の接合された要素内容が、要素名EventとStartの組み合わせとともに登録されている。
【0054】
例えば、ハッシュ値H1およびH2は、それぞれ、対応する要素名の組み合わせに基づいて算出される。また、こうして生成されたハッシュ表を元にして、DOMの木構造に合成部分木が追加される。
【0055】
上述した合成処理では、XML文書の構造が一般的な木構造である場合を想定しているが、完全に同じ構造の部分木の繰返しにより木構造が構成されている場合は、より簡便な処理を採用することができる。この場合、XML文書をDOMの木構造に変換して要素同士の位置関係を解析しなくても、あらかじめ要素の位置関係をソフトウェアに記述しておけば、内容を接合することができる。そこで、変換装置は、記述された位置関係からハッシュ値を計算して、ハッシュ表の該当個所に要素内容を登録する。
【0056】
図9は、このような簡易型合成処理で用いられるハッシュ表の例を示している。簡易型合成処理は、同じ部分構造が規則的に繰り返される文書に対して適用されるため、要素の欠損がないことを前提としている。図9のハッシュ表では、ハッシュ値H3の欄に、図8のInfo要素と同様の要素内容が登録されているが、ハッシュ値H4の欄には、図8のStart要素とは異なり、欠損のない要素内容が登録されている。例えば、ハッシュ値H3およびH4は、それぞれ、対応する要素の位置または要素名等に基づいて算出される。
【0057】
次に、合成後のXML文書を用いたタグ検索の例について説明する。合成後のXML文書のタグ検索において、変換装置は、文書内の要素の内容に含まれる2つの境界文字の間の文字列と検索キーの文字列とを照合し、検索キーに対応する文字列を検出する。次に、検出された文字列の前にある境界文字の順位を求め、同じ合成部分木における他の要素の内容において、その順位に対応する境界文字と次の境界文字の間の文字列を抽出する。そして、これらの文字列から合成前のXML文書の対応する部分を復元し、検索結果として出力する。
【0058】
図10に示すXML文書を処理対象とした場合、変換装置は、同じ要素名“個人”の要素を上位に持ち、かつ、それ自身が同じ要素名を持つような要素に属する内容同士を、境界文字を用いて接合する。これにより、“姓”、“名”、および“旧姓”の要素の内容が接合される。そして、元の要素のノードを消去すると、図11のようなXML文書が生成される。
【0059】
次に、生成されたXML文書のタグ検索において、ユーザが“鈴木”を検索キーとして指定すると、変換装置は、要素内容に“鈴木”を含む群の合成部分木を検索する。図11の文書では、“鈴木”を含む群が1つだけしか存在しないので、この文書の全体が検索結果として得られる。次に、変換装置は、得られた結果において、“鈴木”に対応する部分だけを残して、他の部分は削除する。その結果、“佐藤”に対応する部分が削除され、図12のような検索結果が出力される。
【0060】
このような変換処理によれば、XML文書の複数の要素が合成されて1つになるため、文書情報が大幅に圧縮される。また、要素の数が減ることで木構造のノードが減少するので、タグ検索に要する探索時間が大幅に削減される。
【0061】
次に、図13から図17までを参照しながら、変換装置が行う処理についてより詳細に説明する。
図13は、XML文書の変換を含むタグ検索処理のフローチャートである。まず、ユーザは、1つの群にまとめられるレコードの数を指定する数値nを変換装置に入力する(ステップS21)。この数値nは、要素の合成処理において、レコードを組み合わせて群にまとめる単位として用いられる。次に、ユーザは、処理対象となるXML文書を入力する(ステップS22)。
【0062】
次に、変換装置は、合成対象指定処理を行って、入力されたXML文書の中で、合成するn個のレコードの組み合わせ(群)を指定し(ステップS23)、要素の合成処理を行う(ステップS24〜S27)。
【0063】
合成処理において、変換装置は、まず、指定されたすべての組み合わせについての合成が終了したか否かをチェックする(ステップS24)。合成されていない組み合わせがあれば、その組み合わせに含まれるn個のレコードの間で、相対的に同じ位置関係にある要素の内容を接合し、1つ以上の新しい要素を生成する(ステップS25)。
【0064】
次に、生成された新しい要素を元に、元のレコードと同じような要素の相対的位置関係を継承した新しいレコードを生成する(ステップS26)。そして、元のn個のレコードを削除して、新しいレコードに置き換え(ステップS27)、ステップS24以降の処理を繰り返す。
【0065】
ステップS24において、すべての組み合わせについての合成が終了すると、復元処理を行って(ステップS28)、処理を終了する。この復元処理では、合成処理により変換された文書を検索キーで検索し、あるレコードで検索キーと同じ部分文字列を内容に含む要素が検出されると、そのレコードにおける他の各要素の内容においても、検出された部分文字列の位置に対応する部分文字列を抽出する。そして、これらの部分文字列から、検索キーを含む変換前の複数個のレコードを復元し、検索結果として出力する。
【0066】
次に、図14は、図13のステップS23で行われる合成対象指定処理のフローチャートである。この処理では、兄弟要素の中で同じ名前の要素が複数個連続する場合、それらの要素を所定数の要素から成る複数の群に分割し、各群に含まれる要素に基づいて、合成対象が指定される。
【0067】
変換装置は、まず、同名の兄弟要素をn個単位の群に分けるために、数値nを合成対象指定処理に入力する(ステップS31)。次に、XML文書にXMLプロセッサを適用して、木構造から成るXML文書のオブジェクト(DOM)を算出し(ステップS32)、要素数の集計処理を行う(ステップS33〜S35)。
【0068】
この処理では、まず、木構造のすべての要素に関する集計が終了したか否かをチェックする(ステップS33)。集計が終了していなければ、木構造から各要素に属するNodeList(連なるノードの一覧)を取得してメモリに格納する(ステップS34)。そして、各NodeList内で兄弟の関係にある要素のノードにおいて、同じ要素名のものが連続して出現する回数を集計し(ステップS35)、ステップS33以降の処理を繰り返す。例えば、要素a、要素a、要素bが順に出現した場合、要素aの連続出現回数は2回となる。
【0069】
ステップS33において、すべての要素に関する集計が終了すると、次に、木構造の兄弟の中で連続する同じ要素名の要素の各々について、その祖先または子孫のノードにおいて、やはり、兄弟の関係にある同じ要素名の連続があるか否かをチェックする(ステップS36)。
【0070】
そのような要素名の連続が検出されなければ、現在注目している層の兄弟の中でのみ同じ要素名の連続が存在することになるので、連続するそれらの要素を合成対象としてn個ずつの群に分割し、n個の各ノードの位置を記録する(ステップS37)。そして、得られたn個ずつの要素の群とそれらの位置情報を出力し(ステップS38)、処理を終了する。
【0071】
また、ステップS36において、兄弟の関係にある同じ要素名の連続が祖先または子孫から検出されれば、注目している層を含む複数の層において同じ要素名の兄弟要素の連続が存在することになるので、そのような祖先または子孫を持つ要素を合成対象から外す。
【0072】
次に、図15は、図13のステップS24〜S27で行われる合成処理のフローチャートである。変換装置は、まず、合成対象指定処理から出力された、n個ずつの同名の兄弟要素の群とそれらの位置情報を、合成処理に入力し(ステップS41)、入力されたすべての群についての合成が終了したか否かをチェックする(ステップS42)。
【0073】
合成が終了していない群があれば、次に、その群のすべての同名の兄弟要素aについての処理が終了したか否かをチェックする(ステップS43)。そして、処理が終了していない要素aがあれば、その要素aに連なる部分木を部分木aとして、部分木aの要素を探索する(ステップS44〜S51)。同じ群に属する要素名aの2つの要素を仮にa1、a2と呼ぶことにすると、それらの要素に連なる部分木は、それぞれ部分木a1、部分木a2となる。
【0074】
部分木aの探索処理では、まず、部分木aのルートである要素aから下のすべての要素を探索したか否かをチェックする(ステップS44)。探索していない任意の要素cがあれば、要素aからその要素cに至るまでの経路を探索し、経路上の要素の名前の文字列を要素の流れとして記録する(ステップS45)。
【0075】
例えば、要素a、b、cの順に上から辿った場合、(要素a)+(要素b)+(要素c)が要素の流れとして記録される。部分木a1に属する要素の流れ(要素a)+(要素b)+(要素c)と、部分木a2に属する要素の流れ(要素a)+(要素b)+(要素c)は、同じ要素の流れになる。
【0076】
次に、記録された要素の流れの文字列を元に、ハッシュ関数の値(要素cのハッシュ値)を計算する(ステップS46)。ここでは、例えば、要素名a、b、cの文字列を文字符号に変換して得られる整数を、それぞれIa、Ib、Icとして、Ia*256、Ib*16、およびIcの排他的論理和EX(abc)を求め、次式によりハッシュ値を計算する。
ハッシュ値=EX(abc)%m
ただし、mは、256に対して素な整数であり、%mは、mによる剰余演算を表す。このとき、部分木a1と部分木a2にそれぞれ属する同じ要素の流れ同士は、互いに同じハッシュ値を持つことになる。
【0077】
次に、現在の部分木における要素cが、同じ群の中で処理済みの一連の部分木aにはなかった新しい要素か否かをチェックする(ステップS47)。要素cが新しい要素であれば、ハッシュ表における要素cのハッシュ値の欄に、それまでに処理した部分木aの数(要素aの数)だけ、境界文字@を並べて登録する(ステップS48)。@の数が多い場合は、連長表現を用いてもよい。
【0078】
次に、同じ群の中で処理済みの一連の部分木aとは異なり、現在の部分木において要素cが欠損しているか否かをチェックする(ステップS49)。要素cが欠損していれば、ハッシュ表における要素cのハッシュ値の欄に、境界文字@を追加して登録する(ステップS50)。また、要素cが欠損していなければ、ハッシュ表における要素cのハッシュ値の欄に、要素cの内容と境界文字@を追加して登録する(ステップS51)。そして、ステップS44以降の処理を繰り返す。
【0079】
ステップS46〜S52の処理により、異なる部分木に属する要素でも、要素の流れが等しいもの同士は、同じハッシュ値を持つことになり、それらの要素の内容は、同じハッシュ表の同じハッシュ値に対応する欄で、境界文字@を用いて接合される。
【0080】
ステップS44において、すべての要素の探索が終了すると、ステップS43以降の処理を繰り返す。そして、ステップS43において、すべての同名の兄弟要素aについての処理が終了すると、同じ群に属するn通りの部分木の接合が終了したことになる。そこで、次に、得られたハッシュ表の登録内容を元に、合成部分木を生成する(ステップS52)。このとき、接合されなかった要素があれば、それより上位の要素から生成された合成部分木に含まれる、新しい要素の下位に、その接合されなかった要素の複製を生成する。
【0081】
次に、同じ群に属する処理済みのn通りの部分木を削除し、合成部分木のみを残して(ステップS53)、ステップS42以降の処理を繰り返す。そして、ステップS42において、すべての群についての合成が終了すると、処理を終了する。このような合成処理によれば、複数の対応する要素内容が接合され、元の要素内容が削除されるので、文書が圧縮される。圧縮された文書は、外部記憶装置等に保存される。
【0082】
次に、図16は、圧縮されたXML文書の上でタグ検索を行い、検索結果を出力する復元処理のフローチャートである。変換装置は、まず、圧縮されたXML文書を復元処理に入力し(ステップS61)、ユーザから指定された検索キーの文字列を復元処理に入力する(ステップS62)。
【0083】
次に、図27と同様の処理により、圧縮されたXML文書の上でタグ検索を行う(ステップS63)。上述した合成処理では、元のXML文書で同じ要素名aを持つ連続した兄弟要素に連なる部分木を合成したが、基本的な要素の位置関係は変化していないため、透過性は保たれている。
【0084】
合成部分木の要素内容の中で、検索キーと同じ部分文字列が検出された場合、その文字列の前に登録されている境界文字@の個数dを計算する(ステップS64)。このdの値により、合成前の各部分木のうち、最初からd+1番目の部分木に検索キーに相当する部分文字列があったことが分かる。
【0085】
このとき、同じ要素内容の中の複数の個所で検索キーと同じ部分文字列が検出されれば、検出されたすべての文字列に対するdの値を計算する。k個の同じ部分文字列(0<k≦n)が検出された場合、各々に対応する境界文字@の個数としてd1 ,...,dk が計算される。
【0086】
次に、同名の複数の要素aに連なる合成部分木のうち、検索キーと同じ部分文字列が検出された要素内容を含む合成部分木を、メモリ上に格納する(ステップS65)。以下の分離処理は、メモリ上に格納された合成部分木のみに対して行われるが、外部記憶装置に保存されている合成部分木は変更されない。
【0087】
次に、メモリ上のすべての合成部分木について処理を行ったか否かをチェックする(ステップS66)。未処理の合成部分木があれば、次に、未処理のある合成部分木のすべての要素を処理したか否かをチェックする(ステップS67)。
【0088】
未処理の要素があれば、その要素の内容において、di 番目(i=1,...,k)の“@”とdi +1番目の“@”に囲まれた部分文字列を残して、残りの文字列を削除する(ステップS68)。そして、ステップS67以降の処理を繰り返す。このような文字列の削除処理は、木構造全体の一部分のみに対して行われるので、削除処理に伴う処理速度の劣化は防止される。
【0089】
これにより、すべての要素内容において、同じdi の値の組み合わせに対応する個所の部分文字列が抽出され、1つの合成部分木を構成するn個の元の部分木のうち、検索キーを要素内容に含むものだけが再現される。
【0090】
ステップS67において、すべての要素の処理が終了すると、次に、再現された元の部分木をXML文書に変換し(ステップS69)、生成されたXML文書を出力して(ステップS70)、ステップS66以降の処理を繰り返す。そして、ステップS66において、メモリ上のすべての合成部分木の処理が終われば、復元処理を終了する。
【0091】
ところで、欠損等がなく、完全に同じ部分構造が繰り返される文書の場合、DOMを生成する必要はなく、図14の合成対象指定処理と図15の合成処理の代わりに、上述した簡易型合成処理を用いることができる。
【0092】
図17は、このような簡易型合成処理のフローチャートである。変換装置は、まず、数値nを簡易型合成処理に入力し(ステップS71)、図4のEvent要素のように、同じ層で連続する要素名aを入力する(ステップS72)。そして、要素名aの出現頻度を表す変数Faを初期化してFa=0とおき(ステップS73)、登録に用いるハッシュ表の内容を初期化する(ステップS74)。
【0093】
次に、XML文書内のすべてのデータの走査が終了したか否かをチェックする(ステップS75)。走査されていない部分があれば、その部分から連続して存在する要素名aを検出し(ステップS76)、Faに1を加算する(ステップS77)。
【0094】
次に、要素aに連なる各要素bを検出し(ステップS78)、ハッシュ表の要素bのハッシュ値に対応する欄に、要素bの内容と境界文字@を追加登録する(ステップS79)。ここでは、要素bの親は要素aであることが分かっているため、要素bのハッシュ値の計算では、要素aの文字列を省略することができる。そこで、例えば、要素bの文字列を文字符号に変換して得られる整数をIbとして、次式によりハッシュ値が計算される。
ハッシュ値=Ib%m
次に、Faがnの倍数になったか否かをチェックし(ステップS80)、Faがnの倍数でなければ、ステップS75以降の処理を繰り返す。これにより、複数の要素aに連なる同じ層の要素の内容同士が接合される。
【0095】
ステップS80において、Faがnの倍数であれば、1つの群の合成処理が終了したことになるので、ハッシュ表に登録された、接合された要素内容を元に、部分的な文書構造を生成し、出力する(ステップS81)。次に、次の群の合成処理に備えて、ハッシュ表で要素bのために使用された欄を初期化し(ステップS82)、ステップS75以降の処理を繰り返す。
【0096】
そして、ステップS75において、すべてのデータの走査が終了すると、処理を終了する。こうして生成されたXML文書の上でタグ検索を行う場合は、やはり、DOMを利用するの有効であるので、上述した図16の復元処理が用いられる。
【0097】
以上説明した実施形態においては、主として、XML文書のタグ検索を例に用いているが、本発明は、XML文書以外の構造化文書に対しても適用可能である。
【0098】
本実施形態の変換装置は、例えば、図18に示すような情報処理装置(コンピュータ)を用いて構成される。図18の情報処理装置は、CPU(中央処理装置)81、メモリ82、入力装置83、出力装置84、外部記憶装置85、媒体駆動装置86、およびネットワーク接続装置87を備え、それらはバス88により互いに接続されている。
【0099】
メモリ82は、例えば、ROM(read only memory)、RAM(random access memory)等を含み、処理に用いられるプログラムとデータを格納する。CPU81は、メモリ82を利用してプログラムを実行することにより、必要な処理を行う。
【0100】
入力装置83は、例えば、キーボード、ポインティングデバイス、タッチパネル等であり、ユーザからの指示や情報の入力に用いられる。出力装置84は、例えば、ディスプレイ、プリンタ、スピーカ等であり、ユーザへの問い合わせや処理結果の出力に用いられる。
【0101】
外部記憶装置85は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク(magneto-optical disk)装置、テープ装置等である。情報処理装置は、この外部記憶装置85に、上述のプログラムとデータを保存しておき、必要に応じて、それらをメモリ82にロードして使用する。
【0102】
媒体駆動装置86は、可搬記録媒体89を駆動し、その記録内容にアクセスする。可搬記録媒体89としては、メモリカード、フロッピーディスク、CD−ROM(compact disk read only memory )、光ディスク、光磁気ディスク等、任意のコンピュータ読み取り可能な記録媒体が用いられる。ユーザは、この可搬記録媒体89に上述のプログラムとデータを格納しておき、必要に応じて、それらをメモリ82にロードして使用する。
【0103】
ネットワーク接続装置87は、LAN(local area network)等の任意の通信ネットワークに接続され、通信に伴うデータ変換を行う。また、情報処理装置は、上述のプログラムとデータをネットワーク接続装置87を介して、サーバ等の他の装置から受け取り、必要に応じて、それらをメモリ82にロードして使用する。
【0104】
図19は、図18の情報処理装置にプログラムとデータを供給することのできるコンピュータ読み取り可能な記録媒体を示している。可搬記録媒体89やサーバ90のデータベース91に保存されたプログラムとデータは、メモリ82にロードされる。そして、CPU81は、そのデータを用いてそのプログラムを実行し、必要な処理を行う。このとき、サーバ90は、プログラムとデータを伝送する伝搬信号を生成し、ネットワーク上の任意の伝送媒体を介して、情報処理装置に送信する。
(付記1) 階層構造の要素の集合で記述され、それぞれが1つ以上の要素を含む複数のレコードから成る構造化文書の情報を入力する文書入力手段と、
前記構造化文書の2つ以上のレコード間で、相対的に同じ位置にある要素の内容を接合して、新しい要素を生成する接合手段と、
前記新しい要素を含み、前記2つ以上のレコードにおける要素の相対的位置関係を継承した新しいレコードを生成する生成手段と、
前記2つ以上のレコードを前記新しいレコードに置き換えて、前記構造化文書を変換する変換手段と、
変換後の構造化文書を出力する文書出力手段と
を備えることを特徴とする変換装置。
(付記2) 検索キーを入力するキー入力手段と、前記変換後の構造化文書を該検索キーで検索し、あるレコードの要素の内容から前記検索キーに対応する文字列が検出されたとき、該あるレコードにおける他の要素の内容から、検出された文字列の位置に対応する文字列を抽出し、該検出された文字列と抽出された文字列から該検索キーを含む変換前のレコードを復元し、検索結果として出力する検索手段とをさらに備えることを特徴とする付記1記載の変換装置。
(付記3) 階層構造の要素の集合で記述された構造化文書の情報を入力する文書入力手段と、
前記構造化文書の情報を格納する格納手段と、
前記構造化文書において、ある要素の1段下の層で連続して並ぶ同じ要素名の要素同士の組み合わせと、該組み合わせの各要素より下位のある層の同じ要素名の要素同士であって、該組み合わせの各要素から該ある層に至る経路上の各層において互いに同じ要素名の要素を経由するような、該ある層の要素同士の組み合わせとに含まれる各要素の内容を合成対象として接合し、複数の新しい要素を生成する接合手段と、
前記複数の新しい要素を含み、該複数の新しい要素の間で元の要素の相対的位置関係を継承した合成部分構造を生成する生成手段と、
接合されなかった要素より上位の要素から生成された合成部分構造に含まれる新しい要素の下位に、該接合されなかった要素の複製を生成する複製手段と、
不要な元の要素を削除する削除手段と、
前記接合手段、生成手段、複製手段、および削除手段を用いて、前記構造化文書を合成部分構造から成る合成型構造化文書に変換する変換手段と、
前記合成型構造化文書を出力する文書出力手段と
を備えることを特徴とする変換装置。
(付記4) 前記生成手段は、前記ある層に至る経路上の2つ以上の層において、連続して並ぶ同じ要素名の要素同士の組み合わせが見られないとき、前記合成部分構造を生成することを特徴とする付記3記載の変換装置。
(付記5) 前記接合手段は、前記ある要素の1段下の層の要素同士の組み合わせを、所定数の要素から成る複数の群に分割し、各群に含まれる該所定数の要素に基づいて、前記合成対象を指定することを特徴とする付記3記載の変換装置。
(付記6) 前記接合手段は、接合される2つの内容の間に境界文字を挿入して、前記新しい要素の内容を生成することを特徴とする付記3記載の変換装置。
(付記7) 前記接合手段は、前記合成対象となる要素の内容が欠損しているとき、前記新しい要素の内容に前記境界文字を連続して挿入することを特徴とする付記6記載の変換装置。
(付記8) 検索キーを入力するキー入力手段と、前記合成型構造化文書内の要素の内容に含まれる2つの境界文字の間の文字列と該検索キーの文字列とを照合し、ある合成部分構造の要素の内容から該検索キーに対応する文字列が検出されたとき、検出された文字列の前にある境界文字の順位を求め、該ある合成部分構造における他の要素の内容において、該順位に対応する境界文字と次の境界文字の間の文字列を抽出し、該検出された文字列と抽出された文字列から変換前の構造化文書の対応する部分を復元し、検索結果として出力する検索手段とをさらに備えることを特徴とする付記6記載の変換装置。
(付記9) コンピュータのためのプログラムを記録した記録媒体であって、該プログラムは、
階層構造の要素の集合で記述され、それぞれが1つ以上の要素を含む複数のレコードから成る構造化文書の2つ以上のレコード間で、相対的に同じ位置にある要素の内容を接合して、新しい要素を生成し、
前記新しい要素を含み、前記2つ以上のレコードにおける要素の相対的位置関係を継承した新しいレコードを生成し、
前記2つ以上のレコードを前記新しいレコードに置き換えて、前記構造化文書を変換する
処理を前記コンピュータに実行させることを特徴とするコンピュータ読み取り可能な記録媒体。
(付記10) コンピュータにプログラムを伝送する伝搬信号であって、該プログラムは、
階層構造の要素の集合で記述され、それぞれが1つ以上の要素を含む複数のレコードから成る構造化文書の2つ以上のレコード間で、相対的に同じ位置にある要素の内容を接合して、新しい要素を生成し、
前記新しい要素を含み、前記2つ以上のレコードにおける要素の相対的位置関係を継承した新しいレコードを生成し、
前記2つ以上のレコードを前記新しいレコードに置き換えて、前記構造化文書を変換する
処理を前記コンピュータに実行させることを特徴とする伝搬信号。
【0105】
【発明の効果】
本発明によれば、構造化文書の要素の数が減り、文書が圧縮されるため、構造化文書を格納するためのメモリ量が削減される。部分木の合成を行っても、要素間の基本的な関係は維持されるため、従来の応用ソフトウェアの処理に対する変換による影響はなく、処理の透過性が保たれる。
【0106】
また、木構造においてノードが減少するために、探索に要する処理時間が大幅に削減され、タグ検索の処理速度が向上する。例えば、オフラインで、元の構造化文書から合成部分木をあらかじめ生成しておけば、随時、その合成部分木をタグ検索に用いることができ、変換処理の時間はタグ検索の時間には含まれない。
【図面の簡単な説明】
【図1】本発明の変換装置の原理図である。
【図2】第1の処理対象のXML文書を示す図である。
【図3】第1の処理対象の木構造を示す図である。
【図4】第2の処理対象のXML文書を示す図である。
【図5】第2の処理対象の木構造を示す図である。
【図6】合成後の木構造を示す図である。
【図7】第1の合成後のXML文書を示す図である。
【図8】第1のハッシュ表を示す図である。
【図9】第2のハッシュ表を示す図である。
【図10】第3の処理対象のXML文書を示す図である。
【図11】第2の合成後のXML文書を示す図である。
【図12】検索結果を示す図である。
【図13】XML文書の変換を含むタグ検索処理のフローチャートである。
【図14】合成対象指定処理のフローチャートである。
【図15】要素合成処理のフローチャートである。
【図16】復元処理のフローチャートである。
【図17】簡易型合成処理のフローチャートである。
【図18】情報処理装置の構成図である。
【図19】記録媒体を示す図である。
【図20】XML文書の構成部分を示す図である。
【図21】タグの書き方を示す図である。
【図22】要素の階層構造を示す図である。
【図23】構造化文書の構成と処理上の区分との関係を示す図である。
【図24】XMLプロセッサの処理を示す図である。
【図25】XML文書を示す図である。
【図26】DOMの木構造を示す図である。
【図27】DOMを用いたタグ検索処理のフローチャートである。
【図28】SAXを用いたタグ検索処理のフローチャートである。
【符号の説明】
11 XML宣言
12 文書型定義
13 XML実現値
21 <要素名>
22 </要素名>
23 <要素名/>
31 XML文書
32 XMLプロセッサ
33 木構造
34 応用ソフトウェア
41 Document
42 NodeList
43 Element
44、75 Text
45 NamedNodeMap
46 Attr
51 文書入力手段
52 接合手段
53 生成手段
54 変換手段
55 文書出力手段
56 格納手段
57 複製手段
58 削除手段
61、71 Eventlist
62、72 Event
63、74 Info
73 Start
81 CPU
82 メモリ
85 外部記憶装置
86 媒体駆動装置
87 ネットワーク接続装置
88 バス
89 可搬記録媒体
90 サーバ
91 データベース

Claims (5)

  1. 階層構造の要素の集合で記述され、それぞれが1つ以上の要素を含む複数のレコードから成る構造化文書の情報を入力する文書入力手段と、
    前記構造化文書を表す文書オブジェクトモデルの木構造において各要素に属するノードリストを取得し、各ノードリスト内で兄弟の関係にある複数の要素のノードにおいて同じ要素名のノードが連続して出現する場合に、連続して出現する同じ要素名のノードに対応する要素を2つ以上のレコード間で相対的に同じ位置にある要素として特定し、該相対的に同じ位置にある要素の内容を接合して、該相対的に同じ位置にある要素の要素名と同じ要素名を有する新しい要素を生成する接合手段と、
    前記新しい要素を含み、前記2つ以上のレコードにおける要素の相対的位置関係を継承した新しいレコードを生成する生成手段と、
    前記2つ以上のレコードを前記新しいレコードに置き換えて、前記構造化文書を変換する変換手段と、
    変換後の構造化文書を出力する文書出力手段と
    を備えることを特徴とする変換装置。
  2. 前記接合手段は、前記相対的に同じ位置にある要素の内容に含まれる要素であって、要素名がそれぞれ異なる2つ以上の要素の内容を接合して、前記新しい要素を生成し、前記変換装置は、検索キーを入力するキー入力手段と、前記変換後の構造化文書を該検索キーで検索し、接合された該2つ以上の要素を含むあるレコードであって、各接合された要素の内容として前記2つ以上のレコード間で相対的に同じ位置にある要素の内容を順番に接合した内容を有する該あるレコードの要素の内容から、前記検索キーに対応する文字列が検出されたとき、該あるレコードにおける他の要素の内容から、検出された文字列の位置に対応する文字列を抽出し、該検出された文字列と抽出された文字列から該検索キーを含む変換前のレコードを復元し、検索結果として出力する検索手段とをさらに備えることを特徴とする請求項1記載の変換装置。
  3. 階層構造の要素の集合で記述された構造化文書の情報を入力する文書入力手段と、
    前記構造化文書の情報を格納する格納手段と、
    前記構造化文書において、ある要素の1段下の層に含まれる複数の要素のノードにおいて連続して出現する同じ要素名の要素同士の第1の組み合わせと、該第1の組み合わせの各要素より下位のある層の同じ要素名の要素同士であって、該第1の組み合わせの各要素から該ある層に至る経路上の各層において互いに同じ要素名の要素を経由するような、該ある層の要素同士の第2の組み合わせとに含まれる各要素の内容を合成対象として接合し、該第1の組み合わせの各要素の要素名と同じ要素名を有する第1の新しい要素と該第2の組み合わせの各要素の要素名と同じ要素名を有する第2の新しい要素とを含む複数の新しい要素を生成する接合手段と、
    前記複数の新しい要素を含み、該複数の新しい要素の間で元の要素の相対的位置関係を継承した合成部分構造を生成する生成手段と、
    接合されなかった要素より上位の要素から生成された合成部分構造に含まれる新しい要素の下位に、該接合されなかった要素の複製を生成する複製手段と、
    不要な元の要素を削除する削除手段と、
    前記接合手段、生成手段、複製手段、および削除手段を用いて、前記構造化文書を合成部分構造から成る合成型構造化文書に変換する変換手段と、
    前記合成型構造化文書を出力する文書出力手段と
    を備えることを特徴とする変換装置。
  4. 前記生成手段は、前記ある層に至る経路上の2つ以上の層において、連続して並ぶ同じ要素名の要素同士の組み合わせが見られないとき、前記合成部分構造を生成することを特徴とする請求項3記載の変換装置。
  5. コンピュータのためのプログラムを記録した記録媒体であって、該プログラムは、
    階層構造の要素の集合で記述され、それぞれが1つ以上の要素を含む複数のレコードから成る構造化文書を表す文書オブジェクトモデルの木構造において各要素に属するノードリストを取得し、各ノードリスト内で兄弟の関係にある複数の要素のノードにおいて同じ要素名のノードが連続して出現する場合に、連続して出現する同じ要素名のノードに対応する要素を2つ以上のレコード間で相対的に同じ位置にある要素として特定し、該相対的に同じ位置にある要素の内容を接合して、該相対的に同じ位置にある要素の要素名と同じ要素名を有する新しい要素を生成し、
    前記新しい要素を含み、前記2つ以上のレコードにおける要素の相対的位置関係を継承した新しいレコードを生成し、
    前記2つ以上のレコードを前記新しいレコードに置き換えて、前記構造化文書を変換する
    処理を前記コンピュータに実行させることを特徴とするコンピュータ読み取り可能な記録媒体。
JP2000296161A 2000-09-28 2000-09-28 階層構造の構造化文書を変換する装置 Expired - Fee Related JP4657432B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2000296161A JP4657432B2 (ja) 2000-09-28 2000-09-28 階層構造の構造化文書を変換する装置
US09/819,729 US7519903B2 (en) 2000-09-28 2001-03-29 Converting a structured document using a hash value, and generating a new text element for a tree structure

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000296161A JP4657432B2 (ja) 2000-09-28 2000-09-28 階層構造の構造化文書を変換する装置

Publications (2)

Publication Number Publication Date
JP2002108850A JP2002108850A (ja) 2002-04-12
JP4657432B2 true JP4657432B2 (ja) 2011-03-23

Family

ID=18778481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000296161A Expired - Fee Related JP4657432B2 (ja) 2000-09-28 2000-09-28 階層構造の構造化文書を変換する装置

Country Status (2)

Country Link
US (1) US7519903B2 (ja)
JP (1) JP4657432B2 (ja)

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7072985B1 (en) * 2001-05-02 2006-07-04 Mks Instruments, Inc. Method and apparatus for two phase structured message to tagged message translation
EP1260911A1 (fr) * 2001-04-27 2002-11-27 Koninklijke Philips Electronics N.V. Structure de données interne pour application destinée à s'interfacer avec une interface pour un document de type HTML ou XML
JP3692054B2 (ja) * 2001-05-21 2005-09-07 株式会社東芝 文書構造変換方法および文書構造変換装置およびプログラム
GB0119488D0 (en) * 2001-08-10 2001-10-03 Cellectivity Ltd E-commerce method for mobile telephones
WO2003019411A2 (en) * 2001-08-23 2003-03-06 Xmlcities, Inc. Method and apparatus for extensible stylesheet designs
US7025268B2 (en) 2001-12-17 2006-04-11 Zih Corporation XML printer system
US6908034B2 (en) 2001-12-17 2005-06-21 Zih Corp. XML system
US7096421B2 (en) * 2002-03-18 2006-08-22 Sun Microsystems, Inc. System and method for comparing hashed XML files
WO2003107174A1 (en) * 2002-06-13 2003-12-24 Cerisent Corporation Xml database mixed structural-textual classification system
WO2003107222A1 (en) * 2002-06-13 2003-12-24 Cerisent Corporation Parent-child query indexing for xml databases
US7539940B2 (en) * 2002-10-09 2009-05-26 Microsoft Corporation System and method for converting between text formatting or markup language formatting and outline structure
US7761459B1 (en) * 2002-10-15 2010-07-20 Ximpleware, Inc. Processing structured data
US7133857B1 (en) * 2002-10-15 2006-11-07 Ximpleware, Inc. Processing structured data
WO2004061713A1 (ja) * 2002-12-27 2004-07-22 Fujitsu Limited 構造化文書の構造変換装置、構造変換方法、記録媒体
US20040193609A1 (en) * 2003-03-26 2004-09-30 Sony Corporation Master content directory service server for providing a consolidated network-wide content directory
US8250093B2 (en) 2003-08-25 2012-08-21 International Business Machines Corporation Method and system for utilizing a cache for path-level access control to structured documents stored in a database
US7519574B2 (en) * 2003-08-25 2009-04-14 International Business Machines Corporation Associating information related to components in structured documents stored in their native format in a database
US7814047B2 (en) * 2003-08-25 2010-10-12 Oracle International Corporation Direct loading of semistructured data
US8150818B2 (en) * 2003-08-25 2012-04-03 International Business Machines Corporation Method and system for storing structured documents in their native format in a database
US7792866B2 (en) * 2003-08-25 2010-09-07 International Business Machines Corporation Method and system for querying structured documents stored in their native format in a database
US8775468B2 (en) * 2003-08-29 2014-07-08 International Business Machines Corporation Method and system for providing path-level access control for structured documents stored in a database
US8229932B2 (en) 2003-09-04 2012-07-24 Oracle International Corporation Storing XML documents efficiently in an RDBMS
US8694510B2 (en) * 2003-09-04 2014-04-08 Oracle International Corporation Indexing XML documents efficiently
US20050055352A1 (en) * 2003-09-08 2005-03-10 Sony Corporation Content directory and synchronization bridge
US20050060370A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Version based content distribution and synchronization system and method
US20050060578A1 (en) * 2003-09-17 2005-03-17 Sony Corporation Method of and system for authentication downloading
US7925790B2 (en) 2003-09-17 2011-04-12 Sony Corporation Middleware filter agent between server and PDA
US7735000B2 (en) * 2003-09-25 2010-06-08 Sony Corporation Information and content exchange document type definitions to support content distribution
US8689113B2 (en) 2004-01-22 2014-04-01 Sony Corporation Methods and apparatus for presenting content
US20050165941A1 (en) * 2004-01-22 2005-07-28 Edward Eytchison Methods and apparatuses for streaming content
IL161874A (en) * 2004-05-07 2012-09-24 Yves Villaret System and method for searching strings of records
JP2006011739A (ja) * 2004-06-24 2006-01-12 Internatl Business Mach Corp <Ibm> オントロジを利用する装置、コンピュータシステムおよびデータ処理方法
WO2006004946A2 (en) * 2004-06-30 2006-01-12 Reactivity, Inc. Accelerated schema-based validation
US7689037B2 (en) * 2004-10-22 2010-03-30 Xerox Corporation System and method for identifying and labeling fields of text associated with scanned business documents
JP4868733B2 (ja) * 2004-11-25 2012-02-01 キヤノン株式会社 構造化文書処理装置及び構造化文書処理方法、プログラム
US7444345B2 (en) * 2005-02-15 2008-10-28 International Business Machines Corporation Hierarchical inherited XML DOM
US8346737B2 (en) * 2005-03-21 2013-01-01 Oracle International Corporation Encoding of hierarchically organized data for efficient storage and processing
WO2006103760A1 (ja) * 2005-03-30 2006-10-05 Fujitsu Limited 文書変換活用システム
JP4429212B2 (ja) 2005-06-03 2010-03-10 キヤノン株式会社 画像記述データ処理方法、装置及びプログラム
US7627566B2 (en) * 2006-10-20 2009-12-01 Oracle International Corporation Encoding insignificant whitespace of XML data
US20080147615A1 (en) * 2006-12-18 2008-06-19 Oracle International Corporation Xpath based evaluation for content stored in a hierarchical database repository using xmlindex
US20090012984A1 (en) 2007-07-02 2009-01-08 Equivio Ltd. Method for Organizing Large Numbers of Documents
US8099663B2 (en) * 2007-07-19 2012-01-17 Business Objects Software Ltd. Apparatus and method for document synchronization
JP2009122933A (ja) * 2007-11-14 2009-06-04 Nec Corp Xml文書変換の定義情報再構築装置、その方法およびプログラム
EP2211277A1 (en) * 2009-01-19 2010-07-28 BRITISH TELECOMMUNICATIONS public limited company Method and apparatus for generating an integrated view of multiple databases
US9160611B2 (en) 2009-04-22 2015-10-13 Webroot Inc. System and method for performing longest common prefix strings searches
JP5782937B2 (ja) * 2011-09-08 2015-09-24 富士通株式会社 タグ管理装置、タグ管理システムおよびタグ管理プログラム
US9009172B2 (en) * 2012-03-09 2015-04-14 Infosys Limited Methods, systems and computer readable media for comparing XML documents
CA2789936C (en) * 2012-09-14 2020-02-18 Ibm Canada Limited - Ibm Canada Limitee Identification of sequential browsing operations
US9940311B2 (en) 2014-03-03 2018-04-10 International Business Machines Corporation Optimized read/write access to a document object model
JP7040455B2 (ja) * 2016-10-12 2022-03-23 日本電気株式会社 情報処理装置、方法およびプログラム
US10783316B2 (en) * 2018-02-26 2020-09-22 Servicenow, Inc. Bundled scripts for web content delivery
CN112016277A (zh) * 2019-05-28 2020-12-01 珠海金山办公软件有限公司 一种格式调整的方法、装置、计算机存储介质及终端

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2048039A1 (en) * 1991-07-19 1993-01-20 Steven Derose Data processing system and method for generating a representation for and random access rendering of electronic documents
US5475588A (en) * 1993-06-18 1995-12-12 Mitsubishi Electric Research Laboratories, Inc. System for decreasing the time required to parse a sentence
US5692184A (en) * 1995-05-09 1997-11-25 Intergraph Corporation Object relationship management system
US6546406B1 (en) * 1995-11-03 2003-04-08 Enigma Information Systems Ltd. Client-server computer system for large document retrieval on networked computer system
US6167409A (en) * 1996-03-01 2000-12-26 Enigma Information Systems Ltd. Computer system and method for customizing context information sent with document fragments across a computer network
US5956737A (en) * 1996-09-09 1999-09-21 Design Intelligence, Inc. Design engine for fitting content to a medium
US6023714A (en) * 1997-04-24 2000-02-08 Microsoft Corporation Method and system for dynamically adapting the layout of a document to an output device
US5884320A (en) * 1997-08-20 1999-03-16 International Business Machines Corporation Method and system for performing proximity joins on high-dimensional data points in parallel
US6167397A (en) * 1997-09-23 2000-12-26 At&T Corporation Method of clustering electronic documents in response to a search query
US6356920B1 (en) * 1998-03-09 2002-03-12 X-Aware, Inc Dynamic, hierarchical data exchange system
US6247018B1 (en) * 1998-04-16 2001-06-12 Platinum Technology Ip, Inc. Method for processing a file to generate a database
US6236757B1 (en) * 1998-06-18 2001-05-22 Sharp Laboratories Of America, Inc. Joint coding method for images and videos with multiple arbitrarily shaped segments or objects
US6300947B1 (en) * 1998-07-06 2001-10-09 International Business Machines Corporation Display screen and window size related web page adaptation system
US20010027455A1 (en) * 1998-08-21 2001-10-04 Aly Abulleil Strategic planning system and method
US6336124B1 (en) * 1998-10-01 2002-01-01 Bcl Computers, Inc. Conversion data representing a document to other formats for manipulation and display
US6405211B1 (en) * 1999-07-08 2002-06-11 Cohesia Corporation Object-oriented representation of technical content and management, filtering, and synthesis of technical content using object-oriented representations
US6647141B1 (en) * 1999-11-18 2003-11-11 Sony Corporation User interface of query by color statistics
US6757887B1 (en) * 2000-04-14 2004-06-29 International Business Machines Corporation Method for generating a software module from multiple software modules based on extraction and composition
US20020029229A1 (en) * 2000-06-30 2002-03-07 Jakopac David E. Systems and methods for data compression
US6941511B1 (en) * 2000-08-31 2005-09-06 International Business Machines Corporation High-performance extensible document transformation

Also Published As

Publication number Publication date
US20020038319A1 (en) 2002-03-28
JP2002108850A (ja) 2002-04-12
US7519903B2 (en) 2009-04-14

Similar Documents

Publication Publication Date Title
JP4657432B2 (ja) 階層構造の構造化文書を変換する装置
JP4997749B2 (ja) 文書処理方法、プログラム及びシステム
CA2669479C (en) Generating end-user presentations from structured data
US7660810B2 (en) Method and system for publication and revision or hierarchically organized sets of static intranet and internet web pages
EP1426877B1 (en) Importing and exporting hierarchically structured data
JP3842577B2 (ja) 構造化文書検索方法および構造化文書検索装置およびプログラム
JP2004234354A (ja) 構造パターン候補を生成する方法、システムおよびプログラム
JPS61220027A (ja) 文書ファイリングシステム及び情報記憶検索システム
JP3797821B2 (ja) オントロジー構築支援装置
Atzeni et al. Data-intensive web sites: design and maintenance
JP2005190163A (ja) 構造化データ検索方法、構造化データ検索装置およびプログラム
JP3150254B2 (ja) 文書管理装置および文書管理機能付きデータ処理装置
Arnon Scrimshaw: A language for document queries and transformations
Schwabe et al. Hypertext development using a model‐based approach
JP3842576B2 (ja) 構造化文書編集方法及び構造化文書編集システム
JP2002202973A (ja) 構造化文書管理装置
JPH09282218A (ja) Html文書本型整形方法及びその装置
JP3427679B2 (ja) 単語検索装置及び単語検索プログラムを記録したコンピュータ読取り可能な記録媒体
JPH04278634A (ja) 木生成システム及び方法
Liu et al. Towards building logical views of websites
Tunçer et al. Modeling building project information
JP3445910B2 (ja) 文書要約合成装置
JP3156613B2 (ja) 文書編集方式
JP3843574B2 (ja) 文書変換規則生成装置、文書変換規則生成方法及び文書変換規則生成プログラムを記録したコンピュータ読み取り可能な記録媒体
JP2005018811A (ja) 文字列検索装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070705

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100204

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100216

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100407

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101005

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101201

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: 20101221

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20101222

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140107

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees