JP4406397B2 - 構造化文書検索システム及びプログラム - Google Patents

構造化文書検索システム及びプログラム Download PDF

Info

Publication number
JP4406397B2
JP4406397B2 JP2005370023A JP2005370023A JP4406397B2 JP 4406397 B2 JP4406397 B2 JP 4406397B2 JP 2005370023 A JP2005370023 A JP 2005370023A JP 2005370023 A JP2005370023 A JP 2005370023A JP 4406397 B2 JP4406397 B2 JP 4406397B2
Authority
JP
Japan
Prior art keywords
structured document
node
database
result
information
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
JP2005370023A
Other languages
English (en)
Other versions
JP2007172342A (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.)
Toshiba Corp
Toshiba Digital Solutions Corp
Original Assignee
Toshiba Corp
Toshiba Solutions Corp
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 Toshiba Corp, Toshiba Solutions Corp filed Critical Toshiba Corp
Priority to JP2005370023A priority Critical patent/JP4406397B2/ja
Publication of JP2007172342A publication Critical patent/JP2007172342A/ja
Application granted granted Critical
Publication of JP4406397B2 publication Critical patent/JP4406397B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、構造化文書を格納するデータベースからクライアント端末により要求された構造化文書の少なくとも一部を取得するのに好適な構造化文書検索システム及びプログラムに関する。
近年、XML(Extensible Markup Language)形式の文書(XML文書)やHTML(HyperText Markup Language)形式の文書(HTML文書)のような構造化文書が登録されたデータベースが出現している。このようなデータベースは、構造化文書データベースと呼ばれる。構造化文書は、意味的な構造、あるいは表示のための構造を持つ文書として知られている。XMLでは、タグと呼ばれる文字列で階層的な構造が表現される。XML形式の構造化文書、つまりXML文書において、1組のタグ(開始タグ及び終了タグの組)で囲まれた部分はノードと呼ばれ、当該XML文書の一部分をなす。
さて、XMLの普及に伴い、リレーショナルデータベースにおけるSQL(Structured Query Language)のような、XMLデータベースを管理するサーバ(データベースサーバ)に問い合わせを行うための問い合わせ言語(検索言語)が検討もしくは策定されている。このような問い合わせ言語の1つとして、WWW(World Wide Web)コンソーシアムで策定されているXQueryが知られている。
例えば、特許文献1は、XQueryのような構造化文書問い合わせ言語(つまり構造化文書問い合わせ命令)を適用する構造化文書検索システムを開示している。このようなシステムでは、XQueryを用いたデータベースサーバへの問い合わせの結果として、構造化文書データベースから構造化文書の一部、全体、または、構造化文書の複数部分を含む新たな形式の構造化文書が取得される。
また、例えばデータベースサーバ上で動作するデータベース管理システム(Database Management System: DBMS)を始めとする、大規模な検索処理を行うシステムにおいては、上記特許文献1にも記載されているように、予め作成された索引(インデックス)を用いて検索速度を向上させる手法を適用するのが一般的である。
特開2005−227851号公報
上記したように、構造化文書問い合わせ命令(構造化文書問い合わせ言語)を適用する従来の構造化文書検索システム(従来の技術)では、当該問い合わせ命令によるデータベースサーバ(データベースサーバ上のDBMS)への問い合わせに対して、構造化文書データベースから構造化文書の少なくとも一部を含む新たな形式の構造化文書が当該問い合わせ命令に対する結果(検索結果)として取得される。
しかしながら、従来の技術においては、検索結果として取得される構造化文書の部分を直接特定する手段(例えば、格納位置を直接示す手段)が存在しない。そこで従来の技術では、検索結果中の情報を用いて新たにデータベースサーバ上のDBMSへ変更或いは更新等を要求する場合に、1度目と同様の検索または場合によっては1度目よりも複雑な検索を行って、変更或いは更新等が必要な位置を特定する必要がある。このため従来の技術においては、データベースサーバに負荷がかかり、余分に検索処理を行う分、結果を取得するのに時間を要する。
本発明は上記事情を考慮してなされたものでその目的は、構造化文書問い合わせ命令に対する結果として取得される構造化文書の一部分を特定する情報を当該結果中に含めることができる構造化文書検索システム及びプログラムを提供することにある。
本発明の1つの観点によれば、構造化文書を格納するデータベースを有し、クライアント端末からの構造化文書問い合わせ命令に従って、前記データベースから当該問い合わせ命令によって指定される条件に合致する構造化文書の一部、全体または構造化文書の複数部分を含む新たな形式の文書を取得する構造化文書検索システムが提供される。このシステムは、前記構造化文書問い合わせ命令を解析する解析手段であって、前記構造化文書問い合わせ命令に、当該問い合わせ命令によって指定される条件に合致する目的の構造化文書の一部分を特定する情報を当該問い合わせ命令に対する結果の中に埋め込むことを指定する特別の指定情報が含まれているかを解析する解析手段と、前記構造化文書問い合わせ命令に前記特別の指定情報が含まれている場合に、当該問い合わせ命令によって指定される条件に合致する目的の構造化文書の一部分を特定する情報を取得する特定情報取得手段と、前記構造化文書問い合わせ命令に対する結果を、当該問い合わせ命令を発行したクライアント端末に返す結果出力手段であって、前記構造化文書問い合わせ命令に前記特別の指定情報が含まれている場合、前記特定情報取得手段によって取得された情報が埋め込まれた前記構造化文書問い合わせ命令に対する結果を返す結果出力手段とを具備する。
本発明によれば、構造化文書問い合わせ命令に特別の指定情報が含まれている場合に、当該問い合わせ命令によって指定される条件に合致する目的の構造化文書の一部分を特定する情報を取得して、当該取得された特定する情報が埋め込まれた結果を当該問い合わせ命令を発行したクライアント端末に返すことができる。このため、クライアント端末に返された結果中の特定する情報を利用して新たな構造化文書問い合わせ命令を発行するならば、当該特定する情報に基づいて、構造化文書の一部分を効率的に取得することができ、高速で且つデータベースサーバへの負荷が低い検索処理が可能になる。
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る構造化文書検索システムを含むクライアント−サーバシステムの構成を示すブロック図である。クライアント−サーバシステムは、主として、データベースサーバ(データベースサーバコンピュータ)10と、複数のクライアント端末とから構成される。複数のクライアント端末はクライアント端末20を含む。クライアント端末20上では、データベースサーバ10を利用するクライアントソフトウェア21が動作する。クライアント端末20を含む複数のクライアント端末は、ローカルエリアネットワーク(LAN)のようなネットワーク30を介してデータベースサーバ10と接続されている。なお、図1にはクライアント端末20以外のクライアント端末は省略されている。
データベースサーバ10は、ハードディスクドライブのような2次記憶装置40と接続されている。データベースサーバ10及び2次記憶装置40は構造化文書検索システム50を構成する。2次記憶装置40はデータベース41を格納する。データベース41は、例えば構造化文書の1つであるXML形式の文書(XML文書)を保存する構造化文書データベース(XML文書データベース)である。本実施形態において、データベース41を識別するための情報、例えば名前(データベース名)は、“書籍データベース”である。図1では、作図の都合上、2次記憶装置40には1つのデータベース41だけが格納されている。しかし、2次記憶装置40に複数のデータベースが格納されていても構わない。
図2はデータベース41のデータ構造例を示す。本実施形態において、データベース41は2次記憶装置40に格納される一種のファイル(書籍データベースファイル)として管理される。データベース41は、XML文書部411と索引部412とから構成される。XML文書部411には、複数のXML文書が格納されている。本実施形態では、XML文書部411をデータベース(XML文書データベース)と呼ぶこともある。
XML文書部411に格納されるXML文書(“書籍データベース”という名前のデータベース)の一例を図3に示す。図3の例では、booksノードの直下(1つ下位の階層)に、3つのbookノードが存在する。各bookノードの直下には、いずれも、titleノード、authorノード及びtableofcontentsノード(目次ノード)が存在する。
再び図2を参照すると、索引部412には、XML文書部411に格納されているXML文書に含まれている文字列(語彙)毎に、当該文字列を含むノードの各々を特定する索引データ(文字列索引データ)、例えば当該文字列を含むノードの各々の格納位置を示す索引データが格納される。ここで、各ノードの格納位置を示す索引データには、データベース41における当該ノードの相対的な格納位置(つまりオフセット)の情報が用いられる。図2の例では、索引部412に格納される索引データは、タイトルAという文字列を含むノードのデータベース41におけるオフセットの一覧(オフセット一覧)、タイトルBという文字列を含むノードのオフセットの一覧、タイトルCという文字列を含むノードのオフセットの一覧、著者Xという文字列を含むノードのオフセットの一覧、及び著者Yという文字列を含むノードのオフセットの一覧等を有する。なお、各ノードの格納位置の情報として、2次記憶装置40における格納位置を示す情報を用いることも可能である。また上述の索引データ(文字列索引データ)に限らず、XML文書部411に格納されているXML文書に含まれている数値または文書構造毎に、当該数値または文書構造を含むノードの各々を特定する索引データ(数値索引データまたは構造索引データ)を用いることも可能である。
図1において、データベースサーバ10は、当該サーバ10上で動作するデータベース管理システム(DBMS)11を含む。本実施形態において、DBMS11は、データベースサーバ(データベースサーバコンピュータ)10が特定のプログラム(データベース管理プログラム)を読み取って実行することによって実現される。このプログラムは、コンピュータ読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワーク30を介してデータベースサーバ10にダウンロードされても構わない。
DBMS11は、クライアント端末20からの構造化文書問い合わせ(構造化文書問い合わせ命令)を実行するクエリエンジン110を含む。クエリエンジン110は、解析部120とオペレータ実行部130と結果出力部140から構成される。
解析部120は、クライアント端末20からの構造化文書問い合わせ命令を解析し、その解析結果に応じてオペレータ実行部130を動作させる。解析部120は、問い合わせ命令に対する結果を生成する結果生成部121を含む。結果生成部121によって生成される結果は、オペレータ実行部130を動作させることにより取得される、問い合わせ命令の指定する条件に合致する構造化文書の一部、全体または構造化文書の複数部分を含む新たな形式の文書を含む。なお、結果生成部121が解析部120から独立して設けられていても構わない。
オペレータ実行部130は、解析部120の解析結果に応じた動作を行うのに必要な複数のオペレータを含む。即ちオペレータ実行部130は、索引サーチ部131、ドキュメントサーチ部132、マージ部133、位置取得部134、ノード取得部135及びドキュメント読込部136等の各種オペレータを含む。
索引サーチ部131は、解析部120により解析された文字列を含むノードの各々を特定するための情報の一覧、例えば当該各ノードのデータベース41における相対的な格納位置(オフセット)を示す情報の一覧(つまりオフセットの一覧)をデータベース41の索引部412から検索することで、当該文字列を含むノード(XML文書)を検索する。ドキュメントサーチ部132は、解析部120により解析された文字列を含むXML文書(ドキュメント)をデータベース41のXML文書部411から検索する。
マージ部133は、検索結果をマージする。マージ部133の動作の具体例を挙げる。例えば、クライアント端末20からの問い合わせに従い、文字列”abc”及び”def”の少なくとも一方を含むXML文書を検索するものとする。この場合、索引サーチ部131により、文字列”abcを含むXML文書群が検索される。同様に索引サーチ部131により、文字列”def”を含むXML文書群が検索される。マージ部133は、索引サーチ部131による2回の検索で取得されたXML文書群を、文字列”abc”及び”def”の少なくとも一方を含むXML文書群としてマージする。
位置取得部134は、解析部120により解析された文字列を含む各ノードを特定するための情報を取得する特定情報取得手段である。ここでは位置取得部134は、解析部120により解析された文字列を含む各ノードの格納位置(データベース内のオフセット)を示す文字列を取得する。ノード取得部135は、解析部120により解析されたオフセット(格納位置)の情報に従って、そのオフセット位置のノード(XML文書の一部分)の情報を取得する構造化文書部分取得手段である。ドキュメント読込部136は、解析部120により解析されたオフセット位置のXML文書(ドキュメント)をデータベース41から読み込む。結果出力部140は、結果生成部121によって生成された問い合わせに対する結果を問い合わせ元に返す。
次に本実施形態の動作について説明する。まず、クライアント端末20上で動作するクライアントソフトウェア21に従って当該クライアント端末20からデータベースサーバ10のDBMS11に対し、例えばXQueryを用いた構造化文書問い合わせ(問い合わせ命令)が発行されたものとする。この問い合わせ(1度目の問い合わせ)の一例を図4に示す。
図4において、問い合わせの1行目の文字列「for $b in fn:doc ("書籍データベース.xml")/books/book」は、書籍データベース(書籍データベース.xml)という名前のデータベースファイル(ドキュメント)におけるbooksノードの直下(1つ下位の階層)のbookノードを変数bとして宣言することを表す。問い合わせの2行目の文字列「where $b/author = "著者Y"」は、$b(変数b)で示されるノード(つまりノード$b)の直下のauthorノードの内容が著者Yであるという変数bの条件を表すwhere文である。
図4において、問い合わせの3行目の文字列「return <id>node-id($b)</id>{$b/title}」は、当該問い合わせに対する結果(検索結果)として、<id>node-id($b)</id>{$b/title}で表される文字列を返すべきことを表すreturn文である。ここで、開始タグ<id>及び終了タグ</id>で挟まれた「node-id($b)」は、変数bの条件を満たすノード(ノード$b)を特定するための文字列、例えば当該ノード$bの該当するデータベース(データベースファイル)内での格納位置を表す文字列を検索結果内にidノードとして埋め込むことを指定する関数(特別の指定情報)である。また「{$b/title}」は、変数bの条件を満たすbookノードの直下のtitleノードを検索結果の一部として返すことを表す。
つまり、図4に示す問い合わせは、書籍データベース内のbooksノード直下のbookノードであるノード$bのうち、その直下のauthorノードの内容が著者Yに等しいノード$bについて、<id>node-id($b)</id>{$b/title}で表される文字列を返すことを表す。
さて、クライアント端末20によって発行された図4に示す問い合わせ(クエリ)は、ネットワーク30を介してデータベースサーバ10に送信される。データベースサーバ10上では、DBMS11が動作している。DBMS11は、クライアント端末20によって発行された問い合わせ(クエリ)を受信する。するとDBMS11のクエリエンジン110では、受信された問い合わせに対する処理(検索処理)が図5のフローチャートに示す手順で次のように実行される。
まずクエリエンジン110の解析部120は、受信された図4に示す問い合わせを解析する(ステップS1)。このステップS1において解析部120は、問い合わせの解析結果に基づいて、オペレータ実行部130内のいずれのオペレータをどの順番で動作させるかを表すスケジュール(プラン)を決定する。
図4に示す問い合わせの場合、解析部120はステップS1において、当該問い合わせから変数bの条件と関数node-id($b)とを検出する。また解析部120は、変数bの条件を満足するノード$bの直下のtitleノードの内容を検索結果の一部として返す必要があることを検出する。
この場合、解析部120はまず、変数bの条件、つまりノード$bのうち当該ノード$bの直下のauthorノードの内容が著者Yであるという条件を満足するノード$bのオフセット一覧を、索引サーチ部131により検索(取得)させることを決定する。次に解析部120は、取得されるオフセット一覧の中から、ノードの構造が「/books/book」と一致するノード$bのオフセットの一覧を、オペレータ実行部130のドキュメントサーチ部132により取得させることを決定する。次に解析部120は、関数node-id($b)(特別の指定情報)に従い、ノード$bのオフセットの一覧から当該ノード$bのオフセット位置を示す文字列をオペレータ実行部130の位置取得部134により取得させることを決定する。また解析部120は、ノード$bの直下のtitleノードの情報をドキュメント読込部136により読み込ませることを決定する。
解析部120は、問い合わせの解析によって決定されたスケジュールに従って、オペレータ実行部130内の幾つかのオペレータを逐次動作させる(ステップS2)。図4に示す問い合わせの場合、このステップS2は、図6のフローチャート示す手順で次のように実行される。
まず、オペレータ実行部130の索引サーチ部131は、クライアント端末20からの問い合わせで指定された“書籍データベース”という名前のデータベース41の索引部412を検索して、著者Yという文字列を含むノードのオフセット一覧を取得する(ステップS11)。
するとオペレータ実行部130のドキュメントサーチ部132は、索引サーチ部131によって取得されたノード$bのオフセット一覧から、ノードの構造が指定の「/books/book」と一致するノード$bのオフセットの一覧を選択されたノード$bのオフセットの一覧として取得する(ステップS12)。ノードの構造は、索引サーチ部131によって取得されたノード$bのオフセット一覧に含まれているオフセットに基づき、データベース41の該当する位置に格納されているノードを含むドキュメントから特定可能である。
“書籍データベース”という名前の図2のデータ構造のデータベース41の例では、図4に示す問い合わせで指定される条件に合致するノード$bは、当該ノード$bの直下のtitleノードの内容がタイトルBとタイトルCの2つのbookノードである。この2つのbookノードは、図2の例では、データベース(データベースファイル)41内のそれぞれオフセット0x00020000と0x00030000の位置に格納されている。
結果生成部121は、ドキュメントサーチ部132によって上記ノード$b(選択されたノード$b)のオフセットの一覧が取得されると(ステップS12)、当該オフセットの一覧に基づいて、問い合わせ中のreturn文で指定された形式に適合する検索結果を表す文字列を組み立てる(ステップS13)。ここでは、問い合わせに対する検索結果として、<id>node-id($b)</id>{$b/title}で表される文字列で返すことが当該問い合わせ中のreturn文により指定されている。この場合、上記ステップS13では、検索結果を表す文字列を取得するための処理が、オペレータ実行部130の位置取得部134及びドキュメント読込部136を用いて次のように行われる。
まず、位置取得部134は、上記ステップS12で取得されたオフセット一覧、即ち選択されたノード$bのオフセットの一覧から、当該一覧中の各ノード$b(つまり目的とする各ノード$b)のオフセット位置を示す文字列を関数node-id($b)で指定される位置情報(オフセット)として抽出する(ステップS13a)。ここでは、0x00020000及び0x00030000が抽出される。
一方、ドキュメント読込部136は、上記一覧中の各ノード$bのオフセット位置に従って、{$b/title}で表されるtitleノードの情報をデータベース41のXML文書部411から読み込む(ステップS13b)。ここでは、タイトルB及びタイトルCが読み込まれる。
結果生成部121は上記ステップS13において、抽出された文字列0x00020000及び0x00030000並びに読み込まれたタイトルB及びタイトルCとから、図4に示す問い合わせに対する結果として、図7に示す結果を生成する。
図7において、1行目の開始タグ<id>及び終了タグ</id>で挟まれた文字列0x00020000は、当該1行目が、データベース41のオフセット0x00020000の位置に格納されているbookノードの情報であることを示す。同様に、2行目の開始タグ<id>及び終了タグ</id>で挟まれた文字列0x00030000は、当該2行目が、データベース41のオフセット0x00030000の位置に格納されているbookノードの情報であることを示す。
このように本実施形態によれば、XML文書(構造化文書)の一部分(クライアント端末20からの図4に示す問い合わせによって指定された条件に合致するbookノード)を一意に特定するための情報(文字列)0x00020000及び0x00030000を、検索結果内の必要な部分のみに指定の形式で埋め込むことができる。この結果には、上記2つのbookノードの直下のtitleノードの情報が含まれている。ここでは、全ての問い合わせに対する結果に、当該問い合わせによって指定された条件に合致するノードを一意に特定するための情報が埋め込まれるのではないことに注意されたい。つまり本実施形態では、問い合わせ中に前記特別の指定情報(つまり指定の条件に合致するノードを特定するための情報を結果中に埋め込むことを指定する特別の指定情報)が含まれている場合に限り、当該問い合わせに対する検索結果の必要な部分に、上記特定するための情報が埋め込まれる。これにより、検索結果のデータ量を必要最小限にすることができる。
図7に示す結果は結果出力部140によりネットワーク30を介してクライアント端末20に返される(ステップS3)。クライアント端末20は、図7に示す結果が図4に示す問い合わせに対する結果として返されると、クライアントソフトウェア21に従って、当該図7に示す結果から生成される書籍のタイトル一覧を画面に表示する。この一覧は、ユーザによって指定された条件に合致する書籍のタイトルを表し、タイトルBとタイトルCを含む。ユーザは、クライアント端末20を操作することにより、タイトル一覧の中から例えば必要とする目次のタイトルを選択する。ここでは、タイトルBの目次を取得するために、当該タイトルBが選択されたものとする。
この場合、クライアント端末20は、ユーザによって選択されたタイトルBの目次を取得するためのXQueryを用いた問い合わせ(問い合わせ命令)を発行する。この問い合わせの一例を図8に示す。
図8において、問い合わせ(2度目の問い合わせ)の1行目の文字列「let $b = node-with-id("0x00020000")」は、変数$bへnode-with-id関数が返すノードを代入することを表すlet文である。このlet文中の「node-with-id(“0x00020000”)」は、データベース41内のオフセット0x0020000の位置に格納されているノード、つまり図4に示す1度目の問い合わせに対する結果として返された著者Yという文字列を含み、且つノードの構造が「/books/book」と一致するbookノードのうち、ユーザによって選択されたタイトルBのbookノードの位置(データベース41内のオフセット)を直接指定する。また、図8における問い合わせの2行目の文字列「return {$b/tableofcontents}」は、当該問い合わせに対する結果(検索結果)として、$b(変数b)で示されるノード(つまりノード$b)の直下のtableofcontentsノードを返すべきことを表す。
クライアント端末20によって発行された図8に示す問い合わせ(クエリ)はデータベースサーバ10によって受信される。するとデータベースサーバ10のクエリエンジン110に含まれている解析部120は、図8に示す問い合わせを解析して、オペレータ実行部130内のいずれのオペレータをどの順番で動作させるかを表すスケジュールを決定する。この場合、オペレータ実行部130では、解析部120の制御の下で図9のフローチャートに示す手順の処理が次のように実行される。
まずオペレータ実行部130のノード取得部135は、node-with-id関数で指定された文字列0x00020000に基づき、当該文字列がデータベース41内のオフセット0x0020000を表していると認識し、当該オフセット0x0020000の位置に格納されているノードを目的のノード$bとして取得する(ステップS21)。このように本実施形態では、node-with-id関数により目的のノードの位置(オフセット位置)が直接指定されるため、ノード取得部135は当該目的のノードを速やかに取得することができる。ここでは、タイトルBのtitleノードを子ノードとするbookノードが目的のノード$bとして取得される。
ところで従来技術では、図4に示す問い合わせに相当する問い合わせ(1度目の問い合わせ)のrerturn文は「<id>node-id($b)</id>」を含まず、「return {$b/title}」のように表されるのが一般的である。この場合、問い合わせに対する結果として「<title>タイトルB</title>」及び「<title>タイトルC</title>」のみが返される。
この結果から、タイトルBの目次を取得することがユーザによって指定された場合、クライアント端末20は従来技術であれば、次のような2度目の問い合わせ
for $b in fn:doc ("書籍データベース.xml")/books/book
where $b/author = "著者Y" and $b/title = "タイトルB"
return {$b/tableofcontents}
を発行することになる。この場合、書籍データベースという名前のデータベースファイルにおけるbooksノードの直下のbookノードをノード$bとして取得し、そのノード$bのうち、その直下のauthorノードの内容が著者Yに等しく、且つ、その直下のtitleノードの内容がタイトルBに等しいノードを取得するための複雑な検索処理を必要とする。このため従来技術では、2度目の問い合わせに対する処理に時間を要し、データベースサーバにも過大な負荷がかかる。
さて本実施形態において、ノード取得部135によって目的のノード$bの情報が取得されると(ステップS21)、結果生成部121は当該取得された目的のノード$bの情報に基づいて、問い合わせ中のreturn文で指定された形式に適合する検索結果を表す文字列を組み立てる(ステップS22)。ここでは、問い合わせに対する検索結果として、{$b/tableofcontents}で表される文字列で返すことが当該問い合わせ中のreturn文により指定されている。この場合、上記ステップS22では、検索結果を表す文字列を取得するための処理がオペレータ実行部130のドキュメント読込部136を用いて次のように行われる。
ドキュメント読込部136は、{$b/tableofcontents}に基づき、ステップS21で取得されたノード$bの直下のtableofcontentsノードの情報をデータベース41から読み込む(ステップS22a)。ここでは、タイトルBのtitleノードを子ノードとするbookノードの直下のtableofcontentsノードの情報が読み出される。
結果生成部121は上記ステップS22において、ドキュメント読込部136によって読み込まれたノード$bの直下のtableofcontentsノードの情報に基づき、図8に示す問い合わせ中のreturn文で指定された当該問い合わせに対する検索結果を生成する。ここでは、ノード$bはタイトルBのtitleノードを子ノードとするbookノードである。したがって図8に示す問い合わせに対する検索結果として、タイトルBのtitleノードを子ノードとするbookノードの直下のtableofcontentsノードの情報が生成される。
結果生成部121によって生成された結果は結果出力部140によりネットワーク30を介してクライアント端末20に返される。クライアント端末20は、結果出力部140により返されたノード$bの直下のtableofcontentsノードの情報に基づき、目次Bを画面に表示する
以上、XML文書(構造化文書)のデータベース41を対象とする検索、つまりXML文書(構造化文書)の検索が可能な構造化文書検索システムに適用した実施形態について説明した。しかし本発明は、XML文書(構造化文書)以外のデータベース、例えばオブジェクト思考データベースを対象とする検索にも適用可能である。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。
本発明の一実施形態に係る構造化文書検索システムを含むクライアント−サーバシステムの構成を示すブロック図。 図1中のデータベース41のデータ構造例を示す図。 図2中のXML文書部411に格納されるXML文書(データベースファイル)の一例を示す図。 同実施形態における1度目の問い合わせの一例を示す図。 同実施形態における問い合わせに対する処理の手順を示すフローチャート。 図4に示す1度目の問い合わせの受信時における図5のステップS2の詳細な手順を示すフローチャート。 図4に示す問い合わせに対する結果の一例を示す図。 同実施形態における2度目の問い合わせの一例を示す図。 図8に示す2度目の問い合わせの受信時における処理手順を示すフローチャート。
符号の説明
10…データベースサーバ、11…データベース管理システム(DBMS)、20…クライアント端末、30…ネットワーク、40…2次記憶装置、41…データベース、50…構造化文書検索システム、110…クエリエンジン、120…解析部、130…オペレータ実行部、131…索引サーチ部、132…ドキュメントサーチ部、133…マージ部、134…位置取得部(特定情報取得手段)、135…ノード取得部(構造化文書部分取得手段)、136…ドキュメント読込部、411…XML文書部、412…索引部。

