データ変換装置および方法、データベース管理装置および方法、ならびにデータベース検索システムおよび方法
【課題】単語や句といった文要素間の意味的関係の表記と当該意味的関係により規定される概念を検索条件とした検索とを可能とする。
【解決手段】所定言語の文書のデータベースを管理する管理サーバ30は、文書データ60と上記言語の文法情報および単語情報とを用いて文書の構文解析を実行する構文解析部32と、構文解析の結果に基づいて文書中のセンテンスと当該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、センテンス中の述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとを属性により対応付けし、タグ、単語およびタグの属性の各々の記述位置と階層深さとを示すインデックスを出力するインデックス作成部34と、出力されたインデックスを文書データ60ごとに保持するインデックス保持部35とを含む。
【解決手段】所定言語の文書のデータベースを管理する管理サーバ30は、文書データ60と上記言語の文法情報および単語情報とを用いて文書の構文解析を実行する構文解析部32と、構文解析の結果に基づいて文書中のセンテンスと当該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、センテンス中の述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとを属性により対応付けし、タグ、単語およびタグの属性の各々の記述位置と階層深さとを示すインデックスを出力するインデックス作成部34と、出力されたインデックスを文書データ60ごとに保持するインデックス保持部35とを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、所定言語からなるセンテンスを示すデータを文法上の意味的な注釈が付与された構造化データに変換するデータ変換装置および方法、所定言語からなる文書の文書データを複数蓄積したデータベースを管理するためのデータベース管理装置および方法、ならびに所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索システムおよび方法に関する。
【背景技術】
【0002】
従来から、文書等の意味や構造を記述するためのマークアップ言語として、XML(Extensible Markup Language)が知られており、XMLを用いて構造化された文書データを蓄積した文書データベースも徐々に普及しつつある。また、このようなXMLデータベースの検索に用いられる問い合わせ言語としては、XPath(非特許文献1参照。)やXQuery(非特許文献2参照。)等が知られている。
【非特許文献1】XML Path Language (XPath) Version 1.0 W3C Recommendation 16 November 1999,インターネット< http://www.w3.org/TR/xpath >
【非特許文献2】XQuery 1.0: An XML Query Language W3C Candidate Recommendation 8 June 2006,インターネット< http://www.w3.org/TR/xquery/ >
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、近年では、様々な分野において文献や学術論文といった文書の大規模なデータベース化が進められており、それに伴い、大規模な文書データベースを効率よく検索可能とする技術に対するニーズも高まっている。この場合、学術論文等に対して一般的なキーワード検索を適用しても、検索キーワードのすべてを含む文書が検索結果として出力されるだけであるから、所望の文書に的確かつ迅速にアクセスできるようにするには、例えば文書中の述語とその項との対応関係といった文要素(単語や句)間の意味的な関係により規定される概念である関係概念をも検索条件として設定できるようにすべきである。しかしながら、文要素間の意味的な関係は、極めて複雑に入り組んだものであることが多く、XMLにより文要素間の意味的な関係をも含めて文書を表記すると、データ構造が極めて複雑なものとなってしまい、XPathやXQueryといった問い合わせ言語を用いても上述のような関係概念を検索条件とした検索を迅速かつ高精度に実行することは極めて困難となる。
【0004】
そこで、本発明によるデータ変換装置および方法は、単語や句といった文要素間の意味的な関係の表記と当該意味的な関係により規定される概念を検索条件とした検索とを可能とする構造化データを提供することを目的とする。また、本発明によるデータベース管理装置および方法ならびにデータベース検索システムおよび方法は、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索可能とすることを目的とする。
【課題を解決するための手段】
【0005】
本発明によるデータ変換装置および方法、データベース管理装置および方法、ならびにデータベース検索システムおよび方法は、上述の目的の少なくとも一部を達成するために以下の手段を採っている。
【0006】
本発明によるデータ変換装置は、
所定言語からなるセンテンスを示すデータを文法上の意味的な注釈を含む構造化データに変換するデータ変換装置であって、
前記データと前記所定言語の文法情報および単語情報とを用いて前記センテンスの構文解析を実行する構文解析手段と、
前記構文解析手段による構文解析の結果に基づいて、それぞれ対応した属性が記述される所定のタグを前記センテンスに含まれる句と単語とに付与すると共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを前記構造化データとして出力する構造化データ出力手段と、
を備えるものである。
【0007】
このデータ変換装置では、所定言語からなるセンテンスを示すデータを構造化データへと変換するに際して、まず、当該センテンスを示すデータと上記所定言語の文法情報および単語情報とを用いたセンテンスの構文解析が実行される。そして、構文解析の結果に基づいて、センテンスに含まれる句と単語とにはそれぞれ対応した属性(属性名、存在する場合には更に属性値)が記述される所定のタグが付与されると共に、センテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとが属性を用いて対応付けされ、最終的に、タグ、単語およびタグの属性の各々の記述位置と階層深さとを示すインデックスが構造化データとして出力される。これにより、構造化データすなわちインデックスには、タグ、単語およびタグの属性の各々の実質的なアドレスが示されることになるので、タグを用いて構造化されるセンテンスにおいて述語とその項とが複雑に入り組んでいたとしても、インデックスである構造化データを参照すれば、開始タグと終了タグとの対応関係により規定されるセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することが可能となる。従って、このデータ変換装置によれば、センテンス中の述語(述部)と項との間の意味的な関係である述語項関係の表記と、そのような意味的な関係により規定される概念を検索条件とした検索とを可能とする構造化データを実現することができる。
【0008】
また、本発明によるデータ変換装置において、前記構文解析手段は、HPSGに基づく構文解析を実行して前記センテンスの構文木および述語項構造を取得するパーザであってもよい。これにより、センテンスをより精度よく構文解析して、インデックスにおける述語と項との対応付けをより適正なものとすることが可能となる。
【0009】
更に、本発明によるデータ変換装置は、所定の用語情報に基づいて前記センテンスに含まれる句または単語の各々について該句または単語が一つの実体的意味で括られるものであるか否かを判定すると共に前記句または単語が前記実体的意味で括られるものであるときには該実体的意味を取得する用語認識手段を更に備えてもよく、前記構造化データ出力手段は、前記取得された実体的意味を示す属性値を対応したタグの所定の属性に記述するものであってもよい。これにより、インデックスにおいて、実質的に同一の意味(概念)を示すにも拘わらず表層的表現が異なっている句または単語に対応したタグに同一の実体的意味を示す属性値が記述されることになるので、当該インデックスである構造化データを用いれば、同一の実体的意味をもつ句や単語、あるいはそれを含むセンテンス等の検索を容易に実行可能となる。
【0010】
本発明によるデータ変換方法は、
所定言語からなるセンテンスを示すデータを文法上の意味的な注釈を含む構造化データに変換するためのデータ変換方法であって、
(a)前記データと前記所定言語の文法情報および単語情報とを用いて前記センテンスの構文解析を実行するステップと、
(b)ステップ(a)の構文解析の結果に基づいて、それぞれ対応した属性が記述される所定のタグを前記センテンスに含まれる句と単語とに付与すると共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを前記構造化データとして出力するステップと、
を含むものである。
【0011】
この方法により得られるインデックスである構造化データを参照すれば、開始タグと終了タグとの対応関係により規定されるセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することが可能となる。従って、この方法によれば、センテンス中の述語と項との間の意味的な関係である述語項関係の表記と、そのような意味的な関係により規定される概念を検索条件とした検索とを可能とする構造化データを実現することができる。
【0012】
本発明によるデータベース管理装置は、
所定言語からなる文書の文書データを複数蓄積したデータベースを管理するデータベース管理装置であって、
前記文書データと前記所定言語の文法情報および単語情報とを用いて前記文書の構文解析を実行する構文解析手段と、
前記構文解析手段による構文解析の結果に基づいて前記文書中のセンテンスと該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを出力するインデックス出力手段と、
前記インデックス出力手段により出力されたインデックスを前記文書データごとに保持するインデックス保持手段と、
を備えるものである。
【0013】
このデータベース管理装置では、例えば新たな文書の文書データがデータベースに蓄積されるに際して、当該文書データと所定言語の文法情報および単語情報とを用いた文書の構文解析が実行される。そして、構文解析の結果に基づいて、文書中のセンテンスと当該センテンスに含まれる句と単語とにはそれぞれ対応した属性が記述される所定のタグが付与されると共に、センテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとが属性を用いて対応付けされた上で、タグ、単語およびタグの属性の各々の記述位置と階層深さとを示すインデックスが構造化データとして出力され、上記新たな文書と対応付けされて保持される。このように、文書データごとに上述のようなインデックスを保持しておけば、インデックスを参照することにより、開始タグと終了タグとの対応関係により規定される文書中のセンテンスの構文木や、述語に相当する単語等に付与されたタグと該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することができる。従って、このデータベース管理装置によれば、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【0014】
本発明によるデータベース管理方法は、
所定言語からなる文書の文書データを複数蓄積したデータベースを管理するためのデータベース管理方法であって、
(a)前記文書データと前記所定言語の文法情報および単語情報とを用いて前記文書の構文解析を実行するステップと、
(b)ステップ(a)の構文解析の結果に基づいて前記文書中のセンテンスと該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを出力すると共に前記文書データごとに保持するステップと、
を含むものである。
【0015】
この方法のように、文書データごとに上述のようなインデックスを保持しておけば、インデックスを参照することにより、開始タグと終了タグとの対応関係により規定される文書中のセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することができる。従って、この方法によれば、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【0016】
本発明によるデータベース検索システムは、
所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索システムであって、
前記文書中のセンテンスと該センテンスに含まれる句と単語との各々に付与された所定のタグ、前記単語および前記タグに記述される属性の各々の記述位置と階層深さとを示すと共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けするように前記文書データごとに作成されたインデックスを保持するインデックス保持手段と、
複数の検索単語と該検索単語間の述語項関係とを検索条件として受け付け可能な受付手段と、
前記インデックス保持手段により保持されているインデックスに基づいて、前記受け付けられた検索単語をすべて含むタグ領域を抽出する抽出手段と、
前記インデックスに基づいて、前記抽出手段により抽出されたタグ領域に含まれる前記検索単語に対応したタグ間で前記受け付けられた述語項関係に合致した対応付けがなされているか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて検索結果を出力する検索結果出力手段と、
を備えるものである。
【0017】
このデータベース検索システムは、文書データごとに作成されたインデックスを保持するインデックス保持手段を備えており、文書データごとのインデックスは、それぞれ対応した文書中のセンテンスと当該センテンスに含まれる句と単語との各々に付与された所定のタグ、単語およびタグに記述される属性の各々の記述位置と階層深さとを示すと共にセンテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとを属性により対応付けするものである。従って、インデックスを参照すれば、開始タグと終了タグとの対応関係により規定される文書中のセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することができる。これを踏まえて、このデータベース検索システムでは、複数の検索単語と当該検索単語間の述語項関係とが検索条件として受け付けられると、まず、インデックスに基づいて、受け付けられた検索単語をすべて含むタグ領域が抽出される。更に、上記インデックス、すなわち述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとを対応付けする属性に基づいて、抽出されたタグ領域に含まれる検索単語に対応したタグ間で検索条件として受け付けられた述語項関係に合致した対応付けがなされているか否かが判定され、その判定の結果に基づいて検索結果が出力される。これにより、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【0018】
また、前記インデックスでは、前記センテンス中の述語に相当する句または単語に対応したタグの所定の属性と該述語の項となる句または単語に対応したタグの所定の属性とに属性値として同一の値が設定されていてもよく、前記判定手段は、前記インデックスに基づいて前記属性値として同一の値が記述されている前記検索単語に対応したタグの対の有無を判定するものであってもよい。これにより、より精度のよい検索結果を迅速に得ることが可能となる。
【0019】
この場合、本発明によるデータベース検索システムは、前記単語ごとに前記データベースにおける出現頻度を記憶する出現頻度記憶手段を更に備えてもよく、前記判定手段は、互いに述語項関係にある前記検索単語のうちの前記出現頻度がより小さい一方の検索単語に対応したタグに記述されている前記属性値を変数として該変数の値を取得し、取得した変数の値に一致する前記属性値が設定されている他方の前記検索単語に対応したタグが存在するか否かを判定するものであってもよい。このように、出現頻度がより小さい一方の検索単語に対応したタグに記述されている属性値を変数とすれば、取得される変数値の数がより少なくなり、その分だけ判定対象とすべき他方の検索単語に対応したタグの数を減らすことができるので、属性値として同一の値が記述されている検索単語に対応したタグの対の有無を短時間で効率よく判定することが可能となる。
【0020】
更に、本発明によるデータベース検索システムは、前記受け付けられた検索単語と前記述語項関係とに基づいて、該述語項関係を対応付けする属性値を変数とした検索クエリを設定する検索クエリ設定手段を更に備えてもよく、前記抽出手段は、前記設定された検索クエリに現れる最大の検索対象領域である最大検索領域を識別すると共に前記受け付けられた検索単語をすべて含む最大検索領域の開始タグおよび終了タグを抽出し、前記判定手段は、前記設定された検索クエリを分解して得られる前記検索単語の何れかと前記変数とを含む少なくとも一つの部分クエリから該変数を除いたクエリを実行し、実行結果として返された前記変数の値を代入した前記検索クエリに合致する前記最大検索領域が存在するか否かを判定するものであってもよい。
【0021】
そして、前記インデックスは、前記文書データと前記所定言語の文法情報および単語情報とを用いた前記文書の構文解析の結果に基づいて予め作成されているものであってもよい。これにより、実際の検索処理の負担を軽減して検索条件の入力から検索結果の出力までに要する時間を短縮化することが可能となる。
【0022】
本発明によるデータベース検索方法は、
所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索方法であって、
(a)前記文書中のセンテンスと該センテンスに含まれる句と単語との各々に付与された所定のタグ、前記単語および前記タグに記述される属性の各々の記述位置と階層深さとを示すと共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けするように前記文書データごとに作成されたインデックスを予め作成・保持しておくステップと、
(b)複数の検索単語と該検索単語間の述語項関係とを検索条件として受け付けるステップと、
(c)前記インデックスに基づいて、前記受け付けられた検索単語をすべて含むタグ領域を抽出するステップと、
(d)前記インデックスに基づいて、ステップ(c)で抽出されたタグ領域に含まれる前記検索単語に対応したタグ間で前記受け付けられた述語項関係に合致した対応付けがなされているか否かを判定するステップと、
(e)ステップ(d)における判定結果に基づいて検索結果を出力するステップと、
を含むものである。
【0023】
この方法によれば、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【発明を実施するための最良の形態】
【0024】
次に、実施例を参照しながら本発明を実施するための最良の形態について説明する。
【実施例】
【0025】
図1は、本発明の一実施例に係るデータベース検索システム20の概略構成図である。同図に示すように、実施例のデータベース検索システム20は、主として、データベース化された膨大なデータを記憶するデータ記憶装置21と、データ記憶装置21上のデータベースを管理すると共に当該データベースの検索を可能とする管理サーバ30とから構成されるものである。実施例のデータベースは、所定言語(例えば英語)で記載された所定分野の文献や学術論文といった文書の文書データ60を多数蓄積した文書データベースとして構築されている。また、管理サーバ30は、図示しないサーバCPU,ROM,RAM、システムバス、各種インターフェース、記憶装置、外部記憶装置等を含むものであり、この管理サーバ30には、例えばインターネット等のネットワークを介して端末50からアクセスすることができるようになっている。そして、管理サーバ30には、図1に示すように、サーバCPUやROM,RAM、各種インターフェース、記憶装置といったハードウエアと、予めインストールされた各種プログラムとの一方または双方の協働により、文書入力部31、構文解析部32、用語認識部33、インデックス作成部34、インデックス保持部35、入力受付部36、検索処理部(検索エンジン)37および結果出力部38が機能ブロックとして構築されている。
【0026】
文書入力部31は、所定のデータ形式(例えばテキスト形式)で記述された所定言語の文書を示す文書データ60の入力を受け付け、受け付けた文書データ60をデータ記憶装置21に格納すると共に当該文書データ60を構文解析部32と用語認識部33とに与える。構文解析部32は、文書入力部31からの文書データ60とそれに示される文書の言語の文法情報(文法規則)および単語情報(辞書)とを用いて文書データ60に示される文書の構文解析を実行するものである。実施例の構文解析部32は、HPSG(Head-Driven Phrase Structure Grammar)に基づく構文解析を実行して当該文書中のセンテンス(文)の構文木および述語項構造を取得するパーザとして構成されている。構文解析部32による構文解析に用いられる文法情報および単語情報は、予め用意された上でそれぞれ図示しない所定の記憶装置に記憶されている。用語認識部33は、図示しない所定の記憶装置に記憶された所定の用語情報に基づいて文書入力部31からの文書データ60に示される文書中の句や単語の各々について当該句または単語がある一つの実体的意味で括られるものであるか否かを判定すると共に上記句または単語が当該一つの実体的意味で括られるものであるときにはその実体的意味を取得するものである。インデックス作成部34は、構文解析部32による構文解析の結果と用語認識部33による用語認識の結果とに基づいてデータ記憶装置21上のデータベースを検索する際に用いられるインデックスを作成し、インデックス保持部35は、インデックス作成部34により作成されたインデックスをデータベース上の文書データ60に対応付けした状態で保持するものである。入力受付部36は、ネットワーク40を介して管理サーバ30と接続された端末50等から入力される検索条件を受け付ける。実施例では、検索条件として、複数の検索単語と当該検索単語間の述語項関係とを入力することができる。そして、検索処理部37は、入力受付部36により受け付けられた検索条件(検索単語と述語項関係)に基づいて検索クエリを設定すると共に設定した検索クエリを実行し、結果出力部38は、検索処理部37の処理の結果に基づいて検索結果を出力する
【0027】
次に、実施例のデータベース検索システム20を用いたデータベースの検索に用いられるインデックスの作成するためのインデックス作成処理について説明する。また、インデックス作成処理の説明に引き続いて、実施例のデータベース検索システム20におけるインデックスを用いたデータ記憶装置21上のデータベースの検索処理について説明する。
【0028】
〔インデックス生成処理〕
図2は、実施例のデータベース検索システム20を構成する管理サーバ30において実行されるインデックス作成処理の一例を示すフローチャートである。図2のインデックス作成処理は、例えば新たな文書データ60がデータ記憶装置21上のデータベースに蓄積される際に実行されるものである。
【0029】
管理サーバ30の文書入力部31により新たな文書データ60の入力が受け付けられると(ステップS100)、文書入力部31は、受け付けた文書データ60をデータ記憶装置21に格納すると共に、当該文書データ60を構文解析部32と用語認識部33とに与える。文書入力部31から文書データ60を受け取った構文解析部32は、当該文書データ60と対象言語の文法情報および単語情報を用いた文書の構文解析を実行し、同様に文書データ60を受け取った用語認識部33は、構文解析部32による構文解析処理と並行して、予め用意された用語情報に基づいて文書入力部31からの文書データ60に示される文書中の単語の各々に対する用語認識を実行する(ステップS110)。
【0030】
ここで、図3から図6を参照しながら、ステップS110における実施例の構文解析部32による文書の構文解析処理について説明する。まず、例えば“Mary slaps John”という英文を考えると、この英文は、[Mary,主語,slap]と[John,目的語,slap]という2つの関係からなる概念(関係概念)を示すといえる。そして、この英文は、図3に示すように、“Mary”,“John”,“slaps”という3つのノードを有し、単語“Mary”と“slaps”とが「主語」というラベルのエッジで結ばれると共に、単語“John”と“slaps”とが「目的語」というラベルのエッジで結ばれたラベル付き有向グラフで表現することができる。かかるグラフにおいては、各ノードのみならず、ノード同士を結ぶエッジも文法上極めて重要な情報を示している。すなわち、“John slaps Mary”という英文は、先の“Mary slaps John”という英文と同じ3つの単語を含むにも拘わらず、全く異なる関係概念を示すから、この英文は図3のグラフとは異なるグラフにより表現されることになる。これに対して、“John is slapped by Mary”という英文は、表層的には文字列が異なるものの、上記“Mary slaps John”と同じ意味を示しており、図3のグラフに近似したグラフを用いて表現可能なものである。従って、このような関係概念(述語項構造)を検索条件とした検索を実行するためには、検索単語の有無のみを判定する既存の文書検索手法のように上述のエッジを無視してはならないことになり、文要素間の述語項関係(意味上の主語、述語、目的語の関係)を示すグラフが要求されることになる。
【0031】
このため、実施例では、文要素間の述語項関係を示すグラフすなわち文書中のセンテンスの構文木と述語項構造とを取得すべく、構文解析部32を上述のようにHPSGに基づく構文解析を実行するパーザとして構成している。この場合、構文解析部32の文法情報は、いわゆる三単現や格の制約、更に、自然言語の文における「あいまい性」の学習結果に基づく制約等を集約することにより構築される。また、構文解析部32の単語情報は、単語のごとにその構文的性質を示すデータ(語彙項目)のリストとして作成される。各単語のリストには、図4および図5に示すように、“HEAD”,“SUBJ”,“COMPS”および“SEM”という4つの項目が含まれており、“HEAD”は品詞、“SUBJ”は構文上の主語たり得るもの(述語の左側に位置し得る単語または句)、“COMPS”は構文上の目的語たり得るもの(述語の右側に位置し得る単語または句)、“SEM”は、意味構造(述語項構造)をそれぞれ表す。先の英文“Mary slaps John”を例にとれば、“Mary”や“John”という単語については、項目“HEAD”に固有名詞を示す“prernn”が記述され、項目“SEM”に“Mary”あるいは“John”という文字列が記述される。また、“slap(s)” という単語については、主語と目的語とに名詞を取る動詞であることを示すべく、項目“HEAD”には動詞を示す“verb”が、項目“SUBJ”には“HEAD(=品詞) noun(=名詞)”が、項目“COMPS”には、“HEAD noun”が記述されている。更に、項目“SUBJ”には“ SEM 1”と、項目“COMPS”には“SEM 2”と記述され、項目“SEM”には、“slap(1, 2)”と記述される。ここで、数字“1”や“2”は構文上の主語、目的語と意味上の主語、目的語との間の対応関係を規定(マッピング)するための変数であり、項目“SEM”における“slap”という文字列に続く括弧内の表記は、「(意味上の主語を示す変数、意味上の目的語を示す変数)」を示している。これにより、図4に示すように、“slap(s)” という単語に関しては、リストの項目“SUBJ”の“SEM”に値1が記述されると共に項目“COMPS”の“SEM”に値2が記述され、更に項目“SEM”にslap(1, 2)”と記載されているので、構文上の主語が意味上の主語となり、構文上の目的語が意味上の目的語となることをリストから知ることができる。また、図5からわかるように、“slapped” という単語に関しては、構文上の主語が意味上の目的語となり、構文上の目的語が意味上の主語となることをリストから知ることができる。
【0032】
そして、構文解析部32は、上述のような単語情報に基づいて文書中のセンテンスの単語ごとに語彙項目を取得すると共に文法情報に基づく制約に従って、図6に例示するような「名詞句(NP)」、「動詞句(VP)」、「文(Sentence)」等、文中の要素の階層的構造(図中実線参照)を示すと共に、述語(単語“slaps”)と、その項、すなわち意味上の主語(単語“Mary”)や目的語(単語“John”)との関係である述語項関係を示す構造木を取得する。例えば、“Mary slaps John”という英文が構文解析部32に与えられると、図4に示すように、“slaps”という単語は、単語情報(リスト)から、右側に名詞(noun)を1つ取ることができる動詞であると認識され、“John”という単語のリスト(HEAD)には、“prernn”と記述されているので、“slaps”と“John”が隣接しているときには、これら2つの単語が組み合わさって“slaps John”という句を構成していると認識される。更に、“slaps John”という句は、左側に名詞を取ることができる動詞句であり、その左側に“Mary”という単語(固有名詞)が存在していると、“Mary slaps John”という英文の構文木が取得されることになる。また、隣接し合う句同士が互いに組み合わされ得る性質をもっているときには、より大きな句が認識されることになる。また、上記“Mary slaps John”という英文に関しては、“slap”の構文上の主語・目的語はそのまま意味上の主語・目的語として認識されるが、図5からわかるように、“John is slapped by Mary”という英文に関しては、構文上の主語・目的語がそれぞれ意味上の目的語・主語として認識される。これにより、様々なセンテンス中に統語的変形(例えば、受身形“John is slapped by Mary”や、関係代名詞“John who Mary slaps”等)が存在して表層的な表現が異なっている場合でも、図4および図5の最上段に示すように、意味上の主語、目的語等の関係すなわち述語項構造は実質的に同一であることが認識される。構文解析部32は、このような処理を再帰的に行うことで文書中のセンテンスごとに述語項関係を示す構文木を取得し、構文解析の結果を示す所定の態様のデータとしてインデックス作成部34に出力する。なお、データベース上で取り扱う文書の言語を単一のものとする場合には、構文解析アルゴリズム、文法情報および単語情報として当該言語に対応したものを予め用意すればよく、多数の言語からなる文書を取り扱う際には、構文解析アルゴリズム、文法情報および単語情報として各言語に対応したものを用意すればよい。このようなHPSGに基づく構文解析を実行するパーザの一例としては、英文のセンテンスの構文木および述語項構造を取得すべく開発された“Enju”が知られている(“Enju”については <http://www-tsujii.is.s.u-tokyo.ac.jp/enju/index.html> 参照。)。
【0033】
続いて、ステップS110における用語認識部33による用語認識処理について説明する。まず、先の“Mary slaps John”という例文に対して、“Mary hits John”という英文を考える。これら2つの英文は、表層的な表現が異なるものではあるが、単語“slaps”と単語“hits”とは互いに実質的に同一の意味を示すものであることから、文として実質的に同じ意味内容(関係概念)を示すものである。従って、同一の実体的意味をもつ句や単語、あるいはそれを含むセンテンス等の検索を可能とするためには、このような単語のもつ実体的意味をも考慮する必要がある。このため、実施例の管理サーバ30には、句や単語の各々の実体的意味に関する用語情報を用いて用語認識処理を実行する用語認識部33が管理サーバ30に構築されている。実施例では、用語認識部33の用語情報として、動詞表現がセンテンスの述語項構造の表記に重要な役割を果たすことを踏まえ、動詞の同義語や名詞化表現に関するオントロジーが用意されている。この動詞に関するオントロジーは、動詞を実体的な意味ごとに分類したときに現れる実体的意味(同義語を代表するもの)のそれぞれに一意のID(以下「オントロジーID」という)を付与すると共に、各オントロジーIDに同義の動詞や動詞の名詞化表現等を対応付けしたデータベースとして予め作成され、図示しない所定の記憶装置に記憶されたものである。加えて、実施例では、用語認識部33の用語情報として、データベース化の対象とされる文書の分野(例えば、生物学、医学といった分野)における用語(術語)を現実社会における実体的意味ごとに分類したときに現れる実体的意味のそれぞれに一意のIDを付与すると共に、各オントロジーIDに同義語を対応付けしたオントロジーが用意されている。このような特定分野におけるオントロジーの一部を図7に例示する。同図は、遺伝子・たんぱく質に関連したオントロジーにおける1つのエントリを示すものであり、このエントリには、CRPという遺伝子について、そのID(オントロジーID)、異名(Name, Synonym)、それが観測される生物種(Species)、その遺伝子がコードしているたんぱく質(Product)、外部データベースへのリンク(External links)といった情報が集約されている。図7からわかるように、このIDで表される遺伝子は“MGC88244”や“PTX1”等と表現されることもあるが、同一の実体的意味を示す遺伝子(文字列)のエントリに同一のオントロジーIDを付与しておくことにより、表層的な表現に違いがあっても同一の実体的意味を示す単語や句を抽出することが可能となる。用語認識部33は、上記用語情報を参照しながら、文書データ60に示される文書中の句や単語の各々について当該句または単語がある一つの実体的意味で括られるものであるか否かを判定し、当該句または単語が当該一つの実体的意味で括られるものであるときにはその実体的意味(オントロジーID)を取得する。そして、用語認識部33は、オントロジーIDと句または単語との対応関係を用語認識の結果を示す所定の態様のデータとしてインデックス作成部34に出力する。
【0034】
構文解析部32による構文解析の結果と用語認識部33による用語認識の結果とを受け取ったインデックス作成部34は、構文解析の結果と用語認識部33による用語認識の結果とに基づいてデータ記憶装置21上のデータベースを検索する際に用いられるインデックスを作成・出力する(ステップS120)。すなわち、インデックス作成部34は、構文解析および用語認識の結果に基づいて文書データ60をタグにより構造化する構造化モジュールと、構造化モジュールによる構造化の結果に基づいてインデックスを作成・出力する出力モジュールとを有しており(何れも図示省略)、構文解析および用語認識の結果は、まず、構造化モジュールに与えられる。インデックス作成部34の構造化モジュールは、構文解析部32による構文解析の結果に基づいて、文書データ60に示されている文書中のセンテンスと当該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共にセンテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとを上記属性を用いて対応付けする。このような文書の構造化に際して用いられるタグの種類とそれに記述される属性とを図8に例示すると共に、タグに記述される属性の内容を図9に例示する。また、構造化モジュールによって構造化された“Pretty Mary slaps John”という英文をそのまま例えばXML形式で出力した場合の出力例を図10に示す。
【0035】
図8から図10に示すように、構造化モジュールによる文書の構造化に際しては、文書中のセンテンスの各々が<Sentence>という開始タグと</Sentence>という終了タグとで囲まれる。また、センテンス中の各句は、それぞれ<phrase>という開始タグと</phrase>という終了タグとで囲まれ、それぞれの<phrase>タグにはタグのIDを示すid属性、構文上のカテゴリを示すcat属性等が記述される。タグの属性には、それぞれに対応した属性値が設定される。例えば、各<phrase>タグのid属性には、登場順にp1,p2,…,p(n),…pN(ただし、“n”および“N”は正の正数である)という属性値が設定され、cat属性には、そのタグにより囲まれる句等が例えば“so that”構文に現れるようなセンテンス中のセンテンス(S)や名詞句(NP)、形容詞句(ADJP)、動詞句(VP)等であることを示す属性値(S,NP,ADJP,VP等)が設定される。更に、各単語は、それぞれ<word>という開始タグと</word>という終了タグで囲まれ、各<word>タグには対応した単語の品詞を示すpos属性等が記述される。この場合もタグの属性には、それぞれに対応した属性値が設定され、例えば、各<word>タグのpos属性には、形容詞、固有名詞、動詞といった品詞を示す属性値が設定される。また、動詞である単語に対応した<word>タグには、rel_type属性が記述され、このrel_type属性には用語認識部33による用語認識の結果に基づくオントロジーIDすなわち当該動詞の実体的意味のオントロジーID(図10の例では、単語“slap”や“hit”に付与される“i789”)が設定される。そして、<word>タグには、構文解析により取得された文要素間の述語項関係を識別するためのarg(X)属性(X=1,2…)が記述される。実施例において、arg(X)属性は、例えば、
arg1:動詞の主部
arg2:動詞の直接目的部
arg3:動詞の間接目的部
といった関係を指定するものとして定められており、arg1属性には、それに対応した動詞の主部となる句に付与された<phrase>タグのIDが、arg2属性には、それに対応した動詞の直接目的部となる句に付与された<phrase>タグのIDが、arg3属性には、それに対応した動詞の間接目的部となる句に付与された<phrase>タグのIDがそれぞれ設定される。例えば、図10の例では、動詞“slaps”に付与された<word>タグのarg1属性の属性値が“p2”とされているが、属性値p2は、名詞句“Pretty Mary”に付与された<phrase>タグのIDと一致しており、これにより、図10において破線で示すように、“Pretty Mary”という名詞句に付与された<phrase>タグおよび</phrase>タグにより規定される領域と“slaps”という単語に付与された<word>タグおよび</word>タグにより規定される領域とが対応付けされ、動詞“slaps”の主部(arg1)が“Pretty Mary”という名詞句であると表現されることになる。また、図10の例では、動詞“slaps”に付与された<word>タグのarg2属性の属性値が“p8”とされているが、属性値p8は、単語“John”を囲む<phrase>タグのIDと一致しており、これにより、図10において破線で示すように、“slaps”という単語に付与された<word>タグおよび</word>タグにより規定される領域と“John”という単語に対応した<phrase>タグおよび</phrase>タグにより規定される領域とが対応付けされ、動詞“slaps”の目的部(arg2)が“John”という名詞(句)であると表現されることになる。つまり、実施例では、センテンス中の述語に相当する単語に対応したタグのarg(X)属性と当該述語の項となる句に対応した<phrase>タグのid属性とに同一の属性値が設定される。このように、述語である単語とその項となる句とを対応付けすることにより、センテンスにおける文要素間の意味的な関係をより適正に表現することが可能となる。更に、用語認識部33による用語認識の結果、用語(術語)であると認識された単語の<word>タグは、<entity_name>という開始タグと</entity_name>という終了タグとで囲まれ、<entity_name>タグには、用語の種類を示すtype属性や当該用語のオントロジーIDを示すontology属性が記述され、type属性には用語の種類を示す属性値が記述されると共に、ontology属性には用語情報から取得されたオントロジーIDの値が属性値として記述される。例えば、図10の例では、単語“Mary”や“John”に対して<entity_name>タグが付与されており、type属性には「人名」という種別が、“Mary”のontology属性には“i1234”が、“John”のontology属性には“i3456”がそれぞれ属性値として設定されている。
【0036】
ここで、上述のようなごく単純な“Pretty Mary slaps John”という英文であっても、それをXMLにより構造化した場合、図10に示す程度のデータとなってしまう。そして、特に学術論文等における文要素間の意味的な関係は、極めて複雑に入り組んだものであることが多いから、XMLにより文要素間の意味的な関係をも含めて文書を表記すると、データ構造が極めて複雑なものとなってしまう。従って、XPathやXquryといった問い合わせ言語を用いても、構造化モジュールによる図10に示すような構造化データに基づいて関係概念を検索条件とした検索を迅速かつ高精度に実行することは極めて困難となる。このため、実施例の管理サーバ30においては、構造化モジュールによる文書の構造化の結果を所定の態様で出力モジュールに与え、出力モジュールに、タグ、単語およびタグの属性(属性名、存在している場合には更に属性値)の各々の記述位置と階層深さとを示すインデックスを構造化データとして出力させている。そして、インデックス作成部34により作成・出力されたインデックスがステップS100にて入力された文書データ60に対応付けされた状態でインデックス保持部35により保持されると(ステップS130)、本処理が一旦終了することになる。
【0037】
インデックス作成部34の出力モジュールにより出力されたインデックスの一例を図11に示す。同図は、図10の出力例に対応したもの、すなわち“Pretty Mary slaps John”という英文に対応したインデックスを示すものである。図11に示すように、各タグ、各タグの属性名および属性値ならびに各単語には、1(記述位置):0(階層深さ),2:1…といったようにそれぞれ一まとまりとしてテキストの先頭からの記述位置と階層深さとが与えられる。この際、タグの属性および属性値は、対応したタグ名と共にインデックス化される。また、階層深さは、<phrase>タグおよびその属性に関しては基本的には図10の出力例における各タグや属性等の階層の深さに基づくものとされるが、実施例では、<Sentence>タグ、<word>タグやそれぞれの属性、<entity_name>タグやその属性、単語等に関しては、階層深さ=0とされている。これにより、実施例において、階層深さは、あるタグ領域を含むそれと同じ名称のタグで囲まれる領域の数を示すことになる。このような構造化データとしてのインデックスは、センテンス(文書)をいわゆる木構造ではなくタグ領域の集合として扱ってタグ、単語、タグの属性の各々のアドレスを提供するものである。これにより、インデックスの記述位置と階層深さとを参照すれば、 ある単語を囲むタグにより規定される領域の外側にそれと同じ名称のタグにより規定される領域が存在していても、例えば後述の領域代数の枠組みを用いることにより、ある単語を囲む最小のタグ領域から最大のタグ領域までを容易に特定することができる。また、インデックスを参照すれば、図10において破線で示すようなセンテンス中の述語項構造に基づくタグの対応関係をも容易に特定することが可能となる。
【0038】
以上説明したように、データ変換装置としての文書入力部31、構文解析部32、用語認識部33およびインデックス作成部34を含む管理サーバ30においては、例えば所定言語からなる文書を示す新たな文書データ60がデータ記憶装置21上のデータベースに蓄積される際に、まず、ステップS100にて入力された文書データ60と当該所定言語の文法情報および単語情報を用いたセンテンスの構文解析が実行される(ステップS110)。続いて、構文解析の結果に基づいて、文書中のセンテンスに含まれる句と単語とにはそれぞれ対応した属性が記述される所定のタグが付与されると共に、センテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとが属性を用いて対応付けされ、最終的に、タグ、単語およびタグの属性の各々の記述位置と階層深さとを示すインデックスが構造化データとして出力される(ステップS120)。そして、出力されたインデックスは、文書データ60に対応付けされた状態でインデックス保持部35により保持される(ステップS130)。こうして作成されるインデックスには、上述のようにタグ、単語およびタグの属性の各々の実質的なアドレスが示されることになるので、インデックスを参照すれば、開始タグと終了タグとの対応関係により規定されるセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することが可能となる。従って、実施例の管理サーバ30によれば、文書中のセンテンスに含まれる述語(述部)と項との間の意味的な関係である述語項関係の表記と、そのような意味的な関係により規定される概念を検索条件とした検索とを可能とする構造化データとしてのインデックスを実現することが可能となる。そして、このようなインデックスを文書データ60ごとに保持しておけば、インデックスを参照することにより文書中のセンテンスの構文木や述センテンス中の述語項構造を容易に特定することができるので、文書データ60を複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【0039】
また、実施例の管理サーバ30に含まれる構文解析部32は、HPSGに基づく構文解析を実行してセンテンスの構文木および述語項構造を取得するパーザとして構成されているので、センテンスをより精度よく構文解析して、インデックスにおける述語と項との対応付けをより適正なものとすることが可能となる。更に、実施例の管理サーバ30に含まれる用語認識部33は、所定の用語情報に基づいてセンテンスに含まれる句または単語の各々について当該句または単語がある一つの実体的意味で括られるものであるか否かを判定すると共に当該句または単語が当該一つの実体的意味で括られるものであるときにはその実体的意味を取得するものであり、インデックス作成部34は、用語認識部33により取得された実体的意味を示す属性値(オントロジーIDの値)をインデックス中のタグのrel_type属性やontolgy属性に記述する。これにより、インデックスにおいて、実質的に同一の意味(概念)を示すにも拘わらず表層的な表現が異なっている句または単語に対応したタグに同一の実体的意味を示す属性値が記述されることになるので、インデックス保持部35により保持されているインデックスを用いれば、同一の実体的意味をもつ句や単語、あるいはそれを含むセンテンス等の検索も容易に実行可能となる。
【0040】
なお、図2のインデックス作成処理は、既存のデータベースに対して実施例の管理サーバ30を適用し、データベース上の文書データを個別に管理サーバ30に取り込んだ上で文書データごとにインデックスを作成する際に実行されてもよい。いずれにしても、上記インデックスは、検索要求に先立って、文書データ60と所定言語の文法情報および単語情報を用いた文書の構文解析の結果に基づいて予め作成されていると好ましい。これにより、実際の検索処理の負担を軽減して検索条件の入力から検索結果の出力までに要する時間を短縮化することが可能となる。
〔検索処理〕
【0041】
引き続き、実施例のデータベース検索システム20におけるインデックスを用いたデータ記憶装置21上のデータベースの検索処理について説明する。
【0042】
図12は、実施例の管理サーバ30により実行される検索処理の一例を示すフローチャートである。同図に示す検索処理は、端末50においてユーザにより検索要求がなされたときに実行されるものである。実施例では、端末50から管理サーバ30にアクセスすると、端末50の表示画面上に図13に示すような検索画面が表示される。この検索画面には、主語または主部に相当する単語または句を入力可能な“subject”ボックスと、述語または述部に相当する動詞または動詞句を入力可能な“verb”ボックスと、目的語または目的部に相当する単語または句を入力可能な“object”ボックスとが用意されている。従って、ユーザは、“subject”ボックス、“verb”ボックスおよび“object”ボックスの少なくとも何れかに所望の検索単語としての単語や句を入力すれば、データ記憶装置21上のデータベースの検索を要求することができる。また、verb”ボックスと“subject”ボックスおよび“object”ボックスの少なくとも何れか一方とに検索単語としての単語や句を入力すれば、文要素間の意味的な関係により規定される概念すなわち文要素間の述語項関係を検索条件とした検索を要求することが可能となる。実施例では、検索要求に対する検索結果は、デフォルトでは、センテンス単位で出力されるが、検索画面上の“Advanced Search”タブをクリックして詳細な設定を行えば、例えば文書単位で検索結果が出力されるように設定変更することができる。また、図13に示すように、検索画面上で“Keyword Search”タブをクリックすれば、より一般的なキーワード検索用の検索画面(図示省略)が表示画面上に表示される。更に、“GCL Search”タブをクリックすれば、後述する検索クエリの直接入力を可能とする検索画面(図示省略)が表示画面上に表示される。
【0043】
図13の検索画面において、例えば“subject”ボックスに“Mary”という検索単語が、“verb”ボックスに“slaps”という検索単語が入力されると、端末50からその旨を示す信号が管理サーバ30へと送信されて検索条件として入力受付部36により受け付けられる(ステップS200)。入力受付部36は、受け付けた検索条件すなわち検索単語“Mary”および“slaps”と、「slaps”の主語が“Mary”である」という検索単語間の述語項関係とを検索処理部37に与え、検索処理部37は、受け取った「主語が検索単語“Mary”であり、かつ述語が検索単語“slaps”であるセンテンス」という検索条件に基づいて検索クエリを設定する(ステップS210)。この場合の検索クエリは、次式(1)のようなものとなる。また、例えば“subject”ボックスに“Mary”という検索単語が、“verb”ボックスに“slaps”という検索単語が、“object”ボックスに“John”という検索単語が入力された場合には、ステップS210にて次式(2)のような検索クエリが設定される。
【0044】
[sentence] >> (([word arg1="$s"] >> "slaps") & ([phrase id="$s"] > "Mary"))…(1)
[sentence] >> (([word arg1="$s" arg2="$o"] >> "slaps") & ([phrase id="$s"] > "Mary")) & ([phrase id="$o"] > "John"))…(2)
【0045】
ここで、ステップS210における検索クエリの設定の仕方について説明する。実施例のデータベース検索システム20における検索処理は、インデックス保持部35に保持されているインデックスに基づいて領域代数の枠組みを用いながら検索条件に適合する領域を求めるものである。そして、実施例においては、領域間の包含関係や順序関係等が図14に示す7つの演算子(>,>>,<,<<,&,|,−)を用いて指定される。これら7つの演算子のうち、特徴的なものは、“>”および“<”という2つの演算子である。すなわち、一般的な領域代数の枠組みにおいて領域間の包含関係を指定する演算子“<<”や“>>”は、基本的に、ある名称のタグで囲まれる領域内にそれと同じ名称のタグが存在していないという仮定の下に、入れ子構造をなす最小のタグ領域を探し出すときに用いられるものである。例えば、図11のインデックスに対して、“[phrase] >> "Mary" ”というクエリを実行すると、<phrase>タグと</phrase>タグとで規定されると共に単語“Mary”を含む(囲む)最小の領域として、id属性に属性値p5が記述されている<phrase>タグに対応した領域のみが抽出される。これに対して、“>”と“<”という2つの演算子は、例えば“<phrase> <phrase> A </phrase> </phrase>”といったように、ある名称のタグで囲まれる領域内にそれと同じ名称のタグが存在している場合に、それらのタグ領域のすべてを抽出するために導入されたものである。例えば、図11のインデックスに対して“[phrase] > "Mary" ”というクエリを実行すると、id属性に属性値p1が記述されている<phrase>タグに対応した領域と、id属性に属性値p2が記述されている<phrase>タグに対応した領域と、id属性に属性値p5が記述されている<phrase>タグに対応した領域とが抽出されることになる。いずれにしても、インデックスに示されている記述位置と階層深さとを参照することにより、これらの処理は、迅速に実行され得る。ただし、“>”や“<”を用いた処理は、“>>”や“<<”を用いた処理に比べて若干の時間を要するものであることから、迅速な検索を実行する上では、“>”や“<”を用いた処理は、<phrase>タグのように、ある名称のタグで囲まれる領域内にそれと同じ名称のタグが存在することが判明しているタグについてのみ用いると好ましい。
【0046】
また、入れ子構造をなしてはいないが互いに対応関係を有しているタグ領域を探し出すためには、インデックス上で互いに離間し合っている属性値同士を参照する必要がある。これに対処すべく、実施例では、式(1)や式(2)に示すように、変数$x(“x”には、主語であれば“s”、目的語であれば“o”といった識別子が導入される)を検索クエリに導入し、「あるタグT1の属性A1の属性値が他のタグT2の属性A2の値と同一である」ということを表現できるようにしている。例えば、式(1)の場合、
“([word arg1=“$s”] >> slaps) & ([phrase id=”$s”] > “Mary”)”
という変数$sを含む部分により、“slaps”に対応したarg1の属性値が“Mary”を含むphraseのid属性の属性値と同一である、ということを表現している。実施例において、変数$xは、基本的にid属性およびarg(X)属性に記述されてセンテンス中の文要素間における述語項関係を示す属性値p1,p2,…p(n)を対象とするものであり、検索条件として受け付けられた述語項関係の数だけ出現することになる(式(2)については2個の変数が出現する。)。上述のような演算子“>”および“<”と変数$xとを導入した上で、センテンス(文書)をいわゆる木構造ではなくタグ領域の集合として扱ってタグ、単語、タグの属性の各々のアドレスを提供するインデックスを参照することにより、以下に説明するように、文要素間の意味的な関係により規定される概念を検索条件としながら迅速かつ高精度な検索を実行することが可能となる。
【0047】
さて、ステップS210にて検索クエリを設定すると、検索処理部37は、まず、設定した検索クエリに現れる最大の検索対象領域である最大検索領域を識別する(ステップS220)。ここでいう最大検索領域とは、検索クエリに含まれ得る“sentence”,“phrase”,“word”といったタグにより規定される領域のうちの最も広い領域である。検索クエリが式(1)のように、「センテンス」を検索結果として要求するものである場合には、検索クエリに現れる最大検索領域は、検索結果と同様に“sentence”領域となる。なお、検索クエリが演算子“<<”等を用いて、例えば「…というセンテンスに含まれる××という句」といった検索クエリを要求するものであるときには、上記最大検索領域は、検索結果に対応した“phrase”領域ではなく、“sentence”領域となる。こうして最大検索領域を識別したならば、検索処理部37はインデックス保持部35のすべてのインデックスを参照してステップS200にて受け付けたすべての検索単語を含む最大検索領域(この場合“sentence”領域)の開始タグおよび終了タグをすべて抽出する処理を実行し(ステップS230)、更に、全検索単語を含む最大検索領域が存在するか否かを判定する(ステップS240)。ステップS240にて全検索単語を含む最大検索領域が存在していないと判断されたときには、ヒット件数がゼロであることになるので、検索処理部37によりヒット件数がゼロであることを示す最終的な検索結果が作成されると共に(ステップS380)、そのような検索結果が結果出力部38から検索要求が実行された端末50へと送信され(ステップS390)、検索処理が一旦終了することになる。この場合には、端末50の表示画面には、例えば「“Mary”“slaps”に該当するセンテンスは見つかりませんでした。」といったような検索結果が表示されることになる。
【0048】
一方、例えば上記検索条件に対して図11のインデックスに示される“Sentence”領域が抽出された場合のように、ステップS240にて全検索単語を含む最大検索領域が少なくとも1つ存在していると判断した場合、検索処理部37は、ステップS200にて受け付けられた検索単語の各々のデータベースにおける出現頻度(出現回数)を取得する(ステップS250)。実施例において、出現頻度は、データベース上に現れるすべての単語ついて予め求められた上でデータ記憶装置21または管理サーバ30の所定の記憶装置に記憶されており、ステップS250にて検索処理部37は当該記憶装置からS200にて受け付けられた検索単語の各々の出現頻度を読み出す。そして、検索処理部37は、取得した各検索単語の出現頻度に基づいてステップS210にて設定された検索クエリに含まれる変数$xを決定するための部分クエリを設定する(ステップS260)。ステップS260において、検索処理部37は、次のようにして部分クエリを設定する。この場合、まず、ステップS210にて設定された検索クエリを変数$xごとの部分に分解した上で、互いに述語項関係にある検索単語のうちの出現頻度がより小さい一方の検索単語に対応した部分を部分クエリとして設定する。例えば、検索クエリが式(1)に示すものであり、かつ単語“Mary”の出現頻度が単語“slaps”の出現頻度よりも小さい場合には、当該検索クエリは次式(3)および(4)に示す2つの部分に分解され、出現頻度が小さい単語“Mary”に対応した式(4)に示すものが部分クエリとして設定される。また、検索クエリが式(2)に示すものであるときには、当該検索クエリは、次式(4)から(6)に示す3つの部分に分解され、例えば単語“Mary”や単語“John”の出現頻度が単語“slaps”の出現頻度よりも小さい場合には、次式(4)および(5)に示すものが部分クエリとして設定される。すなわち、ステップS260では、検索条件として受け付けられた述語項関係の数だけ部分クエリが設定されることになる。
【0049】
[word arg1=“$s”] >>“slaps”…(3)
[phrase id=“$s”] >“Mary”…(4)
[phrase id=“$o”] >“John”…(5)
[word arg1="$s" arg2="$o"] >> "slaps" …(6)
【0050】
こうして部分クエリを設定すると、検索処理部37は、所定の制約に従ってステップS230にて抽出された最大検索領域のうちの最初の処理対象となる最大検索領域を設定した上で(ステップS270)、ステップS260にて設定した部分クエリのうち、出現頻度がより小さい検索単語を含む部分クエリを実行部分クエリとして設定する(ステップS280)。そして、ステップS280にて設定した部分クエリから変数を除いたクエリを実行し、当該クエリの実行結果として返されるすべての変数値を取得・保持する(ステップS290)。すなわち、検索クエリが式(1)に示すものであり、かつ単語“Mary”の出現頻度が単語“slaps”の出現頻度よりも小さい場合、ステップS280では式(4)から変数$sを除いた[phrase] >“Mary”というクエリが実行され、それにより、例えば図11のインデックスに示される“Sentence”領域が対象最大検索領域である場合には、当該インデックスから変数値としてp1,p2,p5が取得・保持される。次いで、検索処理部37は、ステップS260にて設定されたすべての部分クエリが上述のようにして処理されたか否かを判定し(ステップS300)、すべての部分クエリが処理されていなければ、すべての処理が完了するまでステップS270およびS280の処理を繰り返し実行する。すなわち、検索クエリが式(2)に示すものであり、かつ単語“Mary”の出現頻度が単語“John”の出現頻度よりも小さい場合には、まず例えば式(4)から変数$sを除いたクエリが実行されて実行結果として返されるすべての変数値が取得・保持された後、式(5)から変数$oを除いた[phrase] >“John”というクエリが実行されて実行結果として返されるすべての変数値が取得・保持されることになる(図11のインデックスからは値p1,p6,p8が返される)。そして、すべての部分クエリが処理されると、検索処理部37は、ステップS260にて設定された部分クエリごとに得られた変数値のすべての組み合わせを取得する(ステップS310)。例えば、検索クエリが式(1)に示すものであるときには、式(4)から変数$sを除いたクエリの実行結果として返される変数値(p1,p2,p5等)がステップS310における取得結果となる。また、検索クエリが式(2)に示すものであるときには、式(4)から変数$sを除いたクエリの実行結果として返される変数値(p1,p2,p5等)と、式(5)から変数$oを除いたクエリの実行結果として返される変数値(p1,p6,p8等)との組み合わせがステップS310における取得結果となる。すなわち、部分クエリが2つある場合には、一方の部分クエリに基づいて得られた変数値をpxとし、他方の部分クエリに基づいて得られた変数値をpyとすれば、(px,py)のすべての組み合わせがステップS310における取得結果となる。
【0051】
ステップS310の処理の後、検索処理部37は、取得した変数値の組み合わせの中から、所定の制約に従って最初の変数値の組を設定し(ステップS320)、設定した組の変数値をステップS210にて設定した検索クエリの対応した変数$xに代入する(ステップS330)。そして、検索処理部37は、ステップS270にて設定された対象最大検索領域が変数値代入後の検索クエリを満たしているか否かを判定し(ステップS340)、肯定判断をなした場合には、その旨を中間結果として所定の記憶領域に保持する(ステップS350)。ステップS350の処理後、あるいはステップS340にて否定判断をなした場合、検索処理部37は、すべての変数値の組を処理したか否か判定し(ステップS360)、肯定判断をなすまでステップS320からS350の処理を繰り返し実行する。ここまでの処理を図11のインデックスに示される“Sentence”領域が対象最大検索領域である場合を例にとって説明すると、検索クエリが式(1)に示すものである場合には、ステップS310にて変数値の組がp1,p2,p5として取得されていることになるので、まず式(1)の変数$sに値p1が代入され(ステップS330)、上記“Sentence”領域が値p1代入後の式(1)を満たすか否か判定される(ステップS340)。この場合、図11からわかるように、“word arg1="p1"”は存在していないことから、ステップS340にて否定判断がなされ、次に式(1)の変数$sに値p2が代入され(ステップS330)、上記“Sentence”領域が値p2代入後の式(1)を満たすか否か判定される(ステップS340)。この場合、図11からわかるように、“word arg1="p2"”が存在していることから、ステップS340にて肯定判断がなされ、図11のインデックスから抽出された<Sentence>タグおよび</Sentence>タグが中間結果として保持されることになる(ステップS350)。また、検索クエリが式(2)に示すものである場合には、ステップS310にて変数値の組が(p1,p1),(p1,6),…(p2,p8),…として取得されていることになるので、まず式(2)の変数$sおよび$oに値p1が代入され(ステップS330)、上記“Sentence”領域が値p1代入後の式(2)を満たすか否か判定される(ステップS340)。この場合、図11からわかるように、“word arg1="p1"”および“word arg2="p1"”は存在していないことから、ステップS340にて否定判断がなされる。その後、ステップS330,S340の処理が繰り返され、ステップS330にて、式(2)の変数$sに値p2が変数$oに値p8が代入されると(ステップS330)、ステップS340にて“word arg1="p2"”および“word arg2="p8"”が存在していると判断され、図11のインデックスから抽出された<Sentence>タグおよび</Sentence>タグが中間結果として保持されることになる(ステップS350)。なお、ステップS210にて式(2)の検索クエリが設定された場合であって、検索単語“slaps”の出現頻度が3つの検索単語の中で最小である場合には、ステップS280にて上記式(6)のクエリが最初に実行される部分クエリとして設定され、このクエリから変数$xを除いたものが実行されると(ステップS290)、その段階で変数値のすべてが取得されることになる。従って、この場合には、式(4)または(5)の何れかの部分クエリを処理する必要はない。また、ステップS210にて式(2)の検索クエリが設定された場合であって、検索単語“slaps”の出現頻度が3つの検索単語の中で2番目に小さい場合には、ステップS280にて上記式(4)または(5)に基づくクエリが最初に実行され、その後、上記(6)式に基づくクエリが実行されることになる。この場合、最初に式(4)または(5)に基づくクエリが実行されると、変数$sまたは$oの何れか一方に対応した変数値が取得されるので、次に上記(6)式に基づくクエリを実行する際には、取得されていない他方の変数値のみを取得すればよい。
【0052】
ステップS360の処理の後、検索処理部37は、ステップS230にて抽出されたすべての最大検索領域を処理したか否かを判定し(ステップS370)、すべての最大検索領域が処理されていなければ、処理が完了するまでステップS270からS360までの処理を繰り返す。そして、ステップS370にて肯定判断をなしたときには、検索処理部37は、上記記憶領域に保持されている中間結果に基づいて最終的な検索結果を作成する(ステップS380)。この場合、上記記憶領域に中間結果が保持されていなければ、ステップS380ではヒット件数がゼロであることを示す最終的な検索結果が作成されることになる。そして、最終的な検索結果が結果出力部38から検索要求が実行された端末50へと送信され(ステップS390)、検索処理が一旦終了することになる。
【0053】
以上説明したように、実施例のデータベース検索システム20は、文書データ60ごとに作成されたインデックスを保持するインデックス保持部35を備えている。そして、文書データ60ごとのインデックスは、上述のように、それぞれ対応した文書中のセンテンスと当該センテンスに含まれる句と単語との各々に付与された所定のタグ、単語およびタグに記述される属性の各々の記述位置と階層深さとを示すと共にセンテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとを属性により対応付けするものである。従って、インデックスを参照すれば、開始タグと終了タグとの対応関係により規定される文書中のセンテンスの構文木や、述語に相当する単語に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することができる。これを踏まえて、実施例のデータベース検索システム20では、複数の検索単語と当該検索単語間の述語項関係とが検索条件として受け付けられると(ステップS200)、インデックスに基づいて、受け付けられた検索単語をすべて含むタグ領域が抽出される(ステップS230)。より詳細には、ステップS200にて受け付けられた検索単語と述語項関係とに基づいて、当該述語項関係を対応付けする属性値p(n)を変数$xとした検索クエリが設定され(ステップS210)、設定された検索クエリに現れる最大の検索対象領域である最大検索領域が識別された上で(ステップS220)、ステップS200にて受け付けられた検索単語をすべて含む最大検索領域の開始タグおよび終了タグが抽出される(ステップS230)。そして、インデックス、すなわち述語に相当する単語に付与されたタグと当該述語の項となる句に付与されたタグとを対応付けするid属性やarg(x)属性の属性値p(n)のアドレスに基づいて、抽出されたタグ領域(最大検索領域)に含まれる検索単語に対応したタグ間でステップS200にて受け付けられた述語項関係に合致した対応付けがなされているか否かが判定される(ステップS340)。より詳細には、ステップS200にて設定された検索クエリを分解して得られる検索単語の何れかと変数$xとを含む少なくとも一つの部分クエリから当該変数$xを除いたクエリが実行され(ステップS290)、実行結果として返された変数値p(n)を代入した検索クエリに合致する最大検索領域が存在するか否かが判定された上で(ステップS320〜S340)、その判定の結果に基づいて検索結果が出力される(ステップS380,S390)。これにより、実施例のデータベース検索システム20によれば、文書データ60を複数蓄積したデータ記憶装置21上のデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索すると共に、より精度のよい検索結果を迅速に得ることが可能となる。また、実施例のデータベース検索システム20では、互いに述語項関係にある検索単語のうちの出現頻度がより小さい一方の検索単語に対応したタグに記述されている属性値を変数$xとして当該変数の値p(n)を取得し、取得した変数値p(n)に一致する属性値が設定されている他方の検索単語に対応したタグが存在するか否かを判定している(ステップS320〜S360)。すなわち、上記実施例では、ステップS210にて設定された検索クエリを分解して得られるクエリの中から、互いに述語項関係にある検索単語のうちの出現頻度がより小さい一方の検索単語を含むものを部分クエリとして設定し(ステップS260)、その部分クエリに基づいて当該出現頻度がより小さい一方の検索単語に対応したタグに記述されている属性値を変数値として得ている(ステップS290)。このように当該出現頻度がより小さい一方の検索単語に対応したタグに記述されている属性値を変数とすれば、ステップS290にて取得される変数値の数がより少なくなり、その分だけ判定対象とすべき他方の検索単語に対応したタグの数を減らすことができる。これにより、属性値として同一の値が記述されている検索単語に対応したタグの対の有無を短時間で効率よく判定することが可能となる。
【0054】
なお、図12の検索処理においては、ステップS260にて設定されたすべての部分クエリに基づいて部分クエリごとに変数値を取得した上で(ステップS290)、変数値の組み合わせを取得し(ステップS310)、変数値の組を検索クエリに代入して(ステップS330)対象となる最大検索領域が変数代入後の検索クエリを満たすか否かを判定しているが(ステップS340)、これに限られるものではない。すなわち、検索処理の効率等をより改善してより迅速な検索を実行するためには、図15に例示するアルゴリズムに従った次のような変形例としての検索処理を実行してもよい。この場合、例えば、ステップS260にて2つの部分クエリが設定された場合には、ステップS270にて設定された対象最大検索領域について、出現頻度がより小さい検索単語に対応した一方の部分クエリ(第1の部分クエリ)から変数$xを除いたクエリを実行し、まず変数値を1つだけ取得する。次いで、他方の部分クエリ(第2の部分クエリ)から$xを除いたクエリを実行して変数値を順次取得すると共に、第1の部分クエリに基づく上記1つの変数値と第2の部分クエリに基づく変数値とを代入した検索クエリを対象最大検索領域が満たしているか否か判定する。ここで否定判断がなされた場合には、再度第1の部分クエリに基づいて2つ目の変数値を取得する。そして、再度第2の部分クエリから$xを除いたクエリを実行して変数値を順次取得すると共に、第1の部分クエリに基づく上記2つ目の変数値と第2の部分クエリに基づく変数値とを代入した検索クエリを対象最大検索領域が満たしているか否か判定する。以下、こういった処理を順次繰り返すことにより、検索条件に合致した最大検索領域が存在するか否かを判定する。このような変形例の検索処理によれば、
検索対象のタグ領域をより適正に減らしてより迅速な検索を実現することが可能となる。
【産業上の利用可能性】
【0055】
本発明は、情報処理分野において有用である。
【図面の簡単な説明】
【0056】
【図1】本発明の一実施例に係るデータベース検索システム20を示す概略構成図である。
【図2】実施例のデータベース検索システム20に含まれる管理サーバ30において実行されるインデックス作成処理の一例を示すフローチャートである。
【図3】文要素間の意味的関係を表現したラベル付き有向グラフの一例を示す説明図である。
【図4】実施例の管理サーバ30の構文解析部32に対して用意される単語情報と、当該単語情報等を用いた構文解析の手順を説明するための説明図である。
【図5】実施例の管理サーバ30の構文解析部32に対して用意される単語情報と、当該単語情報等を用いた構文解析の手順を説明するための説明図である。
【図6】センテンスを構文解析して得られる構文木の一例を示す説明図である。
【図7】特定分野におけるオントロジーを例示する説明図である。
【図8】実施例の管理サーバ30におけるインデックスの作成に際して、文書の構造化に用いられるタグの種類とそれに記述される属性とを例示する図表である。
【図9】図7に例示されたタグに記述される属性の内容を例示する図表である。
【図10】実施例の管理サーバ30のインデックス作成部34により構造化された英文をXML形式で出力した場合の出力例を示す説明図である。
【図11】実施例のインデックス作成部34により作成されたインデックスの一例を示す説明図である。
【図12】実施例の管理サーバ30により実行される検索処理の一例を示すフローチャートである。
【図13】実施例の管理サーバ30に接続された端末50の表示画面に表示される検索画面の一例を示す説明図である。
【図14】実施例のデータベース検索システム20における検索処理に際して用いられる演算子を例示する図表である。
【図15】実施例のデータベース検索システム20における検索処理の変形例を実現するためのアルゴリズムの一例を示す説明図である。
【符号の説明】
【0057】
20 データベース検索システム、21 データ記憶装置、30 管理サーバ、31 文書入力部、32 構文解析部、33用語認識部、34 インデックス作成部、35 インデックス保持部、36 入力受付部、37 検索処理部、38 結果出力部、40 ネットワーク、50 端末、60 文書データ。
【技術分野】
【0001】
本発明は、所定言語からなるセンテンスを示すデータを文法上の意味的な注釈が付与された構造化データに変換するデータ変換装置および方法、所定言語からなる文書の文書データを複数蓄積したデータベースを管理するためのデータベース管理装置および方法、ならびに所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索システムおよび方法に関する。
【背景技術】
【0002】
従来から、文書等の意味や構造を記述するためのマークアップ言語として、XML(Extensible Markup Language)が知られており、XMLを用いて構造化された文書データを蓄積した文書データベースも徐々に普及しつつある。また、このようなXMLデータベースの検索に用いられる問い合わせ言語としては、XPath(非特許文献1参照。)やXQuery(非特許文献2参照。)等が知られている。
【非特許文献1】XML Path Language (XPath) Version 1.0 W3C Recommendation 16 November 1999,インターネット< http://www.w3.org/TR/xpath >
【非特許文献2】XQuery 1.0: An XML Query Language W3C Candidate Recommendation 8 June 2006,インターネット< http://www.w3.org/TR/xquery/ >
【発明の開示】
【発明が解決しようとする課題】
【0003】
ところで、近年では、様々な分野において文献や学術論文といった文書の大規模なデータベース化が進められており、それに伴い、大規模な文書データベースを効率よく検索可能とする技術に対するニーズも高まっている。この場合、学術論文等に対して一般的なキーワード検索を適用しても、検索キーワードのすべてを含む文書が検索結果として出力されるだけであるから、所望の文書に的確かつ迅速にアクセスできるようにするには、例えば文書中の述語とその項との対応関係といった文要素(単語や句)間の意味的な関係により規定される概念である関係概念をも検索条件として設定できるようにすべきである。しかしながら、文要素間の意味的な関係は、極めて複雑に入り組んだものであることが多く、XMLにより文要素間の意味的な関係をも含めて文書を表記すると、データ構造が極めて複雑なものとなってしまい、XPathやXQueryといった問い合わせ言語を用いても上述のような関係概念を検索条件とした検索を迅速かつ高精度に実行することは極めて困難となる。
【0004】
そこで、本発明によるデータ変換装置および方法は、単語や句といった文要素間の意味的な関係の表記と当該意味的な関係により規定される概念を検索条件とした検索とを可能とする構造化データを提供することを目的とする。また、本発明によるデータベース管理装置および方法ならびにデータベース検索システムおよび方法は、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索可能とすることを目的とする。
【課題を解決するための手段】
【0005】
本発明によるデータ変換装置および方法、データベース管理装置および方法、ならびにデータベース検索システムおよび方法は、上述の目的の少なくとも一部を達成するために以下の手段を採っている。
【0006】
本発明によるデータ変換装置は、
所定言語からなるセンテンスを示すデータを文法上の意味的な注釈を含む構造化データに変換するデータ変換装置であって、
前記データと前記所定言語の文法情報および単語情報とを用いて前記センテンスの構文解析を実行する構文解析手段と、
前記構文解析手段による構文解析の結果に基づいて、それぞれ対応した属性が記述される所定のタグを前記センテンスに含まれる句と単語とに付与すると共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを前記構造化データとして出力する構造化データ出力手段と、
を備えるものである。
【0007】
このデータ変換装置では、所定言語からなるセンテンスを示すデータを構造化データへと変換するに際して、まず、当該センテンスを示すデータと上記所定言語の文法情報および単語情報とを用いたセンテンスの構文解析が実行される。そして、構文解析の結果に基づいて、センテンスに含まれる句と単語とにはそれぞれ対応した属性(属性名、存在する場合には更に属性値)が記述される所定のタグが付与されると共に、センテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとが属性を用いて対応付けされ、最終的に、タグ、単語およびタグの属性の各々の記述位置と階層深さとを示すインデックスが構造化データとして出力される。これにより、構造化データすなわちインデックスには、タグ、単語およびタグの属性の各々の実質的なアドレスが示されることになるので、タグを用いて構造化されるセンテンスにおいて述語とその項とが複雑に入り組んでいたとしても、インデックスである構造化データを参照すれば、開始タグと終了タグとの対応関係により規定されるセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することが可能となる。従って、このデータ変換装置によれば、センテンス中の述語(述部)と項との間の意味的な関係である述語項関係の表記と、そのような意味的な関係により規定される概念を検索条件とした検索とを可能とする構造化データを実現することができる。
【0008】
また、本発明によるデータ変換装置において、前記構文解析手段は、HPSGに基づく構文解析を実行して前記センテンスの構文木および述語項構造を取得するパーザであってもよい。これにより、センテンスをより精度よく構文解析して、インデックスにおける述語と項との対応付けをより適正なものとすることが可能となる。
【0009】
更に、本発明によるデータ変換装置は、所定の用語情報に基づいて前記センテンスに含まれる句または単語の各々について該句または単語が一つの実体的意味で括られるものであるか否かを判定すると共に前記句または単語が前記実体的意味で括られるものであるときには該実体的意味を取得する用語認識手段を更に備えてもよく、前記構造化データ出力手段は、前記取得された実体的意味を示す属性値を対応したタグの所定の属性に記述するものであってもよい。これにより、インデックスにおいて、実質的に同一の意味(概念)を示すにも拘わらず表層的表現が異なっている句または単語に対応したタグに同一の実体的意味を示す属性値が記述されることになるので、当該インデックスである構造化データを用いれば、同一の実体的意味をもつ句や単語、あるいはそれを含むセンテンス等の検索を容易に実行可能となる。
【0010】
本発明によるデータ変換方法は、
所定言語からなるセンテンスを示すデータを文法上の意味的な注釈を含む構造化データに変換するためのデータ変換方法であって、
(a)前記データと前記所定言語の文法情報および単語情報とを用いて前記センテンスの構文解析を実行するステップと、
(b)ステップ(a)の構文解析の結果に基づいて、それぞれ対応した属性が記述される所定のタグを前記センテンスに含まれる句と単語とに付与すると共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを前記構造化データとして出力するステップと、
を含むものである。
【0011】
この方法により得られるインデックスである構造化データを参照すれば、開始タグと終了タグとの対応関係により規定されるセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することが可能となる。従って、この方法によれば、センテンス中の述語と項との間の意味的な関係である述語項関係の表記と、そのような意味的な関係により規定される概念を検索条件とした検索とを可能とする構造化データを実現することができる。
【0012】
本発明によるデータベース管理装置は、
所定言語からなる文書の文書データを複数蓄積したデータベースを管理するデータベース管理装置であって、
前記文書データと前記所定言語の文法情報および単語情報とを用いて前記文書の構文解析を実行する構文解析手段と、
前記構文解析手段による構文解析の結果に基づいて前記文書中のセンテンスと該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを出力するインデックス出力手段と、
前記インデックス出力手段により出力されたインデックスを前記文書データごとに保持するインデックス保持手段と、
を備えるものである。
【0013】
このデータベース管理装置では、例えば新たな文書の文書データがデータベースに蓄積されるに際して、当該文書データと所定言語の文法情報および単語情報とを用いた文書の構文解析が実行される。そして、構文解析の結果に基づいて、文書中のセンテンスと当該センテンスに含まれる句と単語とにはそれぞれ対応した属性が記述される所定のタグが付与されると共に、センテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとが属性を用いて対応付けされた上で、タグ、単語およびタグの属性の各々の記述位置と階層深さとを示すインデックスが構造化データとして出力され、上記新たな文書と対応付けされて保持される。このように、文書データごとに上述のようなインデックスを保持しておけば、インデックスを参照することにより、開始タグと終了タグとの対応関係により規定される文書中のセンテンスの構文木や、述語に相当する単語等に付与されたタグと該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することができる。従って、このデータベース管理装置によれば、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【0014】
本発明によるデータベース管理方法は、
所定言語からなる文書の文書データを複数蓄積したデータベースを管理するためのデータベース管理方法であって、
(a)前記文書データと前記所定言語の文法情報および単語情報とを用いて前記文書の構文解析を実行するステップと、
(b)ステップ(a)の構文解析の結果に基づいて前記文書中のセンテンスと該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを出力すると共に前記文書データごとに保持するステップと、
を含むものである。
【0015】
この方法のように、文書データごとに上述のようなインデックスを保持しておけば、インデックスを参照することにより、開始タグと終了タグとの対応関係により規定される文書中のセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することができる。従って、この方法によれば、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【0016】
本発明によるデータベース検索システムは、
所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索システムであって、
前記文書中のセンテンスと該センテンスに含まれる句と単語との各々に付与された所定のタグ、前記単語および前記タグに記述される属性の各々の記述位置と階層深さとを示すと共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けするように前記文書データごとに作成されたインデックスを保持するインデックス保持手段と、
複数の検索単語と該検索単語間の述語項関係とを検索条件として受け付け可能な受付手段と、
前記インデックス保持手段により保持されているインデックスに基づいて、前記受け付けられた検索単語をすべて含むタグ領域を抽出する抽出手段と、
前記インデックスに基づいて、前記抽出手段により抽出されたタグ領域に含まれる前記検索単語に対応したタグ間で前記受け付けられた述語項関係に合致した対応付けがなされているか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて検索結果を出力する検索結果出力手段と、
を備えるものである。
【0017】
このデータベース検索システムは、文書データごとに作成されたインデックスを保持するインデックス保持手段を備えており、文書データごとのインデックスは、それぞれ対応した文書中のセンテンスと当該センテンスに含まれる句と単語との各々に付与された所定のタグ、単語およびタグに記述される属性の各々の記述位置と階層深さとを示すと共にセンテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとを属性により対応付けするものである。従って、インデックスを参照すれば、開始タグと終了タグとの対応関係により規定される文書中のセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することができる。これを踏まえて、このデータベース検索システムでは、複数の検索単語と当該検索単語間の述語項関係とが検索条件として受け付けられると、まず、インデックスに基づいて、受け付けられた検索単語をすべて含むタグ領域が抽出される。更に、上記インデックス、すなわち述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとを対応付けする属性に基づいて、抽出されたタグ領域に含まれる検索単語に対応したタグ間で検索条件として受け付けられた述語項関係に合致した対応付けがなされているか否かが判定され、その判定の結果に基づいて検索結果が出力される。これにより、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【0018】
また、前記インデックスでは、前記センテンス中の述語に相当する句または単語に対応したタグの所定の属性と該述語の項となる句または単語に対応したタグの所定の属性とに属性値として同一の値が設定されていてもよく、前記判定手段は、前記インデックスに基づいて前記属性値として同一の値が記述されている前記検索単語に対応したタグの対の有無を判定するものであってもよい。これにより、より精度のよい検索結果を迅速に得ることが可能となる。
【0019】
この場合、本発明によるデータベース検索システムは、前記単語ごとに前記データベースにおける出現頻度を記憶する出現頻度記憶手段を更に備えてもよく、前記判定手段は、互いに述語項関係にある前記検索単語のうちの前記出現頻度がより小さい一方の検索単語に対応したタグに記述されている前記属性値を変数として該変数の値を取得し、取得した変数の値に一致する前記属性値が設定されている他方の前記検索単語に対応したタグが存在するか否かを判定するものであってもよい。このように、出現頻度がより小さい一方の検索単語に対応したタグに記述されている属性値を変数とすれば、取得される変数値の数がより少なくなり、その分だけ判定対象とすべき他方の検索単語に対応したタグの数を減らすことができるので、属性値として同一の値が記述されている検索単語に対応したタグの対の有無を短時間で効率よく判定することが可能となる。
【0020】
更に、本発明によるデータベース検索システムは、前記受け付けられた検索単語と前記述語項関係とに基づいて、該述語項関係を対応付けする属性値を変数とした検索クエリを設定する検索クエリ設定手段を更に備えてもよく、前記抽出手段は、前記設定された検索クエリに現れる最大の検索対象領域である最大検索領域を識別すると共に前記受け付けられた検索単語をすべて含む最大検索領域の開始タグおよび終了タグを抽出し、前記判定手段は、前記設定された検索クエリを分解して得られる前記検索単語の何れかと前記変数とを含む少なくとも一つの部分クエリから該変数を除いたクエリを実行し、実行結果として返された前記変数の値を代入した前記検索クエリに合致する前記最大検索領域が存在するか否かを判定するものであってもよい。
【0021】
そして、前記インデックスは、前記文書データと前記所定言語の文法情報および単語情報とを用いた前記文書の構文解析の結果に基づいて予め作成されているものであってもよい。これにより、実際の検索処理の負担を軽減して検索条件の入力から検索結果の出力までに要する時間を短縮化することが可能となる。
【0022】
本発明によるデータベース検索方法は、
所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索方法であって、
(a)前記文書中のセンテンスと該センテンスに含まれる句と単語との各々に付与された所定のタグ、前記単語および前記タグに記述される属性の各々の記述位置と階層深さとを示すと共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けするように前記文書データごとに作成されたインデックスを予め作成・保持しておくステップと、
(b)複数の検索単語と該検索単語間の述語項関係とを検索条件として受け付けるステップと、
(c)前記インデックスに基づいて、前記受け付けられた検索単語をすべて含むタグ領域を抽出するステップと、
(d)前記インデックスに基づいて、ステップ(c)で抽出されたタグ領域に含まれる前記検索単語に対応したタグ間で前記受け付けられた述語項関係に合致した対応付けがなされているか否かを判定するステップと、
(e)ステップ(d)における判定結果に基づいて検索結果を出力するステップと、
を含むものである。
【0023】
この方法によれば、文書データを複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【発明を実施するための最良の形態】
【0024】
次に、実施例を参照しながら本発明を実施するための最良の形態について説明する。
【実施例】
【0025】
図1は、本発明の一実施例に係るデータベース検索システム20の概略構成図である。同図に示すように、実施例のデータベース検索システム20は、主として、データベース化された膨大なデータを記憶するデータ記憶装置21と、データ記憶装置21上のデータベースを管理すると共に当該データベースの検索を可能とする管理サーバ30とから構成されるものである。実施例のデータベースは、所定言語(例えば英語)で記載された所定分野の文献や学術論文といった文書の文書データ60を多数蓄積した文書データベースとして構築されている。また、管理サーバ30は、図示しないサーバCPU,ROM,RAM、システムバス、各種インターフェース、記憶装置、外部記憶装置等を含むものであり、この管理サーバ30には、例えばインターネット等のネットワークを介して端末50からアクセスすることができるようになっている。そして、管理サーバ30には、図1に示すように、サーバCPUやROM,RAM、各種インターフェース、記憶装置といったハードウエアと、予めインストールされた各種プログラムとの一方または双方の協働により、文書入力部31、構文解析部32、用語認識部33、インデックス作成部34、インデックス保持部35、入力受付部36、検索処理部(検索エンジン)37および結果出力部38が機能ブロックとして構築されている。
【0026】
文書入力部31は、所定のデータ形式(例えばテキスト形式)で記述された所定言語の文書を示す文書データ60の入力を受け付け、受け付けた文書データ60をデータ記憶装置21に格納すると共に当該文書データ60を構文解析部32と用語認識部33とに与える。構文解析部32は、文書入力部31からの文書データ60とそれに示される文書の言語の文法情報(文法規則)および単語情報(辞書)とを用いて文書データ60に示される文書の構文解析を実行するものである。実施例の構文解析部32は、HPSG(Head-Driven Phrase Structure Grammar)に基づく構文解析を実行して当該文書中のセンテンス(文)の構文木および述語項構造を取得するパーザとして構成されている。構文解析部32による構文解析に用いられる文法情報および単語情報は、予め用意された上でそれぞれ図示しない所定の記憶装置に記憶されている。用語認識部33は、図示しない所定の記憶装置に記憶された所定の用語情報に基づいて文書入力部31からの文書データ60に示される文書中の句や単語の各々について当該句または単語がある一つの実体的意味で括られるものであるか否かを判定すると共に上記句または単語が当該一つの実体的意味で括られるものであるときにはその実体的意味を取得するものである。インデックス作成部34は、構文解析部32による構文解析の結果と用語認識部33による用語認識の結果とに基づいてデータ記憶装置21上のデータベースを検索する際に用いられるインデックスを作成し、インデックス保持部35は、インデックス作成部34により作成されたインデックスをデータベース上の文書データ60に対応付けした状態で保持するものである。入力受付部36は、ネットワーク40を介して管理サーバ30と接続された端末50等から入力される検索条件を受け付ける。実施例では、検索条件として、複数の検索単語と当該検索単語間の述語項関係とを入力することができる。そして、検索処理部37は、入力受付部36により受け付けられた検索条件(検索単語と述語項関係)に基づいて検索クエリを設定すると共に設定した検索クエリを実行し、結果出力部38は、検索処理部37の処理の結果に基づいて検索結果を出力する
【0027】
次に、実施例のデータベース検索システム20を用いたデータベースの検索に用いられるインデックスの作成するためのインデックス作成処理について説明する。また、インデックス作成処理の説明に引き続いて、実施例のデータベース検索システム20におけるインデックスを用いたデータ記憶装置21上のデータベースの検索処理について説明する。
【0028】
〔インデックス生成処理〕
図2は、実施例のデータベース検索システム20を構成する管理サーバ30において実行されるインデックス作成処理の一例を示すフローチャートである。図2のインデックス作成処理は、例えば新たな文書データ60がデータ記憶装置21上のデータベースに蓄積される際に実行されるものである。
【0029】
管理サーバ30の文書入力部31により新たな文書データ60の入力が受け付けられると(ステップS100)、文書入力部31は、受け付けた文書データ60をデータ記憶装置21に格納すると共に、当該文書データ60を構文解析部32と用語認識部33とに与える。文書入力部31から文書データ60を受け取った構文解析部32は、当該文書データ60と対象言語の文法情報および単語情報を用いた文書の構文解析を実行し、同様に文書データ60を受け取った用語認識部33は、構文解析部32による構文解析処理と並行して、予め用意された用語情報に基づいて文書入力部31からの文書データ60に示される文書中の単語の各々に対する用語認識を実行する(ステップS110)。
【0030】
ここで、図3から図6を参照しながら、ステップS110における実施例の構文解析部32による文書の構文解析処理について説明する。まず、例えば“Mary slaps John”という英文を考えると、この英文は、[Mary,主語,slap]と[John,目的語,slap]という2つの関係からなる概念(関係概念)を示すといえる。そして、この英文は、図3に示すように、“Mary”,“John”,“slaps”という3つのノードを有し、単語“Mary”と“slaps”とが「主語」というラベルのエッジで結ばれると共に、単語“John”と“slaps”とが「目的語」というラベルのエッジで結ばれたラベル付き有向グラフで表現することができる。かかるグラフにおいては、各ノードのみならず、ノード同士を結ぶエッジも文法上極めて重要な情報を示している。すなわち、“John slaps Mary”という英文は、先の“Mary slaps John”という英文と同じ3つの単語を含むにも拘わらず、全く異なる関係概念を示すから、この英文は図3のグラフとは異なるグラフにより表現されることになる。これに対して、“John is slapped by Mary”という英文は、表層的には文字列が異なるものの、上記“Mary slaps John”と同じ意味を示しており、図3のグラフに近似したグラフを用いて表現可能なものである。従って、このような関係概念(述語項構造)を検索条件とした検索を実行するためには、検索単語の有無のみを判定する既存の文書検索手法のように上述のエッジを無視してはならないことになり、文要素間の述語項関係(意味上の主語、述語、目的語の関係)を示すグラフが要求されることになる。
【0031】
このため、実施例では、文要素間の述語項関係を示すグラフすなわち文書中のセンテンスの構文木と述語項構造とを取得すべく、構文解析部32を上述のようにHPSGに基づく構文解析を実行するパーザとして構成している。この場合、構文解析部32の文法情報は、いわゆる三単現や格の制約、更に、自然言語の文における「あいまい性」の学習結果に基づく制約等を集約することにより構築される。また、構文解析部32の単語情報は、単語のごとにその構文的性質を示すデータ(語彙項目)のリストとして作成される。各単語のリストには、図4および図5に示すように、“HEAD”,“SUBJ”,“COMPS”および“SEM”という4つの項目が含まれており、“HEAD”は品詞、“SUBJ”は構文上の主語たり得るもの(述語の左側に位置し得る単語または句)、“COMPS”は構文上の目的語たり得るもの(述語の右側に位置し得る単語または句)、“SEM”は、意味構造(述語項構造)をそれぞれ表す。先の英文“Mary slaps John”を例にとれば、“Mary”や“John”という単語については、項目“HEAD”に固有名詞を示す“prernn”が記述され、項目“SEM”に“Mary”あるいは“John”という文字列が記述される。また、“slap(s)” という単語については、主語と目的語とに名詞を取る動詞であることを示すべく、項目“HEAD”には動詞を示す“verb”が、項目“SUBJ”には“HEAD(=品詞) noun(=名詞)”が、項目“COMPS”には、“HEAD noun”が記述されている。更に、項目“SUBJ”には“ SEM 1”と、項目“COMPS”には“SEM 2”と記述され、項目“SEM”には、“slap(1, 2)”と記述される。ここで、数字“1”や“2”は構文上の主語、目的語と意味上の主語、目的語との間の対応関係を規定(マッピング)するための変数であり、項目“SEM”における“slap”という文字列に続く括弧内の表記は、「(意味上の主語を示す変数、意味上の目的語を示す変数)」を示している。これにより、図4に示すように、“slap(s)” という単語に関しては、リストの項目“SUBJ”の“SEM”に値1が記述されると共に項目“COMPS”の“SEM”に値2が記述され、更に項目“SEM”にslap(1, 2)”と記載されているので、構文上の主語が意味上の主語となり、構文上の目的語が意味上の目的語となることをリストから知ることができる。また、図5からわかるように、“slapped” という単語に関しては、構文上の主語が意味上の目的語となり、構文上の目的語が意味上の主語となることをリストから知ることができる。
【0032】
そして、構文解析部32は、上述のような単語情報に基づいて文書中のセンテンスの単語ごとに語彙項目を取得すると共に文法情報に基づく制約に従って、図6に例示するような「名詞句(NP)」、「動詞句(VP)」、「文(Sentence)」等、文中の要素の階層的構造(図中実線参照)を示すと共に、述語(単語“slaps”)と、その項、すなわち意味上の主語(単語“Mary”)や目的語(単語“John”)との関係である述語項関係を示す構造木を取得する。例えば、“Mary slaps John”という英文が構文解析部32に与えられると、図4に示すように、“slaps”という単語は、単語情報(リスト)から、右側に名詞(noun)を1つ取ることができる動詞であると認識され、“John”という単語のリスト(HEAD)には、“prernn”と記述されているので、“slaps”と“John”が隣接しているときには、これら2つの単語が組み合わさって“slaps John”という句を構成していると認識される。更に、“slaps John”という句は、左側に名詞を取ることができる動詞句であり、その左側に“Mary”という単語(固有名詞)が存在していると、“Mary slaps John”という英文の構文木が取得されることになる。また、隣接し合う句同士が互いに組み合わされ得る性質をもっているときには、より大きな句が認識されることになる。また、上記“Mary slaps John”という英文に関しては、“slap”の構文上の主語・目的語はそのまま意味上の主語・目的語として認識されるが、図5からわかるように、“John is slapped by Mary”という英文に関しては、構文上の主語・目的語がそれぞれ意味上の目的語・主語として認識される。これにより、様々なセンテンス中に統語的変形(例えば、受身形“John is slapped by Mary”や、関係代名詞“John who Mary slaps”等)が存在して表層的な表現が異なっている場合でも、図4および図5の最上段に示すように、意味上の主語、目的語等の関係すなわち述語項構造は実質的に同一であることが認識される。構文解析部32は、このような処理を再帰的に行うことで文書中のセンテンスごとに述語項関係を示す構文木を取得し、構文解析の結果を示す所定の態様のデータとしてインデックス作成部34に出力する。なお、データベース上で取り扱う文書の言語を単一のものとする場合には、構文解析アルゴリズム、文法情報および単語情報として当該言語に対応したものを予め用意すればよく、多数の言語からなる文書を取り扱う際には、構文解析アルゴリズム、文法情報および単語情報として各言語に対応したものを用意すればよい。このようなHPSGに基づく構文解析を実行するパーザの一例としては、英文のセンテンスの構文木および述語項構造を取得すべく開発された“Enju”が知られている(“Enju”については <http://www-tsujii.is.s.u-tokyo.ac.jp/enju/index.html> 参照。)。
【0033】
続いて、ステップS110における用語認識部33による用語認識処理について説明する。まず、先の“Mary slaps John”という例文に対して、“Mary hits John”という英文を考える。これら2つの英文は、表層的な表現が異なるものではあるが、単語“slaps”と単語“hits”とは互いに実質的に同一の意味を示すものであることから、文として実質的に同じ意味内容(関係概念)を示すものである。従って、同一の実体的意味をもつ句や単語、あるいはそれを含むセンテンス等の検索を可能とするためには、このような単語のもつ実体的意味をも考慮する必要がある。このため、実施例の管理サーバ30には、句や単語の各々の実体的意味に関する用語情報を用いて用語認識処理を実行する用語認識部33が管理サーバ30に構築されている。実施例では、用語認識部33の用語情報として、動詞表現がセンテンスの述語項構造の表記に重要な役割を果たすことを踏まえ、動詞の同義語や名詞化表現に関するオントロジーが用意されている。この動詞に関するオントロジーは、動詞を実体的な意味ごとに分類したときに現れる実体的意味(同義語を代表するもの)のそれぞれに一意のID(以下「オントロジーID」という)を付与すると共に、各オントロジーIDに同義の動詞や動詞の名詞化表現等を対応付けしたデータベースとして予め作成され、図示しない所定の記憶装置に記憶されたものである。加えて、実施例では、用語認識部33の用語情報として、データベース化の対象とされる文書の分野(例えば、生物学、医学といった分野)における用語(術語)を現実社会における実体的意味ごとに分類したときに現れる実体的意味のそれぞれに一意のIDを付与すると共に、各オントロジーIDに同義語を対応付けしたオントロジーが用意されている。このような特定分野におけるオントロジーの一部を図7に例示する。同図は、遺伝子・たんぱく質に関連したオントロジーにおける1つのエントリを示すものであり、このエントリには、CRPという遺伝子について、そのID(オントロジーID)、異名(Name, Synonym)、それが観測される生物種(Species)、その遺伝子がコードしているたんぱく質(Product)、外部データベースへのリンク(External links)といった情報が集約されている。図7からわかるように、このIDで表される遺伝子は“MGC88244”や“PTX1”等と表現されることもあるが、同一の実体的意味を示す遺伝子(文字列)のエントリに同一のオントロジーIDを付与しておくことにより、表層的な表現に違いがあっても同一の実体的意味を示す単語や句を抽出することが可能となる。用語認識部33は、上記用語情報を参照しながら、文書データ60に示される文書中の句や単語の各々について当該句または単語がある一つの実体的意味で括られるものであるか否かを判定し、当該句または単語が当該一つの実体的意味で括られるものであるときにはその実体的意味(オントロジーID)を取得する。そして、用語認識部33は、オントロジーIDと句または単語との対応関係を用語認識の結果を示す所定の態様のデータとしてインデックス作成部34に出力する。
【0034】
構文解析部32による構文解析の結果と用語認識部33による用語認識の結果とを受け取ったインデックス作成部34は、構文解析の結果と用語認識部33による用語認識の結果とに基づいてデータ記憶装置21上のデータベースを検索する際に用いられるインデックスを作成・出力する(ステップS120)。すなわち、インデックス作成部34は、構文解析および用語認識の結果に基づいて文書データ60をタグにより構造化する構造化モジュールと、構造化モジュールによる構造化の結果に基づいてインデックスを作成・出力する出力モジュールとを有しており(何れも図示省略)、構文解析および用語認識の結果は、まず、構造化モジュールに与えられる。インデックス作成部34の構造化モジュールは、構文解析部32による構文解析の結果に基づいて、文書データ60に示されている文書中のセンテンスと当該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共にセンテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとを上記属性を用いて対応付けする。このような文書の構造化に際して用いられるタグの種類とそれに記述される属性とを図8に例示すると共に、タグに記述される属性の内容を図9に例示する。また、構造化モジュールによって構造化された“Pretty Mary slaps John”という英文をそのまま例えばXML形式で出力した場合の出力例を図10に示す。
【0035】
図8から図10に示すように、構造化モジュールによる文書の構造化に際しては、文書中のセンテンスの各々が<Sentence>という開始タグと</Sentence>という終了タグとで囲まれる。また、センテンス中の各句は、それぞれ<phrase>という開始タグと</phrase>という終了タグとで囲まれ、それぞれの<phrase>タグにはタグのIDを示すid属性、構文上のカテゴリを示すcat属性等が記述される。タグの属性には、それぞれに対応した属性値が設定される。例えば、各<phrase>タグのid属性には、登場順にp1,p2,…,p(n),…pN(ただし、“n”および“N”は正の正数である)という属性値が設定され、cat属性には、そのタグにより囲まれる句等が例えば“so that”構文に現れるようなセンテンス中のセンテンス(S)や名詞句(NP)、形容詞句(ADJP)、動詞句(VP)等であることを示す属性値(S,NP,ADJP,VP等)が設定される。更に、各単語は、それぞれ<word>という開始タグと</word>という終了タグで囲まれ、各<word>タグには対応した単語の品詞を示すpos属性等が記述される。この場合もタグの属性には、それぞれに対応した属性値が設定され、例えば、各<word>タグのpos属性には、形容詞、固有名詞、動詞といった品詞を示す属性値が設定される。また、動詞である単語に対応した<word>タグには、rel_type属性が記述され、このrel_type属性には用語認識部33による用語認識の結果に基づくオントロジーIDすなわち当該動詞の実体的意味のオントロジーID(図10の例では、単語“slap”や“hit”に付与される“i789”)が設定される。そして、<word>タグには、構文解析により取得された文要素間の述語項関係を識別するためのarg(X)属性(X=1,2…)が記述される。実施例において、arg(X)属性は、例えば、
arg1:動詞の主部
arg2:動詞の直接目的部
arg3:動詞の間接目的部
といった関係を指定するものとして定められており、arg1属性には、それに対応した動詞の主部となる句に付与された<phrase>タグのIDが、arg2属性には、それに対応した動詞の直接目的部となる句に付与された<phrase>タグのIDが、arg3属性には、それに対応した動詞の間接目的部となる句に付与された<phrase>タグのIDがそれぞれ設定される。例えば、図10の例では、動詞“slaps”に付与された<word>タグのarg1属性の属性値が“p2”とされているが、属性値p2は、名詞句“Pretty Mary”に付与された<phrase>タグのIDと一致しており、これにより、図10において破線で示すように、“Pretty Mary”という名詞句に付与された<phrase>タグおよび</phrase>タグにより規定される領域と“slaps”という単語に付与された<word>タグおよび</word>タグにより規定される領域とが対応付けされ、動詞“slaps”の主部(arg1)が“Pretty Mary”という名詞句であると表現されることになる。また、図10の例では、動詞“slaps”に付与された<word>タグのarg2属性の属性値が“p8”とされているが、属性値p8は、単語“John”を囲む<phrase>タグのIDと一致しており、これにより、図10において破線で示すように、“slaps”という単語に付与された<word>タグおよび</word>タグにより規定される領域と“John”という単語に対応した<phrase>タグおよび</phrase>タグにより規定される領域とが対応付けされ、動詞“slaps”の目的部(arg2)が“John”という名詞(句)であると表現されることになる。つまり、実施例では、センテンス中の述語に相当する単語に対応したタグのarg(X)属性と当該述語の項となる句に対応した<phrase>タグのid属性とに同一の属性値が設定される。このように、述語である単語とその項となる句とを対応付けすることにより、センテンスにおける文要素間の意味的な関係をより適正に表現することが可能となる。更に、用語認識部33による用語認識の結果、用語(術語)であると認識された単語の<word>タグは、<entity_name>という開始タグと</entity_name>という終了タグとで囲まれ、<entity_name>タグには、用語の種類を示すtype属性や当該用語のオントロジーIDを示すontology属性が記述され、type属性には用語の種類を示す属性値が記述されると共に、ontology属性には用語情報から取得されたオントロジーIDの値が属性値として記述される。例えば、図10の例では、単語“Mary”や“John”に対して<entity_name>タグが付与されており、type属性には「人名」という種別が、“Mary”のontology属性には“i1234”が、“John”のontology属性には“i3456”がそれぞれ属性値として設定されている。
【0036】
ここで、上述のようなごく単純な“Pretty Mary slaps John”という英文であっても、それをXMLにより構造化した場合、図10に示す程度のデータとなってしまう。そして、特に学術論文等における文要素間の意味的な関係は、極めて複雑に入り組んだものであることが多いから、XMLにより文要素間の意味的な関係をも含めて文書を表記すると、データ構造が極めて複雑なものとなってしまう。従って、XPathやXquryといった問い合わせ言語を用いても、構造化モジュールによる図10に示すような構造化データに基づいて関係概念を検索条件とした検索を迅速かつ高精度に実行することは極めて困難となる。このため、実施例の管理サーバ30においては、構造化モジュールによる文書の構造化の結果を所定の態様で出力モジュールに与え、出力モジュールに、タグ、単語およびタグの属性(属性名、存在している場合には更に属性値)の各々の記述位置と階層深さとを示すインデックスを構造化データとして出力させている。そして、インデックス作成部34により作成・出力されたインデックスがステップS100にて入力された文書データ60に対応付けされた状態でインデックス保持部35により保持されると(ステップS130)、本処理が一旦終了することになる。
【0037】
インデックス作成部34の出力モジュールにより出力されたインデックスの一例を図11に示す。同図は、図10の出力例に対応したもの、すなわち“Pretty Mary slaps John”という英文に対応したインデックスを示すものである。図11に示すように、各タグ、各タグの属性名および属性値ならびに各単語には、1(記述位置):0(階層深さ),2:1…といったようにそれぞれ一まとまりとしてテキストの先頭からの記述位置と階層深さとが与えられる。この際、タグの属性および属性値は、対応したタグ名と共にインデックス化される。また、階層深さは、<phrase>タグおよびその属性に関しては基本的には図10の出力例における各タグや属性等の階層の深さに基づくものとされるが、実施例では、<Sentence>タグ、<word>タグやそれぞれの属性、<entity_name>タグやその属性、単語等に関しては、階層深さ=0とされている。これにより、実施例において、階層深さは、あるタグ領域を含むそれと同じ名称のタグで囲まれる領域の数を示すことになる。このような構造化データとしてのインデックスは、センテンス(文書)をいわゆる木構造ではなくタグ領域の集合として扱ってタグ、単語、タグの属性の各々のアドレスを提供するものである。これにより、インデックスの記述位置と階層深さとを参照すれば、 ある単語を囲むタグにより規定される領域の外側にそれと同じ名称のタグにより規定される領域が存在していても、例えば後述の領域代数の枠組みを用いることにより、ある単語を囲む最小のタグ領域から最大のタグ領域までを容易に特定することができる。また、インデックスを参照すれば、図10において破線で示すようなセンテンス中の述語項構造に基づくタグの対応関係をも容易に特定することが可能となる。
【0038】
以上説明したように、データ変換装置としての文書入力部31、構文解析部32、用語認識部33およびインデックス作成部34を含む管理サーバ30においては、例えば所定言語からなる文書を示す新たな文書データ60がデータ記憶装置21上のデータベースに蓄積される際に、まず、ステップS100にて入力された文書データ60と当該所定言語の文法情報および単語情報を用いたセンテンスの構文解析が実行される(ステップS110)。続いて、構文解析の結果に基づいて、文書中のセンテンスに含まれる句と単語とにはそれぞれ対応した属性が記述される所定のタグが付与されると共に、センテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとが属性を用いて対応付けされ、最終的に、タグ、単語およびタグの属性の各々の記述位置と階層深さとを示すインデックスが構造化データとして出力される(ステップS120)。そして、出力されたインデックスは、文書データ60に対応付けされた状態でインデックス保持部35により保持される(ステップS130)。こうして作成されるインデックスには、上述のようにタグ、単語およびタグの属性の各々の実質的なアドレスが示されることになるので、インデックスを参照すれば、開始タグと終了タグとの対応関係により規定されるセンテンスの構文木や、述語に相当する単語等に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することが可能となる。従って、実施例の管理サーバ30によれば、文書中のセンテンスに含まれる述語(述部)と項との間の意味的な関係である述語項関係の表記と、そのような意味的な関係により規定される概念を検索条件とした検索とを可能とする構造化データとしてのインデックスを実現することが可能となる。そして、このようなインデックスを文書データ60ごとに保持しておけば、インデックスを参照することにより文書中のセンテンスの構文木や述センテンス中の述語項構造を容易に特定することができるので、文書データ60を複数蓄積したデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索することが可能となる。
【0039】
また、実施例の管理サーバ30に含まれる構文解析部32は、HPSGに基づく構文解析を実行してセンテンスの構文木および述語項構造を取得するパーザとして構成されているので、センテンスをより精度よく構文解析して、インデックスにおける述語と項との対応付けをより適正なものとすることが可能となる。更に、実施例の管理サーバ30に含まれる用語認識部33は、所定の用語情報に基づいてセンテンスに含まれる句または単語の各々について当該句または単語がある一つの実体的意味で括られるものであるか否かを判定すると共に当該句または単語が当該一つの実体的意味で括られるものであるときにはその実体的意味を取得するものであり、インデックス作成部34は、用語認識部33により取得された実体的意味を示す属性値(オントロジーIDの値)をインデックス中のタグのrel_type属性やontolgy属性に記述する。これにより、インデックスにおいて、実質的に同一の意味(概念)を示すにも拘わらず表層的な表現が異なっている句または単語に対応したタグに同一の実体的意味を示す属性値が記述されることになるので、インデックス保持部35により保持されているインデックスを用いれば、同一の実体的意味をもつ句や単語、あるいはそれを含むセンテンス等の検索も容易に実行可能となる。
【0040】
なお、図2のインデックス作成処理は、既存のデータベースに対して実施例の管理サーバ30を適用し、データベース上の文書データを個別に管理サーバ30に取り込んだ上で文書データごとにインデックスを作成する際に実行されてもよい。いずれにしても、上記インデックスは、検索要求に先立って、文書データ60と所定言語の文法情報および単語情報を用いた文書の構文解析の結果に基づいて予め作成されていると好ましい。これにより、実際の検索処理の負担を軽減して検索条件の入力から検索結果の出力までに要する時間を短縮化することが可能となる。
〔検索処理〕
【0041】
引き続き、実施例のデータベース検索システム20におけるインデックスを用いたデータ記憶装置21上のデータベースの検索処理について説明する。
【0042】
図12は、実施例の管理サーバ30により実行される検索処理の一例を示すフローチャートである。同図に示す検索処理は、端末50においてユーザにより検索要求がなされたときに実行されるものである。実施例では、端末50から管理サーバ30にアクセスすると、端末50の表示画面上に図13に示すような検索画面が表示される。この検索画面には、主語または主部に相当する単語または句を入力可能な“subject”ボックスと、述語または述部に相当する動詞または動詞句を入力可能な“verb”ボックスと、目的語または目的部に相当する単語または句を入力可能な“object”ボックスとが用意されている。従って、ユーザは、“subject”ボックス、“verb”ボックスおよび“object”ボックスの少なくとも何れかに所望の検索単語としての単語や句を入力すれば、データ記憶装置21上のデータベースの検索を要求することができる。また、verb”ボックスと“subject”ボックスおよび“object”ボックスの少なくとも何れか一方とに検索単語としての単語や句を入力すれば、文要素間の意味的な関係により規定される概念すなわち文要素間の述語項関係を検索条件とした検索を要求することが可能となる。実施例では、検索要求に対する検索結果は、デフォルトでは、センテンス単位で出力されるが、検索画面上の“Advanced Search”タブをクリックして詳細な設定を行えば、例えば文書単位で検索結果が出力されるように設定変更することができる。また、図13に示すように、検索画面上で“Keyword Search”タブをクリックすれば、より一般的なキーワード検索用の検索画面(図示省略)が表示画面上に表示される。更に、“GCL Search”タブをクリックすれば、後述する検索クエリの直接入力を可能とする検索画面(図示省略)が表示画面上に表示される。
【0043】
図13の検索画面において、例えば“subject”ボックスに“Mary”という検索単語が、“verb”ボックスに“slaps”という検索単語が入力されると、端末50からその旨を示す信号が管理サーバ30へと送信されて検索条件として入力受付部36により受け付けられる(ステップS200)。入力受付部36は、受け付けた検索条件すなわち検索単語“Mary”および“slaps”と、「slaps”の主語が“Mary”である」という検索単語間の述語項関係とを検索処理部37に与え、検索処理部37は、受け取った「主語が検索単語“Mary”であり、かつ述語が検索単語“slaps”であるセンテンス」という検索条件に基づいて検索クエリを設定する(ステップS210)。この場合の検索クエリは、次式(1)のようなものとなる。また、例えば“subject”ボックスに“Mary”という検索単語が、“verb”ボックスに“slaps”という検索単語が、“object”ボックスに“John”という検索単語が入力された場合には、ステップS210にて次式(2)のような検索クエリが設定される。
【0044】
[sentence] >> (([word arg1="$s"] >> "slaps") & ([phrase id="$s"] > "Mary"))…(1)
[sentence] >> (([word arg1="$s" arg2="$o"] >> "slaps") & ([phrase id="$s"] > "Mary")) & ([phrase id="$o"] > "John"))…(2)
【0045】
ここで、ステップS210における検索クエリの設定の仕方について説明する。実施例のデータベース検索システム20における検索処理は、インデックス保持部35に保持されているインデックスに基づいて領域代数の枠組みを用いながら検索条件に適合する領域を求めるものである。そして、実施例においては、領域間の包含関係や順序関係等が図14に示す7つの演算子(>,>>,<,<<,&,|,−)を用いて指定される。これら7つの演算子のうち、特徴的なものは、“>”および“<”という2つの演算子である。すなわち、一般的な領域代数の枠組みにおいて領域間の包含関係を指定する演算子“<<”や“>>”は、基本的に、ある名称のタグで囲まれる領域内にそれと同じ名称のタグが存在していないという仮定の下に、入れ子構造をなす最小のタグ領域を探し出すときに用いられるものである。例えば、図11のインデックスに対して、“[phrase] >> "Mary" ”というクエリを実行すると、<phrase>タグと</phrase>タグとで規定されると共に単語“Mary”を含む(囲む)最小の領域として、id属性に属性値p5が記述されている<phrase>タグに対応した領域のみが抽出される。これに対して、“>”と“<”という2つの演算子は、例えば“<phrase> <phrase> A </phrase> </phrase>”といったように、ある名称のタグで囲まれる領域内にそれと同じ名称のタグが存在している場合に、それらのタグ領域のすべてを抽出するために導入されたものである。例えば、図11のインデックスに対して“[phrase] > "Mary" ”というクエリを実行すると、id属性に属性値p1が記述されている<phrase>タグに対応した領域と、id属性に属性値p2が記述されている<phrase>タグに対応した領域と、id属性に属性値p5が記述されている<phrase>タグに対応した領域とが抽出されることになる。いずれにしても、インデックスに示されている記述位置と階層深さとを参照することにより、これらの処理は、迅速に実行され得る。ただし、“>”や“<”を用いた処理は、“>>”や“<<”を用いた処理に比べて若干の時間を要するものであることから、迅速な検索を実行する上では、“>”や“<”を用いた処理は、<phrase>タグのように、ある名称のタグで囲まれる領域内にそれと同じ名称のタグが存在することが判明しているタグについてのみ用いると好ましい。
【0046】
また、入れ子構造をなしてはいないが互いに対応関係を有しているタグ領域を探し出すためには、インデックス上で互いに離間し合っている属性値同士を参照する必要がある。これに対処すべく、実施例では、式(1)や式(2)に示すように、変数$x(“x”には、主語であれば“s”、目的語であれば“o”といった識別子が導入される)を検索クエリに導入し、「あるタグT1の属性A1の属性値が他のタグT2の属性A2の値と同一である」ということを表現できるようにしている。例えば、式(1)の場合、
“([word arg1=“$s”] >> slaps) & ([phrase id=”$s”] > “Mary”)”
という変数$sを含む部分により、“slaps”に対応したarg1の属性値が“Mary”を含むphraseのid属性の属性値と同一である、ということを表現している。実施例において、変数$xは、基本的にid属性およびarg(X)属性に記述されてセンテンス中の文要素間における述語項関係を示す属性値p1,p2,…p(n)を対象とするものであり、検索条件として受け付けられた述語項関係の数だけ出現することになる(式(2)については2個の変数が出現する。)。上述のような演算子“>”および“<”と変数$xとを導入した上で、センテンス(文書)をいわゆる木構造ではなくタグ領域の集合として扱ってタグ、単語、タグの属性の各々のアドレスを提供するインデックスを参照することにより、以下に説明するように、文要素間の意味的な関係により規定される概念を検索条件としながら迅速かつ高精度な検索を実行することが可能となる。
【0047】
さて、ステップS210にて検索クエリを設定すると、検索処理部37は、まず、設定した検索クエリに現れる最大の検索対象領域である最大検索領域を識別する(ステップS220)。ここでいう最大検索領域とは、検索クエリに含まれ得る“sentence”,“phrase”,“word”といったタグにより規定される領域のうちの最も広い領域である。検索クエリが式(1)のように、「センテンス」を検索結果として要求するものである場合には、検索クエリに現れる最大検索領域は、検索結果と同様に“sentence”領域となる。なお、検索クエリが演算子“<<”等を用いて、例えば「…というセンテンスに含まれる××という句」といった検索クエリを要求するものであるときには、上記最大検索領域は、検索結果に対応した“phrase”領域ではなく、“sentence”領域となる。こうして最大検索領域を識別したならば、検索処理部37はインデックス保持部35のすべてのインデックスを参照してステップS200にて受け付けたすべての検索単語を含む最大検索領域(この場合“sentence”領域)の開始タグおよび終了タグをすべて抽出する処理を実行し(ステップS230)、更に、全検索単語を含む最大検索領域が存在するか否かを判定する(ステップS240)。ステップS240にて全検索単語を含む最大検索領域が存在していないと判断されたときには、ヒット件数がゼロであることになるので、検索処理部37によりヒット件数がゼロであることを示す最終的な検索結果が作成されると共に(ステップS380)、そのような検索結果が結果出力部38から検索要求が実行された端末50へと送信され(ステップS390)、検索処理が一旦終了することになる。この場合には、端末50の表示画面には、例えば「“Mary”“slaps”に該当するセンテンスは見つかりませんでした。」といったような検索結果が表示されることになる。
【0048】
一方、例えば上記検索条件に対して図11のインデックスに示される“Sentence”領域が抽出された場合のように、ステップS240にて全検索単語を含む最大検索領域が少なくとも1つ存在していると判断した場合、検索処理部37は、ステップS200にて受け付けられた検索単語の各々のデータベースにおける出現頻度(出現回数)を取得する(ステップS250)。実施例において、出現頻度は、データベース上に現れるすべての単語ついて予め求められた上でデータ記憶装置21または管理サーバ30の所定の記憶装置に記憶されており、ステップS250にて検索処理部37は当該記憶装置からS200にて受け付けられた検索単語の各々の出現頻度を読み出す。そして、検索処理部37は、取得した各検索単語の出現頻度に基づいてステップS210にて設定された検索クエリに含まれる変数$xを決定するための部分クエリを設定する(ステップS260)。ステップS260において、検索処理部37は、次のようにして部分クエリを設定する。この場合、まず、ステップS210にて設定された検索クエリを変数$xごとの部分に分解した上で、互いに述語項関係にある検索単語のうちの出現頻度がより小さい一方の検索単語に対応した部分を部分クエリとして設定する。例えば、検索クエリが式(1)に示すものであり、かつ単語“Mary”の出現頻度が単語“slaps”の出現頻度よりも小さい場合には、当該検索クエリは次式(3)および(4)に示す2つの部分に分解され、出現頻度が小さい単語“Mary”に対応した式(4)に示すものが部分クエリとして設定される。また、検索クエリが式(2)に示すものであるときには、当該検索クエリは、次式(4)から(6)に示す3つの部分に分解され、例えば単語“Mary”や単語“John”の出現頻度が単語“slaps”の出現頻度よりも小さい場合には、次式(4)および(5)に示すものが部分クエリとして設定される。すなわち、ステップS260では、検索条件として受け付けられた述語項関係の数だけ部分クエリが設定されることになる。
【0049】
[word arg1=“$s”] >>“slaps”…(3)
[phrase id=“$s”] >“Mary”…(4)
[phrase id=“$o”] >“John”…(5)
[word arg1="$s" arg2="$o"] >> "slaps" …(6)
【0050】
こうして部分クエリを設定すると、検索処理部37は、所定の制約に従ってステップS230にて抽出された最大検索領域のうちの最初の処理対象となる最大検索領域を設定した上で(ステップS270)、ステップS260にて設定した部分クエリのうち、出現頻度がより小さい検索単語を含む部分クエリを実行部分クエリとして設定する(ステップS280)。そして、ステップS280にて設定した部分クエリから変数を除いたクエリを実行し、当該クエリの実行結果として返されるすべての変数値を取得・保持する(ステップS290)。すなわち、検索クエリが式(1)に示すものであり、かつ単語“Mary”の出現頻度が単語“slaps”の出現頻度よりも小さい場合、ステップS280では式(4)から変数$sを除いた[phrase] >“Mary”というクエリが実行され、それにより、例えば図11のインデックスに示される“Sentence”領域が対象最大検索領域である場合には、当該インデックスから変数値としてp1,p2,p5が取得・保持される。次いで、検索処理部37は、ステップS260にて設定されたすべての部分クエリが上述のようにして処理されたか否かを判定し(ステップS300)、すべての部分クエリが処理されていなければ、すべての処理が完了するまでステップS270およびS280の処理を繰り返し実行する。すなわち、検索クエリが式(2)に示すものであり、かつ単語“Mary”の出現頻度が単語“John”の出現頻度よりも小さい場合には、まず例えば式(4)から変数$sを除いたクエリが実行されて実行結果として返されるすべての変数値が取得・保持された後、式(5)から変数$oを除いた[phrase] >“John”というクエリが実行されて実行結果として返されるすべての変数値が取得・保持されることになる(図11のインデックスからは値p1,p6,p8が返される)。そして、すべての部分クエリが処理されると、検索処理部37は、ステップS260にて設定された部分クエリごとに得られた変数値のすべての組み合わせを取得する(ステップS310)。例えば、検索クエリが式(1)に示すものであるときには、式(4)から変数$sを除いたクエリの実行結果として返される変数値(p1,p2,p5等)がステップS310における取得結果となる。また、検索クエリが式(2)に示すものであるときには、式(4)から変数$sを除いたクエリの実行結果として返される変数値(p1,p2,p5等)と、式(5)から変数$oを除いたクエリの実行結果として返される変数値(p1,p6,p8等)との組み合わせがステップS310における取得結果となる。すなわち、部分クエリが2つある場合には、一方の部分クエリに基づいて得られた変数値をpxとし、他方の部分クエリに基づいて得られた変数値をpyとすれば、(px,py)のすべての組み合わせがステップS310における取得結果となる。
【0051】
ステップS310の処理の後、検索処理部37は、取得した変数値の組み合わせの中から、所定の制約に従って最初の変数値の組を設定し(ステップS320)、設定した組の変数値をステップS210にて設定した検索クエリの対応した変数$xに代入する(ステップS330)。そして、検索処理部37は、ステップS270にて設定された対象最大検索領域が変数値代入後の検索クエリを満たしているか否かを判定し(ステップS340)、肯定判断をなした場合には、その旨を中間結果として所定の記憶領域に保持する(ステップS350)。ステップS350の処理後、あるいはステップS340にて否定判断をなした場合、検索処理部37は、すべての変数値の組を処理したか否か判定し(ステップS360)、肯定判断をなすまでステップS320からS350の処理を繰り返し実行する。ここまでの処理を図11のインデックスに示される“Sentence”領域が対象最大検索領域である場合を例にとって説明すると、検索クエリが式(1)に示すものである場合には、ステップS310にて変数値の組がp1,p2,p5として取得されていることになるので、まず式(1)の変数$sに値p1が代入され(ステップS330)、上記“Sentence”領域が値p1代入後の式(1)を満たすか否か判定される(ステップS340)。この場合、図11からわかるように、“word arg1="p1"”は存在していないことから、ステップS340にて否定判断がなされ、次に式(1)の変数$sに値p2が代入され(ステップS330)、上記“Sentence”領域が値p2代入後の式(1)を満たすか否か判定される(ステップS340)。この場合、図11からわかるように、“word arg1="p2"”が存在していることから、ステップS340にて肯定判断がなされ、図11のインデックスから抽出された<Sentence>タグおよび</Sentence>タグが中間結果として保持されることになる(ステップS350)。また、検索クエリが式(2)に示すものである場合には、ステップS310にて変数値の組が(p1,p1),(p1,6),…(p2,p8),…として取得されていることになるので、まず式(2)の変数$sおよび$oに値p1が代入され(ステップS330)、上記“Sentence”領域が値p1代入後の式(2)を満たすか否か判定される(ステップS340)。この場合、図11からわかるように、“word arg1="p1"”および“word arg2="p1"”は存在していないことから、ステップS340にて否定判断がなされる。その後、ステップS330,S340の処理が繰り返され、ステップS330にて、式(2)の変数$sに値p2が変数$oに値p8が代入されると(ステップS330)、ステップS340にて“word arg1="p2"”および“word arg2="p8"”が存在していると判断され、図11のインデックスから抽出された<Sentence>タグおよび</Sentence>タグが中間結果として保持されることになる(ステップS350)。なお、ステップS210にて式(2)の検索クエリが設定された場合であって、検索単語“slaps”の出現頻度が3つの検索単語の中で最小である場合には、ステップS280にて上記式(6)のクエリが最初に実行される部分クエリとして設定され、このクエリから変数$xを除いたものが実行されると(ステップS290)、その段階で変数値のすべてが取得されることになる。従って、この場合には、式(4)または(5)の何れかの部分クエリを処理する必要はない。また、ステップS210にて式(2)の検索クエリが設定された場合であって、検索単語“slaps”の出現頻度が3つの検索単語の中で2番目に小さい場合には、ステップS280にて上記式(4)または(5)に基づくクエリが最初に実行され、その後、上記(6)式に基づくクエリが実行されることになる。この場合、最初に式(4)または(5)に基づくクエリが実行されると、変数$sまたは$oの何れか一方に対応した変数値が取得されるので、次に上記(6)式に基づくクエリを実行する際には、取得されていない他方の変数値のみを取得すればよい。
【0052】
ステップS360の処理の後、検索処理部37は、ステップS230にて抽出されたすべての最大検索領域を処理したか否かを判定し(ステップS370)、すべての最大検索領域が処理されていなければ、処理が完了するまでステップS270からS360までの処理を繰り返す。そして、ステップS370にて肯定判断をなしたときには、検索処理部37は、上記記憶領域に保持されている中間結果に基づいて最終的な検索結果を作成する(ステップS380)。この場合、上記記憶領域に中間結果が保持されていなければ、ステップS380ではヒット件数がゼロであることを示す最終的な検索結果が作成されることになる。そして、最終的な検索結果が結果出力部38から検索要求が実行された端末50へと送信され(ステップS390)、検索処理が一旦終了することになる。
【0053】
以上説明したように、実施例のデータベース検索システム20は、文書データ60ごとに作成されたインデックスを保持するインデックス保持部35を備えている。そして、文書データ60ごとのインデックスは、上述のように、それぞれ対応した文書中のセンテンスと当該センテンスに含まれる句と単語との各々に付与された所定のタグ、単語およびタグに記述される属性の各々の記述位置と階層深さとを示すと共にセンテンス中の述語に相当する句または単語に付与されたタグと当該述語の項となる句または単語に付与されたタグとを属性により対応付けするものである。従って、インデックスを参照すれば、開始タグと終了タグとの対応関係により規定される文書中のセンテンスの構文木や、述語に相当する単語に付与されたタグと当該述語の項となる句等に付与されたタグとの対応関係により規定されるセンテンス中の述語項構造を容易に特定することができる。これを踏まえて、実施例のデータベース検索システム20では、複数の検索単語と当該検索単語間の述語項関係とが検索条件として受け付けられると(ステップS200)、インデックスに基づいて、受け付けられた検索単語をすべて含むタグ領域が抽出される(ステップS230)。より詳細には、ステップS200にて受け付けられた検索単語と述語項関係とに基づいて、当該述語項関係を対応付けする属性値p(n)を変数$xとした検索クエリが設定され(ステップS210)、設定された検索クエリに現れる最大の検索対象領域である最大検索領域が識別された上で(ステップS220)、ステップS200にて受け付けられた検索単語をすべて含む最大検索領域の開始タグおよび終了タグが抽出される(ステップS230)。そして、インデックス、すなわち述語に相当する単語に付与されたタグと当該述語の項となる句に付与されたタグとを対応付けするid属性やarg(x)属性の属性値p(n)のアドレスに基づいて、抽出されたタグ領域(最大検索領域)に含まれる検索単語に対応したタグ間でステップS200にて受け付けられた述語項関係に合致した対応付けがなされているか否かが判定される(ステップS340)。より詳細には、ステップS200にて設定された検索クエリを分解して得られる検索単語の何れかと変数$xとを含む少なくとも一つの部分クエリから当該変数$xを除いたクエリが実行され(ステップS290)、実行結果として返された変数値p(n)を代入した検索クエリに合致する最大検索領域が存在するか否かが判定された上で(ステップS320〜S340)、その判定の結果に基づいて検索結果が出力される(ステップS380,S390)。これにより、実施例のデータベース検索システム20によれば、文書データ60を複数蓄積したデータ記憶装置21上のデータベースを単語や句といった文要素間の意味的な関係により規定される概念を検索条件として検索すると共に、より精度のよい検索結果を迅速に得ることが可能となる。また、実施例のデータベース検索システム20では、互いに述語項関係にある検索単語のうちの出現頻度がより小さい一方の検索単語に対応したタグに記述されている属性値を変数$xとして当該変数の値p(n)を取得し、取得した変数値p(n)に一致する属性値が設定されている他方の検索単語に対応したタグが存在するか否かを判定している(ステップS320〜S360)。すなわち、上記実施例では、ステップS210にて設定された検索クエリを分解して得られるクエリの中から、互いに述語項関係にある検索単語のうちの出現頻度がより小さい一方の検索単語を含むものを部分クエリとして設定し(ステップS260)、その部分クエリに基づいて当該出現頻度がより小さい一方の検索単語に対応したタグに記述されている属性値を変数値として得ている(ステップS290)。このように当該出現頻度がより小さい一方の検索単語に対応したタグに記述されている属性値を変数とすれば、ステップS290にて取得される変数値の数がより少なくなり、その分だけ判定対象とすべき他方の検索単語に対応したタグの数を減らすことができる。これにより、属性値として同一の値が記述されている検索単語に対応したタグの対の有無を短時間で効率よく判定することが可能となる。
【0054】
なお、図12の検索処理においては、ステップS260にて設定されたすべての部分クエリに基づいて部分クエリごとに変数値を取得した上で(ステップS290)、変数値の組み合わせを取得し(ステップS310)、変数値の組を検索クエリに代入して(ステップS330)対象となる最大検索領域が変数代入後の検索クエリを満たすか否かを判定しているが(ステップS340)、これに限られるものではない。すなわち、検索処理の効率等をより改善してより迅速な検索を実行するためには、図15に例示するアルゴリズムに従った次のような変形例としての検索処理を実行してもよい。この場合、例えば、ステップS260にて2つの部分クエリが設定された場合には、ステップS270にて設定された対象最大検索領域について、出現頻度がより小さい検索単語に対応した一方の部分クエリ(第1の部分クエリ)から変数$xを除いたクエリを実行し、まず変数値を1つだけ取得する。次いで、他方の部分クエリ(第2の部分クエリ)から$xを除いたクエリを実行して変数値を順次取得すると共に、第1の部分クエリに基づく上記1つの変数値と第2の部分クエリに基づく変数値とを代入した検索クエリを対象最大検索領域が満たしているか否か判定する。ここで否定判断がなされた場合には、再度第1の部分クエリに基づいて2つ目の変数値を取得する。そして、再度第2の部分クエリから$xを除いたクエリを実行して変数値を順次取得すると共に、第1の部分クエリに基づく上記2つ目の変数値と第2の部分クエリに基づく変数値とを代入した検索クエリを対象最大検索領域が満たしているか否か判定する。以下、こういった処理を順次繰り返すことにより、検索条件に合致した最大検索領域が存在するか否かを判定する。このような変形例の検索処理によれば、
検索対象のタグ領域をより適正に減らしてより迅速な検索を実現することが可能となる。
【産業上の利用可能性】
【0055】
本発明は、情報処理分野において有用である。
【図面の簡単な説明】
【0056】
【図1】本発明の一実施例に係るデータベース検索システム20を示す概略構成図である。
【図2】実施例のデータベース検索システム20に含まれる管理サーバ30において実行されるインデックス作成処理の一例を示すフローチャートである。
【図3】文要素間の意味的関係を表現したラベル付き有向グラフの一例を示す説明図である。
【図4】実施例の管理サーバ30の構文解析部32に対して用意される単語情報と、当該単語情報等を用いた構文解析の手順を説明するための説明図である。
【図5】実施例の管理サーバ30の構文解析部32に対して用意される単語情報と、当該単語情報等を用いた構文解析の手順を説明するための説明図である。
【図6】センテンスを構文解析して得られる構文木の一例を示す説明図である。
【図7】特定分野におけるオントロジーを例示する説明図である。
【図8】実施例の管理サーバ30におけるインデックスの作成に際して、文書の構造化に用いられるタグの種類とそれに記述される属性とを例示する図表である。
【図9】図7に例示されたタグに記述される属性の内容を例示する図表である。
【図10】実施例の管理サーバ30のインデックス作成部34により構造化された英文をXML形式で出力した場合の出力例を示す説明図である。
【図11】実施例のインデックス作成部34により作成されたインデックスの一例を示す説明図である。
【図12】実施例の管理サーバ30により実行される検索処理の一例を示すフローチャートである。
【図13】実施例の管理サーバ30に接続された端末50の表示画面に表示される検索画面の一例を示す説明図である。
【図14】実施例のデータベース検索システム20における検索処理に際して用いられる演算子を例示する図表である。
【図15】実施例のデータベース検索システム20における検索処理の変形例を実現するためのアルゴリズムの一例を示す説明図である。
【符号の説明】
【0057】
20 データベース検索システム、21 データ記憶装置、30 管理サーバ、31 文書入力部、32 構文解析部、33用語認識部、34 インデックス作成部、35 インデックス保持部、36 入力受付部、37 検索処理部、38 結果出力部、40 ネットワーク、50 端末、60 文書データ。
【特許請求の範囲】
【請求項1】
所定言語からなるセンテンスを示すデータを文法上の意味的な注釈を含む構造化データに変換するデータ変換装置であって、
前記データと前記所定言語の文法情報および単語情報とを用いて前記センテンスの構文解析を実行する構文解析手段と、
前記構文解析手段による構文解析の結果に基づいて、それぞれ対応した属性が記述される所定のタグを前記センテンスに含まれる句と単語とに付与すると共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを前記構造化データとして出力する構造化データ出力手段と、
を備えるデータ変換装置。
【請求項2】
前記構文解析手段は、HPSGに基づく構文解析を実行して前記センテンスの構文木および述語項構造を取得するパーザである請求項1に記載のデータ変換装置。
【請求項3】
請求項1または2に記載のデータ変化装置において、
所定の用語情報に基づいて前記センテンスに含まれる句または単語の各々について該句または単語が一つの実体的意味で括られるものであるか否かを判定すると共に前記句または単語が前記実体的意味で括られるものであるときには該実体的意味を取得する用語認識手段を更に備え、
前記構造化データ出力手段は、前記取得された実体的意味を示す属性値を対応したタグの所定の属性に記述するデータ変換装置。
【請求項4】
所定言語からなるセンテンスを示すデータを文法上の意味的な注釈を含む構造化データに変換するためのデータ変換方法であって、
(a)前記データと前記所定言語の文法情報および単語情報とを用いて前記センテンスの構文解析を実行するステップと、
(b)ステップ(a)の構文解析の結果に基づいて、それぞれ対応した属性が記述される所定のタグを前記センテンスに含まれる句と単語とに付与すると共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを前記構造化データとして出力するステップと、
を含むデータ変換方法。
【請求項5】
所定言語からなる文書の文書データを複数蓄積したデータベースを管理するデータベース管理装置であって、
前記文書データと前記所定言語の文法情報および単語情報とを用いて前記文書の構文解析を実行する構文解析手段と、
前記構文解析手段による構文解析の結果に基づいて前記文書中のセンテンスと該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを出力するインデックス出力手段と、
前記インデックス出力手段により出力されたインデックスを前記文書データごとに保持するインデックス保持手段と、
を備えるデータベース管理装置。
【請求項6】
所定言語からなる文書の文書データを複数蓄積したデータベースを管理するためのデータベース管理方法であって、
(a)前記文書データと前記所定言語の文法情報および単語情報とを用いて前記文書の構文解析を実行するステップと、
(b)ステップ(a)の構文解析の結果に基づいて前記文書中のセンテンスと該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを出力すると共に前記文書データごとに保持するステップと、
を含むデータベース管理方法。
【請求項7】
所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索システムであって、
前記文書中のセンテンスと該センテンスに含まれる句と単語との各々に付与された所定のタグ、前記単語および前記タグに記述される属性の各々の記述位置と階層深さとを示すと共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けするように前記文書データごとに作成されたインデックスを保持するインデックス保持手段と、
複数の検索単語と該検索単語間の述語項関係とを検索条件として受け付け可能な受付手段と、
前記インデックス保持手段により保持されているインデックスに基づいて、前記受け付けられた検索単語をすべて含むタグ領域を抽出する抽出手段と、
前記インデックスに基づいて、前記抽出手段により抽出されたタグ領域に含まれる前記検索単語に対応したタグ間で前記受け付けられた述語項関係に合致した対応付けがなされているか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて検索結果を出力する検索結果出力手段と、
を備えるデータベース検索システム。
【請求項8】
請求項7に記載のデータベース検索システムにおいて、
前記インデックスでは、前記センテンス中の述語に相当する句または単語に対応したタグの所定の属性と該述語の項となる句または単語に対応したタグの所定の属性とに属性値として同一の値が設定されており、
前記判定手段は、前記インデックスに基づいて前記属性値として同一の値が記述されている前記検索単語に対応したタグの対の有無を判定するデータベース検索システム。
【請求項9】
請求項8に記載のデータベース検索システムにおいて、
前記単語ごとに前記データベースにおける出現頻度を記憶する出現頻度記憶手段を更に備え、
前記判定手段は、互いに述語項関係にある前記検索単語のうちの前記出現頻度がより小さい一方の検索単語に対応したタグに記述されている前記属性値を変数として該変数の値を取得し、取得した変数の値に一致する前記属性値が設定されている他方の前記検索単語に対応したタグが存在するか否かを判定するデータベース検索システム。
【請求項10】
請求項9に記載のデータベース検索システムにおいて、
前記受け付けられた検索単語と前記述語項関係とに基づいて、該述語項関係を対応付けする属性値を変数とした検索クエリを設定する検索クエリ設定手段を更に備え、
前記抽出手段は、前記設定された検索クエリに現れる最大の検索対象領域である最大検索領域を識別すると共に前記受け付けられた検索単語をすべて含む最大検索領域の開始タグおよび終了タグを抽出し、
前記判定手段は、前記設定された検索クエリを分解して得られる前記検索単語の何れかと前記変数とを含む少なくとも一つの部分クエリから該変数を除いたクエリを実行し、実行結果として返された前記変数の値を代入した前記検索クエリに合致する前記最大検索領域が存在するか否かを判定するデータベース検索システム。
【請求項11】
前記インデックスは、前記文書データと前記所定言語の文法情報および単語情報とを用いた前記文書の構文解析の結果に基づいて予め作成されている請求項7から10の何れかに記載のデータベース検索システム。
【請求項12】
所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索方法であって、
(a)前記文書中のセンテンスと該センテンスに含まれる句と単語との各々に付与された所定のタグ、前記単語および前記タグに記述される属性の各々の記述位置と階層深さとを示すと共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けするように前記文書データごとに作成されたインデックスを予め作成・保持しておくステップと、
(b)複数の検索単語と該検索単語間の述語項関係とを検索条件として受け付けるステップと、
(c)前記インデックスに基づいて、前記受け付けられた検索単語をすべて含むタグ領域を抽出するステップと、
(d)前記インデックスに基づいて、ステップ(c)で抽出されたタグ領域に含まれる前記検索単語に対応したタグ間で前記受け付けられた述語項関係に合致した対応付けがなされているか否かを判定するステップと、
(e)ステップ(d)における判定結果に基づいて検索結果を出力するステップと、
を含むデータベース検索方法。
【請求項1】
所定言語からなるセンテンスを示すデータを文法上の意味的な注釈を含む構造化データに変換するデータ変換装置であって、
前記データと前記所定言語の文法情報および単語情報とを用いて前記センテンスの構文解析を実行する構文解析手段と、
前記構文解析手段による構文解析の結果に基づいて、それぞれ対応した属性が記述される所定のタグを前記センテンスに含まれる句と単語とに付与すると共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを前記構造化データとして出力する構造化データ出力手段と、
を備えるデータ変換装置。
【請求項2】
前記構文解析手段は、HPSGに基づく構文解析を実行して前記センテンスの構文木および述語項構造を取得するパーザである請求項1に記載のデータ変換装置。
【請求項3】
請求項1または2に記載のデータ変化装置において、
所定の用語情報に基づいて前記センテンスに含まれる句または単語の各々について該句または単語が一つの実体的意味で括られるものであるか否かを判定すると共に前記句または単語が前記実体的意味で括られるものであるときには該実体的意味を取得する用語認識手段を更に備え、
前記構造化データ出力手段は、前記取得された実体的意味を示す属性値を対応したタグの所定の属性に記述するデータ変換装置。
【請求項4】
所定言語からなるセンテンスを示すデータを文法上の意味的な注釈を含む構造化データに変換するためのデータ変換方法であって、
(a)前記データと前記所定言語の文法情報および単語情報とを用いて前記センテンスの構文解析を実行するステップと、
(b)ステップ(a)の構文解析の結果に基づいて、それぞれ対応した属性が記述される所定のタグを前記センテンスに含まれる句と単語とに付与すると共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを前記構造化データとして出力するステップと、
を含むデータ変換方法。
【請求項5】
所定言語からなる文書の文書データを複数蓄積したデータベースを管理するデータベース管理装置であって、
前記文書データと前記所定言語の文法情報および単語情報とを用いて前記文書の構文解析を実行する構文解析手段と、
前記構文解析手段による構文解析の結果に基づいて前記文書中のセンテンスと該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを出力するインデックス出力手段と、
前記インデックス出力手段により出力されたインデックスを前記文書データごとに保持するインデックス保持手段と、
を備えるデータベース管理装置。
【請求項6】
所定言語からなる文書の文書データを複数蓄積したデータベースを管理するためのデータベース管理方法であって、
(a)前記文書データと前記所定言語の文法情報および単語情報とを用いて前記文書の構文解析を実行するステップと、
(b)ステップ(a)の構文解析の結果に基づいて前記文書中のセンテンスと該センテンスに含まれる句と単語とにそれぞれ対応した属性が記述される所定のタグを付与すると共に、前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けした上で、前記タグ、前記単語および前記タグの属性の各々の記述位置と階層深さとを示すインデックスを出力すると共に前記文書データごとに保持するステップと、
を含むデータベース管理方法。
【請求項7】
所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索システムであって、
前記文書中のセンテンスと該センテンスに含まれる句と単語との各々に付与された所定のタグ、前記単語および前記タグに記述される属性の各々の記述位置と階層深さとを示すと共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けするように前記文書データごとに作成されたインデックスを保持するインデックス保持手段と、
複数の検索単語と該検索単語間の述語項関係とを検索条件として受け付け可能な受付手段と、
前記インデックス保持手段により保持されているインデックスに基づいて、前記受け付けられた検索単語をすべて含むタグ領域を抽出する抽出手段と、
前記インデックスに基づいて、前記抽出手段により抽出されたタグ領域に含まれる前記検索単語に対応したタグ間で前記受け付けられた述語項関係に合致した対応付けがなされているか否かを判定する判定手段と、
前記判定手段による判定結果に基づいて検索結果を出力する検索結果出力手段と、
を備えるデータベース検索システム。
【請求項8】
請求項7に記載のデータベース検索システムにおいて、
前記インデックスでは、前記センテンス中の述語に相当する句または単語に対応したタグの所定の属性と該述語の項となる句または単語に対応したタグの所定の属性とに属性値として同一の値が設定されており、
前記判定手段は、前記インデックスに基づいて前記属性値として同一の値が記述されている前記検索単語に対応したタグの対の有無を判定するデータベース検索システム。
【請求項9】
請求項8に記載のデータベース検索システムにおいて、
前記単語ごとに前記データベースにおける出現頻度を記憶する出現頻度記憶手段を更に備え、
前記判定手段は、互いに述語項関係にある前記検索単語のうちの前記出現頻度がより小さい一方の検索単語に対応したタグに記述されている前記属性値を変数として該変数の値を取得し、取得した変数の値に一致する前記属性値が設定されている他方の前記検索単語に対応したタグが存在するか否かを判定するデータベース検索システム。
【請求項10】
請求項9に記載のデータベース検索システムにおいて、
前記受け付けられた検索単語と前記述語項関係とに基づいて、該述語項関係を対応付けする属性値を変数とした検索クエリを設定する検索クエリ設定手段を更に備え、
前記抽出手段は、前記設定された検索クエリに現れる最大の検索対象領域である最大検索領域を識別すると共に前記受け付けられた検索単語をすべて含む最大検索領域の開始タグおよび終了タグを抽出し、
前記判定手段は、前記設定された検索クエリを分解して得られる前記検索単語の何れかと前記変数とを含む少なくとも一つの部分クエリから該変数を除いたクエリを実行し、実行結果として返された前記変数の値を代入した前記検索クエリに合致する前記最大検索領域が存在するか否かを判定するデータベース検索システム。
【請求項11】
前記インデックスは、前記文書データと前記所定言語の文法情報および単語情報とを用いた前記文書の構文解析の結果に基づいて予め作成されている請求項7から10の何れかに記載のデータベース検索システム。
【請求項12】
所定言語からなる文書の文書データを複数蓄積したデータベースを検索するためのデータベース検索方法であって、
(a)前記文書中のセンテンスと該センテンスに含まれる句と単語との各々に付与された所定のタグ、前記単語および前記タグに記述される属性の各々の記述位置と階層深さとを示すと共に前記センテンス中の述語に相当する句または単語に付与されたタグと該述語の項となる句または単語に付与されたタグとを前記属性により対応付けするように前記文書データごとに作成されたインデックスを予め作成・保持しておくステップと、
(b)複数の検索単語と該検索単語間の述語項関係とを検索条件として受け付けるステップと、
(c)前記インデックスに基づいて、前記受け付けられた検索単語をすべて含むタグ領域を抽出するステップと、
(d)前記インデックスに基づいて、ステップ(c)で抽出されたタグ領域に含まれる前記検索単語に対応したタグ間で前記受け付けられた述語項関係に合致した対応付けがなされているか否かを判定するステップと、
(e)ステップ(d)における判定結果に基づいて検索結果を出力するステップと、
を含むデータベース検索方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【公開番号】特開2008−21270(P2008−21270A)
【公開日】平成20年1月31日(2008.1.31)
【国際特許分類】
【出願番号】特願2006−194943(P2006−194943)
【出願日】平成18年7月14日(2006.7.14)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】
【公開日】平成20年1月31日(2008.1.31)
【国際特許分類】
【出願日】平成18年7月14日(2006.7.14)
【出願人】(504137912)国立大学法人 東京大学 (1,942)
【Fターム(参考)】
[ Back to top ]