Claims (7)

  1. 複数のノードを含む階層構造の構造化文書を格納するデータベースを有し、クライアント端末からの構造化文書問い合わせ命令に従って、前記データベースから当該問い合わせ命令によって指定される条件に合致する構造化文書のノードを含む新たな形式の文書を取得する構造化文書検索システムにおいて、
    前記構造化文書問い合わせ命令を解析する解析手段であって、前記構造化文書問い合わせ命令に、当該問い合わせ命令によって指定される条件に合致する目的の構造化文書のノードの前記データベースにおける相対的な格納位置を示す格納位置情報を当該問い合わせ命令に対する結果の中に埋め込むことを指定する特別の指定情報が含まれているかを解析する解析手段と、
    前記構造化文書問い合わせ命令に前記特別の指定情報が含まれている場合に、当該問い合わせ命令によって指定される条件に合致する目的の構造化文書のノードの前記データベースにおける相対的な格納位置を示す格納位置情報を取得する格納位置情報取得手段と、
    前記構造化文書問い合わせ命令に対する結果を、当該問い合わせ命令を発行したクライアント端末に返す結果出力手段であって、前記構造化文書問い合わせ命令に前記特別の指定情報が含まれている場合、前記格納位置情報取得手段によって取得された格納位置情報が埋め込まれた前記構造化文書問い合わせ命令に対する結果を返す結果出力手段と
    を具備することを特徴とする構造化文書検索システム。
  2. 前記データベースは、当該データベースに格納されている構造化文書に含まれる文字列、数値または文書構造毎に、当該文字列、数値または文書構造を含むノードの各々の前記格納位置情報を含む索引データを格納しており、
    前記格納位置情報取得手段は、前記目的の構造化文書のノードの前記格納位置情報を前記データベースに格納されている索引データから取得する
    ことを特徴とする請求項1記載の構造化文書検索システム。
  3. 前記特別の指定情報は、前記目的の構造化文書のノードの前記格納位置情報が埋め込まれるべき当該問い合わせ命令に対する結果中の位置を指定し、
    前記結果出力手段は、前記特別の指定情報によって指定された位置に前記目的の構造化文書のノードの前記格納位置情報が埋め込まれた前記構造化文書問い合わせ命令に対する結果を返す
    ことを特徴とする請求項1記載の構造化文書検索システム。
  4. 前記特別の指定情報は、前記構造化文書問い合わせ命令に対する結果に埋め込まれるべき前記目的の構造化文書のノードの前記格納位置情報の形式を指定し、
    前記結果出力手段は、前記特別の指定情報によって指定された形式で前記目的の構造化文書のノードの前記格納位置情報が埋め込まれた前記構造化文書問い合わせ命令に対する結果を返す
    ことを特徴とする請求項1記載の構造化文書検索システム。
  5. 前記構造化文書問い合わせ命令に、構造化文書のノードの前記格納位置情報が含まれている場合に、当該格納位置情報によって特定される構造化文書のノードを前記データベースから取得するノード取得手段を更に具備し、
    前記結果出力手段は、前記ノード取得手段によって取得された構造化文書のノードに対応する情報を含む結果を、前記格納位置情報を含む前記構造化文書問い合わせ命令を発行したクライアント端末に返す
    ことを特徴とする請求項1記載の構造化文書検索システム。
  6. クライアント端末からの構造化文書問い合わせ命令に従って、複数のノードを含む階層構造の構造化文書を格納するデータベースから当該問い合わせ命令によって指定される条件に合致する構造化文書のノードを含む新たな形式の文書を取得するデータベースサーバコンピュータに、
    前記構造化文書問い合わせ命令を解析するステップであって、前記構造化文書問い合わせ命令に、当該問い合わせ命令によって指定される条件に合致する目的の構造化文書のノードの前記データベースにおける相対的な格納位置を示す格納位置情報を当該問い合わせ命令に対する結果の中に埋め込むことを指定する特別の指定情報が含まれているかを解析するステップと、
    前記構造化文書問い合わせ命令に前記特別の指定情報が含まれている場合に、当該問い合わせ命令によって指定される条件に合致する目的の構造化文書のノードの前記データベースにおける相対的な格納位置を示す格納位置情報を取得するステップと、
    前記構造化文書問い合わせ命令に対する結果を、当該問い合わせ命令を発行したクライアント端末に返すステップであって、前記構造化文書問い合わせ命令に前記特別の指定情報が含まれている場合、前記取得された格納位置情報が埋め込まれた前記構造化文書問い合わせ命令に対する結果を返すステップと
    を実行させるためのプログラム。
  7. 前記データベースは、当該データベースに格納されている構造化文書に含まれる文字列、数値または文書構造毎に、当該文字列、数値または文書構造を含むノードの各々の前記格納位置情報を含む索引データを格納しており、
    前記取得するステップでは、前記目的の構造化文書のノードの前記格納位置情報が前記データベースに格納されている索引データから取得される
    ことを特徴とする請求項6記載のプログラム。
JP2005370023A 2005-12-22 2005-12-22 構造化文書検索システム及びプログラム Expired - Fee Related JP4406397B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005370023A JP4406397B2 (ja) 2005-12-22 2005-12-22 構造化文書検索システム及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005370023A JP4406397B2 (ja) 2005-12-22 2005-12-22 構造化文書検索システム及びプログラム

Publications (2)

Publication Number Publication Date
JP2007172342A JP2007172342A (ja) 2007-07-05
JP4406397B2 true JP4406397B2 (ja) 2010-01-27

Family

ID=38298818

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005370023A Expired - Fee Related JP4406397B2 (ja) 2005-12-22 2005-12-22 構造化文書検索システム及びプログラム

Country Status (1)

Country Link
JP (1) JP4406397B2 (ja)

Also Published As

Publication number Publication date
JP2007172342A (ja) 2007-07-05

Similar Documents

Publication Publication Date Title
US6889223B2 (en) Apparatus, method, and program for retrieving structured documents
US7231386B2 (en) Apparatus, method, and program for retrieving structured documents
JP4445509B2 (ja) 構造化文書検索システム及びプログラム
US6094649A (en) Keyword searches of structured databases
EP1457898A2 (en) Data search system and method
Binding et al. KOS at your service: Programmatic access to knowledge organisation systems
US8176030B2 (en) System and method for providing full-text search integration in XQuery
US7024405B2 (en) Method and apparatus for improved internet searching
JP4825544B2 (ja) 文書検索装置、文書検索方法、文書検索プログラム及び記録媒体
JP2003173280A (ja) データベース生成装置、データベース生成方法及びデータベース生成プログラム
JP2005227851A (ja) 構造化データ記憶方法および装置
JP2005190163A (ja) 構造化データ検索方法、構造化データ検索装置およびプログラム
JP4333184B2 (ja) 電子データ管理システム
JP3914081B2 (ja) アクセス権限設定方法および構造化文書管理システム
JP2006127235A (ja) 構造化文書管理システム、構造化文書管理方法及びプログラム
JP4309818B2 (ja) 構造化文書管理装置、検索装置、記憶方法、検索方法及びプログラム
JP3671765B2 (ja) 異種情報源問い合わせ変換方法及び装置及び異種情報源問い合わせ変換プログラムを格納した記憶媒体
JP2006127229A (ja) 構造化文書検索システム、構造化文書検索方法及びプログラム
US20040122809A1 (en) Information augmentation method
JP2004206629A (ja) 異種データソース統合検索サーバシステム
JP4406397B2 (ja) 構造化文書検索システム及びプログラム
JP3842572B2 (ja) 構造化文書管理方法および構造化文書管理装置およびプログラム
KR100496384B1 (ko) 검색엔진과, 검색시스템, 검색시스템에서의 데이터베이스 작성방법 및, 기억매체
JP4843656B2 (ja) 構造化データ検索プログラム及び構造化データ検索装置
JP2002297662A (ja) 構造化文書編集方法および構造化文書編集装置および端末装置およびプログラム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090113

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090313

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090414

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090709

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20090831

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

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

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

Free format text: PAYMENT UNTIL: 20121113

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4406397

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20131113

Year of fee payment: 4

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees