JPWO2011142134A1 - 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造 - Google Patents

情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造 Download PDF

Info

Publication number
JPWO2011142134A1
JPWO2011142134A1 JP2011538762A JP2011538762A JPWO2011142134A1 JP WO2011142134 A1 JPWO2011142134 A1 JP WO2011142134A1 JP 2011538762 A JP2011538762 A JP 2011538762A JP 2011538762 A JP2011538762 A JP 2011538762A JP WO2011142134 A1 JPWO2011142134 A1 JP WO2011142134A1
Authority
JP
Japan
Prior art keywords
path
search
information
node
index
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.)
Granted
Application number
JP2011538762A
Other languages
English (en)
Other versions
JP4947245B2 (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.)
NEC Corp
Original Assignee
NEC 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 NEC Corp filed Critical NEC Corp
Priority to JP2011538762A priority Critical patent/JP4947245B2/ja
Application granted granted Critical
Publication of JP4947245B2 publication Critical patent/JP4947245B2/ja
Publication of JPWO2011142134A1 publication Critical patent/JPWO2011142134A1/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • G06F16/9024Graphs; Linked lists
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • G06F16/94Hypermedia
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/31Indexing; Data structures therefor; Storage structures
    • G06F16/316Indexing structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures

Abstract

各ノードを起点とするパスを連結したパスフィールドをノード毎に生成するパスフィールド生成部と、グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、要素とポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、検索条件を表す検索パスを生成する検索パス生成部と、検索パス中の要素を含むパスフィールドを有するノードをインデックスレポジトリから検索し、検索されたノードのうち検索パス中の要素の出現順序を満たすパスフィールドを有するものをポスティングリストの位置情報に基づいて抽出する検索部とを備える。

Description

本発明は、情報を検索する装置に関し、特に、ノードおよびノード間を結ぶエッジで表されたグラフ構造情報から目的のノードを検索する情報検索装置、情報検索システム、情報検索方法、コンピュータ・プログラムおよびデータ構造に関する。
ノードおよびエッジからなるグラフで表されたグラフ構造情報から目的のノードを検索する情報検索装置として、特許文献1に記載されたものが知られている。ここで、グラフ構造情報とは、対象とする情報を構成する要素をノードとして表し、ノード間の関係をエッジとして表した情報である。
特許文献1に記載された情報検索装置は、グラフ構造情報を部分グラフにクラスタリングし、部分グラフ毎に各ノードを索引とするテーブルと、各エッジを索引とするテーブルとを生成する。そして、この情報検索装置は、これらのテーブルに基づいて問い合わせグラフに一致する部分グラフを検索する。
また、他のこのような情報検索装置として、非特許文献1に記載されたものも知られている。
非特許文献1に記載の情報検索装置は、RDF(Resource Description Framework)で表されるグラフ構造情報を検索する。この情報検索装置は、図22に示すように、関係データベース(以下、データベースをDBとも記載する)構築部91と、関係DB92と、検索部93とを備えている。関係DB92は、図23に概念的に示すように、クラス(class)テーブル、プロパティ(property)テーブル、タイプ(type)テーブル、リソース(resource)テーブル、パス(path)テーブルおよびトリプル(triple)テーブルを格納している。
なお、RDFでは、情報は、主語、述語および目的語の3つの要素からなる文(以下、トリプルともいう)によって表現されている。ここで、主語は、情報モデルにおけるリソースを表し、述語はリソースのプロパティを表し、目的語はリソースまたはプロパティ値を表している。また、RDFを可視化したRDFグラフでは、リソースはノードで表され、プロパティはエッジ(または、アークともいう)で表されている。
この情報検索装置は、次のようにして情報を関係DB92へ登録する。
まず、関係DB構築部91は、与えられたRDFグラフを元に、クラステーブル、プロパティテーブル、タイプテーブル、リソーステーブルおよびトリプルテーブルをそれぞれ生成する。
次に、関係DB構築部91は、ルートとなるリソースを決定し、決定したルートリソースから他の各リソースまでのすべてのプロパティの連なり(アークパス)を生成する。
さらに、関係DB構築部91は、生成した各アークパスにパスID(pathID)を付与し、各アークパスを表すパス表現(pathexp)およびパスIDを、パステーブルへ登録する。このとき、アークパスを表すパス表現は、プロパティ名の列として表現される。
上記のようにして生成された関係DB92に対して、検索部93は、SQLクエリを生成して検索を行う。
ここで、検索部93は、パスのみの指定により特定される情報を検索する場合は、パステーブルを用いて効率的な検索を行うことができる。例えば、検索部93は、図23に示した関係DB92の例に対して、「誰かによって描かれた絵のタイトルをすべて表示する」場合、次のようなパスのみを指定するSQLクエリを生成して検索を行う。
SELECT r.resourceName
FROM path AS p, resource AS r
WHERE p.pathID = r.pathID
AND p.pathexp = ’#title<#paints’
また、検索部93は、パスのみの指定では特定されない情報を検索する場合には、トリプルテーブルを用いて検索を行う。ここで、パスのみの指定では特定されない情報としては、特定の値をプロパティ値として持つリソースをあるプロパティで参照しているリソースや、特定の値をプロパティ値として持つリソースからあるプロパティで参照されているリソース等が挙げられる。例えば、検索部93は、図23に示した関係DB92の例に対して、「Pablo Picassoによって描かれた絵のタイトルをすべて表示する」場合、次のようなSQLクエリを生成して検索を行う。
SELECT t1.object
FROM triple AS t1, triple AS t2, triple AS t3, triple AS t4
WHERE t1.predicate = ’paints’
AND t1.subject = t2.subject
AND t2.predicate = ’first’
AND t2.object = ’Picasso’
AND t1.subject = t3.subject
AND t3.predicate = ’last’
AND t3.object = ’Pablo’
特開2009−258749号公報
Akiyoshi Matono et al., "A Path-based Relational RDF Database",ADC '05: Proceedings of the 16th Australasian database conference,pp95-103(2005)
しかしながら、特許文献1に記載された技術では、グラフ構造情報の複雑化に伴いエッジを索引とするテーブルのタプル数の合計が組み合わせ的に増加するので、問い合わせグラフを満たす部分グラフを検索する時間が増加するという課題がある。
また、非特許文献1に記載されたものは、パスのみの指定では特定されない情報の検索に時間がかかるという課題がある。
この理由は、パステーブルを利用できないクエリの実行時に結合演算が多く発生するためである。
さらに、非特許文献1に記載されたものは、パスのみの指定で特定される情報の検索であっても、情報モデルの複雑化に伴い検索時間が増加するという課題がある。
この理由は、情報モデルの複雑化にしたがってパステーブルのタプル数が組み合わせ的に増加するからである。このため、非特許文献1では、パステーブルを利用できるクエリであっても、検索キーとなるパス表現を比較する回数がパス数のオーダーで増加し、検索時間が大きく増加することになるためである。
本発明は、上述の課題を解決するためになされたもので、グラフ構造情報が複雑化しても目的のノードを高速に検索することができる情報検索装置を提供することを目的とする。
本発明の情報検索装置は、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置であって、前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成部と、前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、を備える。
また、本発明のデータ構造は、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納するデータ構造であって、前記各要素と、前記要素毎にそれぞれ生成され、前記各ノードを起点としてたどることができる前記要素の列であるパスを連結して表した各ノードのパスフィールドのうち、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストと、を対応付けて格納する。
また、本発明の情報検索システムは、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納したグラフ構造情報格納装置と、前記グラフ構造情報から検索条件を満たす目的ノードの検索を要求するクライアント装置と、前記グラフ構造情報から前記目的ノードを検索する情報検索装置と、を備えた情報検索システムであって、前記情報検索装置は、前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎にそれぞれ生成するパスフィールド生成部と、前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、を有する。
また、本発明のコンピュータ・プログラムは、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置の動作制御のためのコンピュータ・プログラムであって、前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成処理と、前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成処理と、前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成処理と、前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち、前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索処理と、をコンピュータに実行させる。
また、本発明の情報検索方法は、グラフ構造情報格納装置が、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納し、情報検索装置が、前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドをノード毎にそれぞれ生成し、前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けてインデックスレポジトリに格納し、クライアント装置が、前記グラフ構造情報のうち検索条件を満たす目的ノードの検索を前記情報検索装置に要求し、前記情報検索装置が、
前記検索条件を表す検索パスを前記要素の列として生成し、前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを前記インデックスレポジトリから検索し、
検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する。
本発明によれば、グラフ構造情報が複雑化しても目的のノードを高速に検索することができる情報検索装置を提供することができる。
本発明の第1の実施の形態としての情報検索システムのハードウェア構成図である。 本発明の第1の実施の形態としての情報検索システムの機能ブロック図である。 本発明の第1の実施の形態におけるグラフ構造情報の一例を説明する概念図である。 本発明の第1の実施の形態としての情報検索システムのインデックス生成動作を説明するフローチャートである。 本発明の第1の実施の形態としての情報検索システムの検索動作を説明するフローチャートである。 本発明の第2の実施の形態としての情報検索システムの構成を示す機能ブロック図である。 本発明の第2の実施の形態における知識情報モデルの一例を説明する概念図である。 本発明の第2の実施の形態におけるパスフィールドの一例を説明する図である。 本発明の第2の実施の形態におけるパスインデックスに格納されるデータの一例を説明する図である。 (a)、(b)および(c)は本発明の第2の実施の形態におけるリテラルプロパティインデックスに格納されるデータの一例を説明する図である。 本発明の第2の実施の形態におけるメタデータインデックスに格納されるデータの一例を説明する図である。 本発明の第2の実施の形態におけるモデルデータDBに格納されるデータの一例を説明する図である。 本発明の第2の実施の形態としての情報検索システムのインデックス生成動作を説明するフローチャートである。 本発明の第2の実施の形態としての情報検索システムの検索動作を説明するフローチャートである。 本発明の第2の実施の形態としての情報検索システムのパスクエリ生成動作を説明するフローチャートである。 本発明の第2の実施の形態におけるフレーズクエリの一例を説明する概念図である。 本発明の第3の実施の形態としての情報検索システムの構成を示す機能ブロック図である。 本発明の第3の実施の形態におけるパスフィールドの一例を説明する図である。 本発明の第3の実施の形態としての情報検索システムのインデックス生成動作を説明するフローチャートである。 本発明の第4の実施の形態としての情報検索システムの構成を示す機能ブロック図である。 本発明の第4の実施の形態としての情報検索システムのインデックス更新動作を説明するフローチャートである。 関連技術の情報検索装置の構成を示す機能ブロック図である。 関連技術の情報検索装置によって生成される関係DBの一例を示す図である。
以下、本発明の実施の形態について、図面を参照して説明する。
(第1の実施の形態)
本発明の第1の実施の形態としての情報検索システム1のハードウェア構成を図1に示す。図1において、情報検索システム1は、情報検索装置11と、グラフ構造情報格納装置12と、クライアント装置13とを備えている。また、情報検索装置11と、グラフ構造情報格納装置12と、クライアント装置13とは互いに通信可能に接続されている。
ここで、情報検索装置11は、CPU(Central Processing Unit)1101と、RAM(Random Access Memory)1102と、ROM(Read Only Memory)1103と、記憶装置1104と、ネットワークインタフェース1105とを少なくとも備えた汎用的なコンピュータによって構成されている。
また、グラフ構造情報格納装置12は、CPU1201と、RAM1202と、ROM1203と、記憶装置1204と、ネットワークインタフェース1205とを少なくとも備えた汎用的なコンピュータによって構成されている。
また、クライアント装置13は、CPU1301と、RAM1302と、ROM1303と、記憶装置1304と、ネットワークインタフェース1305と、入力装置1306と、出力装置1307とを少なくとも備えた汎用的なコンピュータによって構成されている。
次に、情報検索システム1の機能ブロック構成を図2に示す。
グラフ構造情報格納装置12は、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を記憶装置1204に格納している。グラフ構造情報格納装置12が格納するグラフ構造情報の一例を図3に示す。図3のグラフ構造情報は、ノードA、B1、B2、C1およびC2と、ノード間を結ぶエッジa、b、cおよびdを要素としている。
また、グラフ構造情報格納装置12は、情報検索装置11からの要求に応じてグラフ構造情報を情報検索装置11に提供する。
クライアント装置13は、グラフ構造情報のうち検索条件を満たす目的ノードの検索要求を表す情報を入力装置1306を介して取得する。そして、クライアント装置13は、検索要求を表す情報を情報検索装置11に送信する。また、クライアント装置13は、情報検索装置11から取得する検索結果を表す情報を出力装置1307を介して出力する。
情報検索装置11は、パスフィールド生成部101と、索引生成部102と、インデックスレポジトリ103と、検索部104と、検索パス生成部105とを備えている。ここで、パスフィールド生成部101、索引生成部102、検索部104および検索パス生成部105は、コンピュータ・プログラムとして記憶装置1104に格納され、これをRAM1102に読み込んで実行するCPU1101によって実現される。また、インデックスレポジトリ103は記憶装置1104によって構成される。
パスフィールド生成部101は、グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる要素の列(すなわち、ノードおよびエッジの列)である1つ以上のパスを、グラフ構造情報から抽出する。そして、パスフィールド生成部101は、抽出した1つ以上のパスを連結したパスフィールドをノード毎にそれぞれ生成する。
索引生成部102は、グラフ構造情報を構成する各要素(すなわち、各ノードおよび各エッジ)とポスティングリストとを対応付けたインデックスレポジトリ103を生成する。ここで、ポスティングリストとは、要素毎に生成され、その要素が含まれるパスフィールドを有するノードとその要素がそのパスフィールドにおいて出現する位置情報とからなる情報のリストである。
ここで、ポスティングリストに含まれる位置情報は、例えば、その要素がそのパスフィールドにおいて出現する位置を先頭から数えた順番を表す数値であってもよく、その要素がそのパスフィールド中に出現する位置を特定可能なその他の情報であってもよい。
インデックスレポジトリ103は、前述のように、要素と、その要素のポスティングリ
ストとを対応付けて格納している。
検索パス生成部105は、検索条件を表す検索パスを要素の列として生成する。
検索部104は、検索パスに含まれる各要素を含むパスフィールドを有するノードをインデックスレポジトリ103から検索する。そして、検索部104は、検索されたノードのうち検索パスにおける要素の出現順序を満たすパスフィールドを有するものをポスティングリストの位置情報に基づいて抽出することにより目的ノードを検索する。
以上のように構成された情報検索システム1の動作について説明する。
まず、情報検索装置11がインデックスレポジトリ103を生成する処理を、図4を参照して説明する。
ここでは、まず、索引生成部102が、グラフ構造情報をグラフ構造情報格納装置12から読み込む(ステップS1)。
次に、パスフィールド生成部101が、読み込まれたグラフ構造情報に含まれる各ノードについて、パスフィールドを生成する(ステップS2)。
例えば、パスフィールド生成部101は、図3に示したグラフ構造情報のノードAについて、ノードAを基点としてたどることができる要素の列として、パス[A][a][B1][b][C1]と、パス[A][a][B1][d][C2]と、パス[A][c][B2]との3つのパスを抽出する。そして、パスフィールド生成部101は、ノードAのパスフィールドとして、この3つのパスを連結してパスフィールド[A][a][B1][b][C1][A][a][B1][d][C2][A][c][B2]を生成する。パスフィールド生成部101は、同様に、ノードB1、B2、C1、C2についてもパスフィールドを生成する。
次に、索引生成部102が、グラフ構造情報を構成する各要素と、各要素のポスティングリストとを対応付けてインデックスレポジトリ103に登録する(ステップS3)。
例えば、索引生成部102は、図3に示したグラフ構造情報を構成する要素bについてポスティングリストを生成する。ここで、ある要素がノードXのパスフィールドに含まれ、そのパスフィールドの先頭から数えてi番目に出現することを、X<i>と表すものとすると、要素bのポスティングリストは、「A<4>,B1<2>」となる。
そして、索引生成部102は、要素bと要素bのポスティングリストとを対応付けてインデックスレポジトリ103に登録する。同様に、索引生成部102は、残りの要素についてもポスティングリストを生成し、生成したポスティングリストをインデックスレポジトリ103に登録する。
以上で、情報検索装置11はインデックスレポジトリ103を生成する処理を終了する。
次に、情報検索システム1が、目的ノードを検索する動作について図5を参照して説明する。
まず、クライアント装置13が検索条件を満たす目的ノードの検索を情報検索装置11に要求し、情報検索装置11がこれを受け付ける(ステップS4でYes)。
例えば、クライアント装置13は、図3に示したグラフ構造情報から「エッジbの先にノードC1を有するノードの検索」を情報検索装置11に要求する。
次に、検索パス生成部105が、受け付けた検索条件を表す検索パスを生成する(ステップS5)。例えば、検索パス生成部105は、上述の検索条件の例に対して検索パスとして[x][b][C1]を生成する。ここで、[x]は目的ノードを表しているものとする。
次に、検索部104が、検索パスに含まれる各要素を含むパスフィールドを有するノードをインデックスレポジトリ103から検索し、検索したノードのうち検索パスに含まれる要素の出現順序を満たすパスフィールドを有するものを目的ノードとして抽出する(ステップS6)。
例えば、検索部104は、検索パスに含まれる要素[b]および[C1]が含まれるパスフィールドを有するものとして、ノードAおよびB1を検索する。そして、検索部104は、検索パスにおいて[b]が2番目、[C1]が3番目であるという出現順序を満たすパスフィールドを有するものとして、検索したノードAおよびB1のうちノードB1を抽出する。
以上で、情報検索システム1の動作の説明を終了する。
次に、本発明の第1の実施の形態の効果について述べる。
本発明の第1の実施の形態としての情報検索システムは、グラフ構造情報が複雑化しても目的のノードを高速に検索することができる。
その理由は、グラフ構造情報を構成する各要素を索引とするインデックスレポジトリによってグラフ構造情報を格納するため、グラフ構造情報が複雑化しても、検索対象となるインデックスレポジトリのタプル数を、グラフ構造情報を構成する要素数のオーダーに抑えることができるためである。したがって、目的ノードを検索する際にインデックスレポジトリの索引語である要素と検索パスに含まれる要素とを比較する回数を、グラフ構造情報を構成する要素数のオーダーに抑えることができるため上記目的は実現する。
また、本発明の第1の実施の形態としての情報検索システムは、記憶装置の資源消費量を軽減することができる。
その理由は、インデックスレポジトリのサイズを決定する要因である索引語の数が、グラフ構造情報を構成する要素数のオーダーで済むためである。
また、本発明の第1の実施の形態におけるインデックスレポジトリのデータ構造は、目的ノードの検索対象となるグラフ構造情報を格納するためのデータ構造として好適である。
その理由は、インデックスレポジトリが、グラフ構造情報の各要素に関連づけて、各要素のポスティングリストを格納しているため、索引語数を抑えながらグラフ構造情報を格納することができるからである。このデータ構造に対して、検索パスに含まれるタームを含むパスフィールドを有するノードが検索され、さらに位置情報が用いられてフィルタリングされることにより、目的ノードを高速に検索可能だからである。
(第2の実施の形態)
次に、本発明の第2の実施の形態について説明する。
まず、本発明の第2の実施の形態としての情報検索システム2の構成を図6に示す。なお、図6において、本発明の第1の実施の形態と同一の構成には同一の符号を付して本実施形態における詳細な説明を省略する。
図6において、情報検索システム2は、情報検索装置21と、知識情報レポジトリ22と、クライアント装置13とを備えている。また、情報検索装置21と、知識情報レポジトリ22と、クライアント装置13とは互いに通信可能に接続されている。
ここで、情報検索装置21および知識情報レポジトリ22は、本発明の第1の実施の形態における情報検索装置11およびグラフ構造情報格納装置12と同様に汎用的なコンピュータによって構成されている。なお、知識情報レポジトリ22は、本発明のグラフ構造情報格納装置の一実施形態を構成する。
まず、知識情報レポジトリ22の構成について説明する。
知識情報レポジトリ22は、RDFグラフで表された知識情報モデルを格納している。ここで、知識情報モデルは、本発明におけるグラフ構造情報の一実施形態を構成する。知識情報レポジトリ22に格納された知識情報モデルの例を図7に示す。なお、以下の説明において、RDFにおけるリソースおよびリテラルは本発明のノードの一実施形態を構成し、RDFにおけるプロパティは本発明のエッジの一実施形態を構成する。
図7では、楕円がリソースを示し、矩形が具体値を取るリソース(リテラル)を示し、矢印がリソース間の関連であるプロパティを示している。リソース中の文字列は、そのリソースを識別するリソースIDを示す。プロパティ上の文字列は、そのプロパティの種別を識別するプロパティIDを示す。リテラル中の文字列は、そのリテラルのとる具体値(リテラル値)を示す。ここで、リソースIDおよびプロパティIDは、URI、数値、または文字列等であってもよく、リソースおよびプロパティの種別を一意に識別できる情報であれば良い。なお、リソースID、プロパティIDおよびリテラル値をモデルの語彙(以下、タームともいう)と呼ぶ。
図7は、保険会社における社員とその顧客、および、顧客の家族と加入保険情報をRDFグラフで表現した例である。リソースb1は、Corporation(会社)の実体であり、hasEmployee(社員)としてe1を持つ。なお、「Corporation(会社)の実体である」とは、リソースb1のtype(種別)がCorporationであることを指す。リソースe1は、Employee(社員)の実体であり、contact(連絡先)として、xxx@yyy.zzz.xx(電子メールアドレス)を持ち、hasClient(顧客)として、c1を持つ。リソースc1は、Client(顧客)の実体であり、hasFamilyMember(家族構成員)として、p1を持つ。リソースp1は、Person(人)の実体であり、hasInsurance(加入保険)として、a1とa2を持つ。リソースa1は、Insurance(保険)の実体であり、validUntil(有効期限)として、2010年12月31日を持ち、inNonrefundable(掛け捨て保険であるか否か)として、true(真)を持つ。リソースa2は、Insurance(保険)の実体であり、validUntil(有効期限)として、2015年12月31日を持ち、inNonrefundable(掛け捨て保険であるか否か)として、false(偽)を持つ。
図6に戻り、情報検索装置21の構成について説明する。
情報検索装置21は、パスフィールド生成部201と、索引生成部202と、トークナイズ部212と、インデックスレポジトリ203と、検索部204と、検索パス生成部205と、入出力部206と、モデルデータDB207と、を備えている。ここで、パスフィールド生成部201、索引生成部202、トークナイズ部212、検索部204および検索パス生成部205は、コンピュータ・プログラムとしてコンピュータの記憶装置に格納され、これをRAMに読み込んで実行するCPUによって実現される。
また、インデックスレポジトリ203およびモデルデータDB207はコンピュータの記憶装置によって構成される。なお、モデルデータDB207は本発明におけるサブグラフ格納部の一実施形態を構成する。
また、入出力部206は、コンピュータ・プログラムとしてコンピュータの記憶装置に格納され、これをRAMに読み込んで実行するCPU、および、ネットワークインタフェースによって構成される。
パスフィールド生成部201は、パスフィールド生成部101と同様に知識情報モデルを構成するリソース毎にパスフィールドを生成する。
具体的には、パスフィールド生成部201は、各リソースを起点としてたどることができるリソースおよびプロパティの列を表す1つ以上のパスを抽出する。そして、パスフィールド生成部201は、抽出した各パスを、起点としたリソースを先頭としてリソースID、プロパティIDおよびリテラル値を連結した接尾辞パスとして表す。さらに、パスフィールド生成部201は、1つのリソースからたどることができる全てのパスを表す接尾辞パスを連結したパスフィールドをリソース毎に生成する。また、パスフィールド生成部201は、生成したパスフィールドにおいて、起点としたリソースのリソースIDを予約語「THIS」で置き換える。
パスフィールドの一例を図8に示す。図8は、図7に例示した知識情報モデルのうちリソースe1について生成されたパスフィールドである。図8において、リソースe1のパスフィールドは、リソースe1を起点としてたどることができる10本のパスが接尾辞パスで表されこれらが連結されたものである。また、リソースe1のパスフィールド中で、起点としたリソースe1のリソースIDであるe1は予約語THISに置き換えられている。
トークナイズ部212は、パスフィールド生成部201によって生成されたパスフィールドを、知識情報モデルの語彙単位へ分割する。なお、トークナイズ部212は、本発明の索引生成部の一実施形態の一部分を構成する。
索引生成部202は、知識情報レポジトリ22から知識情報モデルを取得する。そして索引生成部202は、知識情報モデルに含まれる各リソースについて、パスフィールド生成部201を用いてパスフィールドを生成する。
また、索引生成部202は、トークナイズ部212を用いて、生成したパスフィールドを語彙に分割し、後述のインデックスレポジトリ203のパスインデックス、リテラルプロパティインデックス群およびメタデータインデックス群に登録する。
インデックスレポジトリ203は、パスインデックスと、リテラルプロパティインデックス群およびメタデータインデックス群とを有している。
パスインデックスは、知識情報モデルを構成するターム(リソースID、プロパティID、リテラル値)と、そのポスティングリストとを対応付けて格納している。ここで、ポスティングリストとは、そのタームを含むパスフィールドを有するリソースのリソースIDと、そのタームがそのパスフィールドに出現する位置情報とからなる情報のリストである。
例えば、図7に示した知識情報モデルに対応するパスインデックスの一例を図9に示す。図9において、パスインデックスは、例えば、typeというタームと、そのポスティングリストとを対応付けて格納している。ここで、タームtypeのポスティングリストは、タームtypeを含むパスフィールドを有するリソースb1、e1、c1、p1、a1およびa2およびそのパスフィールドにおけるタームtypeの位置情報からなる情報のリストである。図9では、タームtypeが、リソースe1のパスフィールドの2ターム目と、7ターム目等に出現することを、e1<2,7・・・>と表している。なお、パスフィールドにおける位置情報は、パスフィールドにおいて先頭から数えたターム数で表される他、文字列、数値、記号あるいは参照関係などで表されていてもよく、パスフィールド内でタームが出現する位置を特定することができる情報であればよい。
また、図9に示すように、パスインデックスは、予約語THISも索引語として格納している。予約語THISに対応付けられたポスティングリストは、各リソースがそのパスフィールド中のパスのどこに位置するのかを表している。なお、予約語は、「THIS」に限らず、他のタームと重複しない情報であればよい。
リテラルプロパティインデックス群は、知識情報モデルにおいてリテラルを持つプロパティ(リテラルプロパティ)のプロパティIDごとに生成されるインデックスである。1つのリテラルプロパティインデックスは、リテラル値と、そのプロパティを持つリソースとを対応付けて格納している。
例えば、図7に示した知識情報モデルに対応するリテラルプロパティインデックス群の一例を図10に示す。図10には、contact、inNonrefundableおよびvalidUntilという3つのリテラルプロパティのプロパティIDにそれぞれ対応したcontactインデックス(図10(a))、isNonrefundableインデックス(図10(b))およびvalidUntilインデックス(図10(c))を示している。
なお、リテラルプロパティインデックス群に含まれるリテラルプロパティインデックスの数は3つに限らず、対象となる知識情報モデルに含まれるリテラルプロパティの種類数に依存する。
また、インデックスレポジトリ203は、これらのリテラルプロパティインデックス群を異なるテーブルに分離して格納する必要はなく、論理的に区別可能に同一のテーブルに格納してもよい。
メタデータインデックス群は、知識情報モデル中で、特殊な意味を持つプロパティについて、リソースおよびプロパティ値を対応付けて格納する。
例えば、図7に示した知識情報モデルに対応するメタデータインデックスの一例を図11に示す。図11のtypeインデックスは、typeというプロパティが各リソースの型(クラスまたはタイプとも呼ぶ)を表す特殊なプロパティであるとして用意されたメタデータインデックスである。typeインデックスは、typeプロパティを持つリソースとそのプロパティ値とを対応付けて格納している。
なお、本実施の形態では、リソースおよびプロパティの種別を識別するリソースIDおよびプロパティIDと、これらに付与されたタームとに同一の文字列情報を用いた例を説明している。これに対して、これらに異なる情報を用いる場合、インデックスレポジトリ203は、メタデータインデックスとしてIDインデックスを有するようにしてもよい。この場合、IDインデックスは、リソースIDおよびプロパティIDと、これらに付与されたタームとを対応付けて格納する。
また、複数のメタデータインデックスを備える場合、インデックスレポジトリ203は、これらを異なるテーブルに分離して格納する必要はなく、論理的に区別可能に同一のテーブルに格納してもよい。
索引生成部202は、RDFで表された知識情報モデルを構成する各リソースID、各プロパティIDおよび各リテラル値を表すターム毎にそのポスティングリストを生成する。そして、索引生成部202は、各タームと、各タームのポスティングリストとを対応付けてインデックスレポジトリ203に登録する。
モデルデータDB207は、図12に示すようなサブグラフテーブルを備えている。
サブグラフテーブルは、知識情報モデルを構成するリソース毎に、そのリソースから所定の深さまでのサブグラフを抽出し、リソースIDに対応付けて格納している。
図12の例では、各リソースIDと、そのリソースに1つのプロパティを介して隣接しているリソースまたはリテラル値までのサブグラフを格納している。サブグラフテーブルに格納するサブグラフの表現形式は、N3(Notation 3)などの文字列による表現、Java(登録商標)オブジェクトなどのバイナリデータ、バイナリデータのシリアライズデータ、または、それらの圧縮形式などであってもよい。サブグラフの表現形式は、元の知識情報モデルの一部を再現できる形式であればよい。
入出力部206は、クライアント装置13から検索条件を取得し、取得した検索条件を検索部204に通知する。また、入出力部206は、検索部204から通知された検索結果をクライアント装置13へ出力する。
検索部204は、入出力部206から検索条件を受け取り、後述の検索パス生成部205を用いて検索パスおよび検索パスに対応するパスクエリを生成する。そして、検索部204は、生成したパスクエリを用いて、インデックスレポジトリ203に対する検索を行う。
また、検索部204は、検索結果のリソースのサブグラフを、モデルデータDB207から取得し、入出力部206に出力する。
検索パス生成部205は、検索条件を表す検索パスをリソースおよびプロパティの列として生成する。
例えば、検索パス生成部205は、検索条件のうち、具体的なリテラル値をプロパティとして持つよう制限されたリソースを制限リソースとして抽出し、目的リソースと制限リソースとを結ぶリソースおよびプロパティの列を検索パスとして生成する。
ここで、検索パスは、検索条件の内容に応じて、先頭から末尾までリソースおよびプロパティがすべて特定されたパスになる場合と、一部のリソースまたはプロパティが特定され未特定箇所を含むパスになる場合がある。
さらに、検索パス生成部205は、生成した検索パスにおけるリソースおよびプロパティの出現順序に基づいて、パスインデックスに対するパスクエリを生成する。このとき、検索パス生成部205は、検索パスに未特定箇所があれば、未特定箇所に挿入可能な要素数を考慮してパスクエリを生成する。
以上のように構成された情報検索システム2の動作について図面を参照して説明する。
まず、情報検索装置21がインデックスレポジトリ203を生成する処理について図13を参照して説明する。
ここでは、まず、索引生成部202が、知識情報レポジトリ22から知識情報モデルを取得する(ステップS11)。
次に、パスフィールド生成部201が、知識情報モデルを構成する各リソースについて接尾辞パスを連結したパスフィールドを生成する(ステップS12)。
次に、トークナイズ部212が、生成された各パスフィールドを知識情報モデルを構成するターム単位にトークナイズする(ステップS13)。
次に、索引生成部202が、知識情報モデルを構成する各リソース、各プロパティおよび各リテラルをそれぞれ表すターム毎に、そのポスティングリストを生成する。そして、索引生成部202は、各タームとそのポスティングリストとを対応付けてパスインデックスに登録する(ステップS14)。さらに、索引生成部202は、タームがリテラルプロパティであれば、リテラルプロパティインデックスへの登録を行う。また、索引生成部202は、タームが特殊なプロパティを持つリソースであれば、メタデータインデックスへの登録を行う。
次に、索引生成部202は、知識情報モデルを構成する各リソースのサブグラフを抽出し、モデルデータDB207に登録する(ステップS15)。
以上で、情報検索装置21はインデックス生成処理を終了する。
なお、ステップS12〜S14の一連の処理と、ステップS15の処理の間に実行順序の依存関係はなく、情報検索装置21は、どちらを先に実行してもよい。また、情報検索装置21が2つの処理を並列に実行可能であれば、ステップS12〜S14の一連の処理と、ステップS15の処理とを並列に実行してもよい。
次に、情報検索装置21による検索処理について、図14を参照して説明する。
ここでは、まず、入出力部206がクライアント装置13から目的リソースの検索条件を取得する(ステップS21でYes)。
次に、検索部204は、入出力部206によって取得された検索条件に基づいて、具体的なリテラル値をプロパティとして持つよう制限された制限リソース群およびその制限内容を抽出する(ステップS22)。
次に、検索部204は、検索パス生成部205を用いて、抽出された制限リソースのそれぞれについて、その制限内容に基づいて、制限リソースの実体を検索するためのクエリを生成する(ステップS23)。
次に、検索部204は、生成されたクエリを用いて、インデックスレポジトリ203を検索することにより、制限リソースの実体集合を得る(ステップS24)。
検索部204は、ステップS22で抽出されたすべての制限リソースに対して、クエリの生成(ステップS23)と検索(ステップS24)を繰り返すことにより、制限リソース群の実体集合群を取得する。
次に、検索部204は、ステップS21で取得された検索条件と、ステップS24で検索された制限リソースの実体集合群に基づいて、検索パス生成部205を用いて検索パスを生成する。そして、検索部204は、検索パス生成部205を用いて、生成した検索パスに基づいてパスインデックスを検索するためのパスクエリを生成する(ステップS25)。
次に、検索部204は、パスクエリを用いて、インデックスレポジトリ203を検索し、検索結果を表すリソースID群を取得する(ステップS26)。
次に、検索部204は、検索結果を表すリソースID群のサブグラフ群をモデルデータDB207から取得する。そして、検索部204は、サブグラフ群を構成して検索結果を表すグラフデータを生成し、生成したグラフデータを入出力部206へ出力する。そして、入出力部206は、検索結果を表すグラフデータをクライアント装置13に出力する(ステップS27)。
以上で、情報検索装置21は検索処理を終了する。
ここで、ステップS25におけるパスクエリ生成処理の詳細について、図15を用いて説明する。
まず、検索パス生成部205は、検索部204から、検索条件と、制限リソース群と、制限リソースの実体集合群を受け取る。
次に、検索パス生成部205は、検索条件から、検索結果として得たい目的リソースを抽出する(ステップS31)。
次に、検索パス生成部205が、各制限リソースに対して、次の処理を実施する。
ここでは、まず、目的リソースと、この制限リソース間の知識情報モデル上でのプロパティのつらなりを特定し、プロパティ列を検索パスとして生成する(ステップS32)。
次に、検索パス生成部205は、この制限リソースの実体集合をOR結合し、検索パスの制限リソースの位置に登録する(ステップS33)。
次に、検索パス生成部205は、検索パスの目的リソースの位置に目的リソースを示す予約語THISを登録する(ステップS34)。
次に、検索パス生成部205は、生成した検索パスに基づいて、未特定箇所を考慮してターム間の距離1まで許容するフレーズクエリを生成する(ステップS35)。ここで、ステップS32〜S34で生成された検索パスには、プロパティ間でリソースが特定されていない未特定箇所が含まれる場合がある。このため、検索パス生成部205は、プロパティ間の未特定箇所にリソースが1つまで挿入可能であるとするフレーズクエリを生成する。なお、プロパティ間に挿入可能な要素数は1つには限定されず、検索条件の内容に応じて適宜設定される。
検索パス生成部205は、ステップS32〜S35の処理を、各制限リソースに対して実行する。
次に、検索パス生成部205は、検索条件において目的リソースのプロパティに対する制限がある場合は、プロパティクエリ群を生成する(ステップS36)。
次に、検索パス生成部205は、すべての制限リソースに対するフレーズクエリ群と、目的リソースのプロパティクエリ群をAND結合し、パスクエリとして検索部204に返却する(ステップS37)。
以上で、パスクエリ生成処理の説明を終了する。
次に、情報検索装置21による検索処理の一例について説明する。
ここでは、クライアント装置13が情報検索装置21に対して、図7に示した知識情報モデルから「2010年内に保障が切れる掛け捨て保険に入っている家族がいる人を担当している営業担当者」を検索するよう要求した場合について再度図14および図15を用いて説明する。
まず、入出力部206は、上述の検索条件を表す擬似SQL文(式1)をクライアント装置13から取得する(ステップS21)。
[式1]
Select x; Where x type Employee, x
hasClient y, y hasFamilyMember z, z hasInsurance i, i validUntil < 20110101, i
isNonrefundable true, i type Insurance;
次に、検索部204は、式1から、変数iを制限リソースとして抽出する(ステップS22)。
次に、検索部204は、検索パス生成部205を用いて、この制限リソースを検索するクエリとして、変数iを制限している条件を用い式2のクエリを生成する(ステップS23)。
[式2]
Select i; Where i validUntil < 20110101, i
isNonrefundable true, i type Insurance;
次に、検索部204は、式2を用いて、リテラルプロパティインデックス群およびメタデータインデックス群に対する検索を行い、制限リソースの実体として、リソースID a1を得る(ステップS24)。
次に、検索パス生成部205は、式1から、目的リソースとして、xを抽出する(ステップS31)。
次に、検索パス生成部205は、目的リソースxと、制限リソースi間の検索パスとして、
[hasClient][hasFamilyMember][hasInsurance]
を生成する(ステップS32)。
次に、検索パス生成部205は、検索パスに対して、制限リソースの位置である末尾に、制限リソースの実体a1を追加し、検索パスを、
[hasClient][hasFamilyMember][hasInsurance][a1]
とする(ステップS33)
さらに、検索パス生成部205は、生成した検索パスに対して、目的リソースの位置である先頭に、予約語THISを追加し、検索パスを、
[THIS][hasClient][hasFamilyMember][hasInsurance][a1]
とする(ステップS34)。
次に、検索パス生成部205は、生成した検索パスを元に、未特定箇所を考慮してターム間距離1を許容するフレーズクエリを生成する(ステップS35)。このフレーズクエリは例えば次のように表現される。
THIS.{0,1}hasClient.{0,1}hasFamilyMember.{0,1}hasInsurance.{0,1}a1
ここで、.{0,1}はその位置に他のタームが1つまで挿入可能であることを表す。また、このフレーズクエリを概念的に表したものを図16に示しておく。このように、検索パス生成部205は、検索パスにおけるタームの出現順序と未特定箇所に挿入可能な要素数を考慮してフレーズクエリを生成する。
次に、検索パス生成部205は、目的リソースxに対するプロパティ制限として、x type Employeeに相当するプロパティクエリを生成する(ステップS36)。
次に、検索パス生成部205は、ステップS35で生成したフレーズクエリと、ステップS36で生成したプロパティクエリをAND結合し、パスクエリとして返却する(ステップS37)。
検索部204は、このパスクエリを用いて、パスインデックス、リテラルプロパティインデックス群およびメタデータインデックスに対する検索を行い、目的リソースとして、e1を得る(ステップS26)。
ここで、ステップS26において、検索部204が目的リソースを検索する動作例についてさらに詳細に説明する。
(ステップS26−1):検索部204は、パスインデックスから、フレーズクエリの先頭のタームTHISを含むリソースを検索する(b1,e1,c1,p1,a1,a2が検索される)。
(ステップS26−2):検索部204は、パスインデックスから、次のタームhasClientを検索する(b1,e1が検索される)。
(ステップS26−3):検索部204は、ステップS26−1およびS26−2の結果をリソース単位でマージする(b1,e1が残る)。
(ステップS26−4):検索部204は、パスインデックスから、次のタームhasFamilyMemberを検索する(b1,e1,c1が検索される)。
(ステップS26−5):ステップS26−3およびS26−4の結果をリソース単位でマージする(b1,e1が残る)。
(ステップS26−6):検索部204は、パスインデックスから、次のタームhasInsuranceを検索する(b1,e1,c1,p1が検索される)。
(ステップS26−7):検索部204は、ステップS26−5およびS26−6の結果をリソース単位でマージする(b1,e1が残る)。
(ステップS26−8):検索部204は、パスインデックスから、次のタームa1を検索する(b1,e1,c1,p1が検索される)。
(ステップS26−9):検索部204は、ステップS26−7およびS26−8の結果をリソース単位でマージする(b1,e1が残る)。
(ステップS26−10):検索部204は、マージされて残ったリソースb1、e1のパスフィールドの位置情報に基づいて、リソースのフィルタリングを行う(最終的な検索結果としてe1が残る)。
なお、検索部204は、ステップS26−10におけるフィルタリング処理を、各ステップS26−1〜9後にそれぞれ実行してもよい。また、検索部204は、このフィルタリング処理を各ステップS26−1〜9後に実行するか否かを、検索処理またはマージ処理後のリソース数の増加傾向に基づいて判断してもよい。
このようにして、検索結果としてリソースe1を得た検索部204は、リソースe1のサブグラフをモデルデータDB207から取得し、入出力部206へ出力する(ステップS27)。
なお、クライアント装置13によって要求される検索条件の表現形式は、式1のような擬似SQL文に限定されず、例えば、RDFグラフそのものを表す情報や、SPARQL Protocol and RDF Query Language(SPARQL)などのRDFクエリ言語であっても良い。
次に、本発明の第2の実施の形態の効果について説明する。
本発明の第2の実施の形態としての情報検索システムは、知識情報モデルが複雑化しても目的リソースを高速に検索することができる。
その理由は、パスインデックスが、知識情報モデルを構成する語彙を索引語としているため、知識情報モデルが複雑化しても、検索速度に影響する索引語数を知識情報モデルの語彙数のオーダーに抑えられるためである。
さらなる理由は、目的リソースを検索をする際に、パスクエリを構成する各タームを含むパスフィールドを有するリソースをパスインデックスから検索してマージすることによりリソースを絞り込んでいくので、マージ処理の計算量を削減できるからである。対して、非特許文献1に記載されたものの場合は、目的リソースを検索する際に、条件となる「x hasClient y」、「y hasFamilyMember z」をそれぞれ満たすものを検索してjoin結合していく。したがって、知識情報モデルの複雑化に伴い、join後に残るタプル数が組合せ的に増大し、join演算に時間がかかることになるからである。
したがって、本発明の第2の実施の形態としての情報検索システムは、検索要求に含まれるリソースの連なりが長くなった場合でも、その影響をほとんど受けず略一定の検索速度で検索することができる。
また、本発明の第2の実施の形態におけるパスインデックスのデータ構造は、目的リソースの検索対象となる知識情報モデルを格納するためのデータ構造として好適である。
その理由は、パスインデックスが、知識情報モデルを構成するタームに、そのポスティングリストを対応付けて格納しているため、索引語数を抑えながら知識情報モデルを格納することができるからである。このデータ構造に対して、パスクエリを構成するタームを含むパスフィールドを有するリソースがパスインデックスから検索され、その後位置情報が用いられてフィルタリングされることにより、目的リソースを高速に検索可能だからである。
また、本発明の第2の実施の形態としての情報検索システムは、知識情報モデルを格納する資源消費量を軽減することができる。
その理由は、知識情報モデルを格納するのに必要なデータ構造が、モデルデータDBおよびインデックスレポジトリのみで済むためである。さらに、モデルデータDB内のサブグラフは、検索には使用されず検索結果を提示する際に使用されるため、圧縮形式で格納されることも可能だからである。また、インデックスレポジトリのうち、パスインデックスは、インデックスサイズを決定する要因である索引語数を、パス数ではなく語彙数のオーダーに抑えることができるからである。さらに、リテラルプロパティインデックス群およびメタデータインデックス群は、パスインデックスに比べると十分小さく、かつ保存する情報もタームおよびリソースIDのみであるため資源の消費量は少ない。したがって、モデルデータDBおよびインデックスレポジトリの双方を小規模に抑えることが可能であり、記憶装置等の資源の消費量を軽減することができる。
(第3の実施の形態)
次に、本発明の第3の実施の形態について図面を参照して説明する。
まず、本発明の第3の実施の形態としての情報検索システム3の機能ブロック構成を図17に示す。なお、図17において、本発明の第2の実施の形態と同一の構成については同一の符号を付して本実施の形態における詳細な説明を省略する。
情報検索システム3は、本発明の第2の実施の形態としての情報検索システム2に対して、パスフィールド生成部201に替えてパスフィールド生成部301を有する情報検索装置31を備える点が異なる。
パスフィールド生成部301は、パスフィールド生成部201に対して、各リソースを起点としてたどることができるパスとして、接尾辞パスの代わりに完全パスを用いる点が異なる。ここで、完全パスとは、ルートリソースから起点となるリソースまでのパスを、起点となるリソースからの接尾辞パスに連結したパスである。
例えば、パスフィールド生成部301によって生成されたパスフィールドの一例を、図18に示す。図18は、リソースe1のパスフィールドを表している。このリソースe1のパスフィールドは、e1を起点とする10本のパスが完全パスで表され、連結されたものである。
以上のように構成された本発明の第3の実施の形態の動作について図面を参照して説明する。
本発明の第3の実施の形態としての情報検索システム3は、本発明の第2の実施の形態と同様に、インデックス生成処理と、検索処理と、パスクエリ生成処理とを実行するが、本発明の第2の実施の形態とは、インデックス生成処理が異なる。
情報検索システム3のインデックス生成処理について図19を用いて説明する。情報検索システム3は、図13に示した本発明の第2の実施の形態としての情報検索システム2のインデックス生成処理に対して、ステップS12の代わりに、完全パスを用いてパスフィールドを生成するステップS42を実行する点が異なる。
ステップS42の例として、図7にあげた知識情報モデルのリソースe1に対するパスフィールドの生成について説明する。パスフィールド生成部301は、リソースe1を起点とする10本のパスを抽出する。そして、パスフィールド生成部301は、各パスを、[b1][hasEmployee]というルートリソースからリソースe1までのパスと、リソースe1からの接尾辞パスとを連結した完全パスとして表し、これらを連結してリソースe1のパスフィールドとする。
情報検索装置31は、ステップS11およびS13〜S15を、本発明の第2の実施の形態におけるインデックス生成処理と同様に実行して、インデックス生成処理を終了する。
次に、本発明の第3の実施の形態の効果について述べる。
本発明の第3の実施の形態としての情報検索システムは、知識情報モデルに対する検索機能を向上させることができる。
その理由は、完全パスを連結したパスフィールドを用いることにより、例えば「売り上げ5億円以上の企業に勤めている社員」といったように、制限リソースから目的リソースへのパスを検索する検索要求に対応できるからである。
(第4の実施の形態)
次に、本発明の第4の実施の形態について図面を参照して詳細に説明する。
まず、本発明の第4の実施の形態としての情報検索システム4の機能ブロック構成を図20を参照して説明する。なお、図20において、本発明の第2の実施の形態と同一の構成には同一の符号を付して本実施の形態における詳細な説明を省略する。
情報検索システム4は、本発明の第2の実施の形態としての情報検索システム2に対して、索引更新部409をさらに有する情報検索装置41を備えている点が異なる。
索引更新部409は、知識情報レポジトリ22から、リソースと、そのリソースに関連するプロパティと、そのプロパティの目的語であるリソースまたはリテラルと、を取得する。そして、索引更新部409は、モデルデータDB207に登録されているサブグラフとの比較を行い、変更、追加または削除されたリソースを差分リソースとして特定する。そして、索引更新部409は、インデックスレポジトリ203およびモデルデータDB207に格納された情報のうち、差分リソースに関連する情報の更新を行う。
以上のように構成された情報検索システム4の動作について図面を参照して説明する。
情報検索システム4のインデックス生成処理と、検索処理と、パスクエリ生成処理とは、本発明の第2の実施の形態としての情報検索システム2と同様であるため、これらの動作の詳細な説明を省略する。
さらに、情報検索システム4は、インデックス更新処理を行う。情報検索システム4のインデックス更新処理について図21を用いて説明する。
まず、索引更新部409が、知識情報レポジトリ22から、リソースと、そのリソースに関連するプロパティと、その目的語のリソースまたはリテラルを取得する。そして、索引更新部409は、取得した情報とモデルデータDB207に既に登録されているサブグラフとを比較して、変更または追加の差分リソースを一時記憶する(ステップS51)。
次に、索引更新部409が、モデルデータDB207に登録されているが、知識情報レポジトリ22に存在しないリソースを特定し、削除の差分リソースとして一時記憶する(ステップS52)。
次に、索引更新部409は、すべての差分リソースおよびそのサブグラフをモデルデータDB207から削除する(ステップS53)。
次に、索引更新部409は、すべての差分リソースに関係する情報を、インデックスレポジトリ203から削除する(ステップS54)。具体的には、索引更新部409は、パスインデックスから、差分リソースに対応するタプルを削除する。また、索引更新部409は、差分リソースに関する情報を含むポスティングリストから、該当する情報を削除する。また、索引更新部409は、リテラルプロパティインデックス群およびメタデータインデックス群からも差分リソースに関連するタプルを削除する。
次に、索引更新部409は、変更または追加の各差分リソースについて、以下の処理を実行する。
ここでは、まず、索引更新部409が、パスフィールド生成部201を用いて、この差分リソースのパスフィールドを生成する(ステップS55)。
次に、索引更新部409は、トークナイズ部212を用いて、知識情報レポジトリ22から得たモデル中のタームに基づいて、ステップS55で生成したパスフィールドをターム単位にトークナイズする(ステップS56)。
次に、索引更新部409は、この差分リソースに関係する情報を、インデックスレポジトリ203に登録する(ステップS57)。具体的には、索引更新部409は、トークナイズされたパスフィールドに基づいて、この差分リソースのポスティングリストを生成し、パスインデックスへの登録を行う。また、索引更新部409は、この差分リソースのパスフィールドに含まれる各タームのポスティングリストに、この差分リソースとこのパスフィールドにおける該タームの位置情報とからなる情報をそれぞれ追加する。また、索引更新部409は、この差分リソースがリテラルプロパティまたは特殊なプロパティを持つリソースであれば、リテラルプロパティインデックス群またはメタデータインデックス群への登録も行う。
次に、索引更新部409は、この差分リソースと、このリソースから所定の深さのサブグラフを、モデルデータDB207へ登録する(ステップS58)。
ステップS55〜S58の処理を変更または追加の差分リソースすべてに実行すると、情報検索システム4は、インデックス更新処理を終了する。
次に、本発明の第4の実施の形態の効果について述べる。
本発明の第4の実施の形態としての情報検索システムは、知識情報から目的リソースをより高速に検索させるためのインデックスレポジトリの更新処理をより効率的に行うことができる。
その理由は、知識情報レポジトリとモデルデータDBとを比較することにより、知識情報モデルの変更箇所を特定することができ、特定した変更箇所のみインデックスレポジトリおよびモデルデータDBを更新するためである。このとき、インデックスレポジトリおよびモデルデータDBの索引語数はモデルの語彙数のオーダーに抑えられているため、変更箇所をインデックスレポジトリおよびモデルデータDBに反映する更新時間を短縮することができるからである。
なお、本発明の第2〜第4の実施の形態としての情報検索システムは、グラフ構造情報としてRDFグラフで表された知識情報モデルから目的リソースを検索するものとして説明しているが、複数のノードおよびノード間を結ぶエッジによって表されるその他のグラフ構造情報から目的ノードを検索する場合にも適用可能である。
また、上述した本発明の各実施の形態において、各フローチャートを参照して説明した情報検索装置の動作を、本発明のコンピュータ・プログラムとして情報検索装置の記憶装置(記憶媒体)に格納しておき、係るコンピュータ・プログラムを当該CPUが読み出して実行するようにしてもよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムのコード或いは記憶媒体によって構成される。また、当該CPUが係るコンピュータ・プログラムを実行することにより、上述の各実施の形態の機能ブロック構成図に示したパスフィールド生成部、索引生成部、索引更新部、トークナイズ部、検索部および検索パス生成部の各処理を実現する。
また、上述した本発明の各実施の形態において、グラフ構造格納装置および知識情報レポジトリは、情報検索装置を構成するコンピュータの記憶装置によってローカルファイルシステムとして構成されていてもよい。
また、上述した本発明の各実施の形態において、クライアント装置は、情報検索装置を構成するコンピュータの記憶装置に格納されたアプリケーションによって同一のコンピュータ上で実現されるものであってもよい。
また、上述した本発明の各実施の形態において、情報検索装置は、クライアント装置から検索要求を取得する代わりに、入出力装置を介して利用者から検索要求を取得してもよい。この場合、情報検索装置は、検索結果も入出力装置を介して利用者に提示してもよい。
また、上述した各実施の形態は、適宜組み合わせて実施されることが可能である。
また、本発明は、上述した各実施の形態に限定されず、様々な態様で実施されることが可能である。
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置であって、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成部と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
を備えた情報検索装置。
(付記2)
前記検索部は、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行う、ことを特徴とする付記1に記載の情報検索装置。
(付記3)
前記パスフィールド生成部は、前記各ノードを起点としてたどることができる各パスを、前記グラフ構造情報におけるルートノードからの前記要素の列で表すことによって前記パスフィールドを生成する、ことを特徴とする付記1または付記2に記載の情報検索装置。
(付記4)
前記グラフ構造情報において変更された要素を表す差分情報を取得し、前記差分情報に基づいて前記パスフィールド生成部および前記索引生成部を制御することによって前記インデックスレポジトリを更新する索引更新部をさらに備えた、ことを特徴とする付記1から付記3のいずれかに記載の情報検索装置。
(付記5)
前記グラフ構造情報から前記各ノードを起点とする所定の深さのサブグラフを抽出し、抽出したサブグラフを格納するサブグラフ格納部と、
前記検索部によって検索された目的ノードを起点とするサブグラフを提示する検索結果提示部と、
をさらに備えた、ことを特徴とする付記1から付記4のいずれかに記載の情報検索装置。
(付記6)
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納するデータ構造であって、
前記各要素と、
前記要素毎にそれぞれ生成され、前記各ノードを起点としてたどることができる前記要素の列であるパスを連結して表した各ノードのパスフィールドのうち、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストと、
を対応付けて格納したデータ構造。
(付記7)
前記ポスティングリストに含まれる前記位置情報は、前記各ノードを起点としてたどることができる各パスを、前記グラフ構造情報におけるルートノードからの前記要素の列で表して連結したパスフィールドにおける位置を表す、ことを特徴とする付記6に記載のデータ構造。
(付記8)
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納したグラフ構造情報格納装置と、
前記グラフ構造情報から検索条件を満たす目的ノードの検索を要求するクライアント装置と、
前記グラフ構造情報から前記目的ノードを検索する情報検索装置と、
を備えた情報検索システムであって、
前記情報検索装置は、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎にそれぞれ生成するパスフィールド生成部と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
を有する情報検索システム。
(付記9)
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置の動作制御のためのコンピュータ・プログラムであって、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成処理と、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成処理と、
前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成処理と、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち、前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索処理と、
をコンピュータに実行させるコンピュータ・プログラム。
(付記10)
グラフ構造情報格納装置が、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納し、
情報検索装置が、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、
抽出したパスを連結したパスフィールドをノード毎にそれぞれ生成し、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、
前記要素と前記ポスティングリストとを対応付けてインデックスレポジトリに格納し、
クライアント装置が、
前記グラフ構造情報のうち検索条件を満たす目的ノードの検索を前記情報検索装置に要求し、
前記情報検索装置が、
前記検索条件を表す検索パスを前記要素の列として生成し、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを前記インデックスレポジトリから検索し、
検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する、
情報検索方法。
(付記11)
複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置が、
前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、
抽出したパスを連結したパスフィールドをノード毎にそれぞれ生成し、
前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、
前記要素と前記ポスティングリストとを対応付けてインデックスレポジトリに格納し、
前記検索条件を表す検索パスを前記要素の列として生成し、
前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを前記インデックスレポジトリから検索し、
検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する、
情報検索方法。
(付記12)
前記情報検索装置の前記検索部は、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行うことを特徴とする付記8に記載の情報検索システム。
(付記13)
前記検索処理において、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行うことを特徴とする付記9に記載のコンピュータ・プログラム。
(付記14)
前記情報検索装置が、
前記目的ノードを検索する際に、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行うことを特徴とする付記10または付記11に記載の情報検索方法。
なお、本発明は、日本国にて2010年5月14日に特許出願された特願2010−111940の特許出願に基づく優先権主張の利益を享受するものであり、当該特許出願に記載された内容は、全て本明細書に含まれるものとする。
本発明は、グラフ構造情報が複雑化しても目的のノードを高速に検索することができる情報検索装置を提供することができ、大規模な知識情報モデルから目的リソースを検索する知識情報検索装置等として好適である。
1、2、3、4 情報検索システム
11、21、31、41 情報検索装置
12 グラフ構造情報格納装置
13 クライアント装置
22 知識情報レポジトリ
101、201、301 パスフィールド生成部
102、202 索引生成部
103、203 インデックスレポジトリ
104、204 検索部
105、205 検索パス生成部
206 入出力部
207 モデルデータDB
212 トークナイズ部
409 索引更新部

Claims (10)

  1. 複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置であって、
    前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成部と、
    前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
    前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
    前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
    を備えた情報検索装置。
  2. 前記検索部は、前記検索パスの一部に未特定箇所がある場合、当該検索パスにおける要素の出現順序および未特定箇所に挿入可能な要素数に基づいて前記目的ノードの検索を行う、
    ことを特徴とする請求項1に記載の情報検索装置。
  3. 前記パスフィールド生成部は、前記各ノードを起点としてたどることができる各パスを、前記グラフ構造情報におけるルートノードからの前記要素の列で表すことによって前記パスフィールドを生成する、
    ことを特徴とする請求項1または請求項2に記載の情報検索装置。
  4. 前記グラフ構造情報において変更された要素を表す差分情報を取得し、前記差分情報に基づいて前記パスフィールド生成部および前記索引生成部を制御することによって前記インデックスレポジトリを更新する索引更新部をさらに備えた、
    ことを特徴とする請求項1から請求項3のいずれかに記載の情報検索装置。
  5. 前記グラフ構造情報から前記各ノードを起点とする所定の深さのサブグラフを抽出し、抽出したサブグラフを格納するサブグラフ格納部と、
    前記検索部によって検索された目的ノードを起点とするサブグラフを提示する検索結果提示部と、
    をさらに備えた、ことを特徴とする請求項1から請求項4のいずれかに記載の情報検索装置。
  6. 複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納するデータ構造であって、
    前記各要素と、
    前記要素毎にそれぞれ生成され、前記各ノードを起点としてたどることができる前記要素の列であるパスを連結して表した各ノードのパスフィールドのうち、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストと、
    を対応付けて格納したデータ構造。
  7. 前記ポスティングリストに含まれる前記位置情報は、前記各ノードを起点としてたどることができる各パスを、前記グラフ構造情報におけるルートノードからの前記要素の列で表して連結したパスフィールドにおける位置を表す、
    ことを特徴とする請求項6に記載のデータ構造。
  8. 複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納したグラフ構造情報格納装置と、
    前記グラフ構造情報から検索条件を満たす目的ノードの検索を要求するクライアント装置と、
    前記グラフ構造情報から前記目的ノードを検索する情報検索装置と、
    を備えた情報検索システムであって、
    前記情報検索装置は、
    前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎にそれぞれ生成するパスフィールド生成部と、
    前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成部と、
    前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成部と、
    前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索部と、
    を有する情報検索システム。
  9. 複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報から検索条件を満たす目的ノードを検索する情報検索装置の動作制御のためのコンピュータ・プログラムであって、
    前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、抽出したパスを連結したパスフィールドを、ノード毎に生成するパスフィールド生成処理と、
    前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、前記要素と前記ポスティングリストとを対応付けたインデックスレポジトリを生成する索引生成処理と、
    前記検索条件を表す検索パスを前記要素の列として生成する検索パス生成処理と、
    前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを、前記インデックスレポジトリから検索し、当該検索されたノードのうち、前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する検索処理と、
    をコンピュータに実行させるコンピュータ・プログラム。
  10. グラフ構造情報格納装置が、複数のノードおよびノード間を結ぶエッジを要素とするグラフ構造情報を格納し、
    情報検索装置が、
    前記グラフ構造情報に含まれる各ノードについて、該ノードを起点としてたどることができる前記要素の列であるパスを抽出し、
    抽出したパスを連結したパスフィールドをノード毎にそれぞれ生成し、
    前記グラフ構造情報を構成する各要素について、該要素が含まれるパスフィールドを有するノードと該要素が該パスフィールド中に出現する位置を表す位置情報とからなる情報のリストであるポスティングリストを生成し、
    前記要素と前記ポスティングリストとを対応付けてインデックスレポジトリに格納し、
    クライアント装置が、
    前記グラフ構造情報のうち検索条件を満たす目的ノードの検索を前記情報検索装置に要求し、
    前記情報検索装置が、
    前記検索条件を表す検索パスを前記要素の列として生成し、
    前記検索パスに含まれる各要素が含まれるパスフィールドを有するノードを前記インデックスレポジトリから検索し、
    検索されたノードのうち前記検索パスにおける要素の出現順序を満たすパスフィールドを有するノードを、前記位置情報に基づいて抽出することにより前記目的ノードを検索する、
    情報検索方法。
JP2011538762A 2010-05-14 2011-05-12 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造 Active JP4947245B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011538762A JP4947245B2 (ja) 2010-05-14 2011-05-12 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2010111940 2010-05-14
JP2010111940 2010-05-14
PCT/JP2011/002641 WO2011142134A1 (ja) 2010-05-14 2011-05-12 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造
JP2011538762A JP4947245B2 (ja) 2010-05-14 2011-05-12 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造

Publications (2)

Publication Number Publication Date
JP4947245B2 JP4947245B2 (ja) 2012-06-06
JPWO2011142134A1 true JPWO2011142134A1 (ja) 2013-07-22

Family

ID=44914194

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011538762A Active JP4947245B2 (ja) 2010-05-14 2011-05-12 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造

Country Status (5)

Country Link
US (1) US9141727B2 (ja)
EP (1) EP2570936A4 (ja)
JP (1) JP4947245B2 (ja)
CN (1) CN102893281A (ja)
WO (1) WO2011142134A1 (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5866922B2 (ja) * 2011-09-22 2016-02-24 富士ゼロックス株式会社 検索装置及びプログラム
US11487707B2 (en) * 2012-04-30 2022-11-01 International Business Machines Corporation Efficient file path indexing for a content repository
US20140067781A1 (en) * 2012-08-31 2014-03-06 Scott W. Wolchok Graph Query Language API Querying and Parsing
US9171063B2 (en) * 2013-03-13 2015-10-27 Facebook, Inc. Short-term hashes
KR102104496B1 (ko) * 2013-09-06 2020-04-24 삼성전자주식회사 데이터 검색 방법 및 장치
RU2679960C2 (ru) 2013-10-10 2019-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система базы данных для нахождения документов
KR101678149B1 (ko) * 2016-02-05 2016-11-25 주식회사 비트나인 데이터베이스의 데이터 탐색방법 및 그 장치와 이를 위한 컴퓨터 프로그램
US10467229B2 (en) 2016-09-30 2019-11-05 Microsoft Technology Licensing, Llc. Query-time analytics on graph queries spanning subgraphs
US10545945B2 (en) 2016-10-28 2020-01-28 Microsoft Technology Licensing, Llc Change monitoring spanning graph queries
US10402403B2 (en) * 2016-12-15 2019-09-03 Microsoft Technology Licensing, Llc Utilization of probabilistic characteristics for reduction of graph database traversals
US10445361B2 (en) * 2016-12-15 2019-10-15 Microsoft Technology Licensing, Llc Caching of subgraphs and integration of cached subgraphs into graph query results
US10242223B2 (en) 2017-02-27 2019-03-26 Microsoft Technology Licensing, Llc Access controlled graph query spanning
US11100406B2 (en) 2017-03-29 2021-08-24 Futurewei Technologies, Inc. Knowledge network platform
CN108520029A (zh) * 2018-03-27 2018-09-11 四川斐讯信息技术有限公司 一种基于图片和定位信息进行搜索的方法、服务器及系统
CN112214645B (zh) * 2019-07-11 2023-09-19 杭州海康威视数字技术股份有限公司 一种存储轨迹数据的方法及装置
CN111506623B (zh) * 2020-04-08 2024-03-22 北京百度网讯科技有限公司 数据扩充方法、装置、设备以及存储介质
KR20210128096A (ko) * 2020-04-16 2021-10-26 세종대학교산학협력단 사물인터넷 플랫폼 간 연동 방법 및 장치
JP7109522B2 (ja) * 2020-11-25 2022-07-29 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム
JP7077387B1 (ja) 2020-11-25 2022-05-30 ヤフー株式会社 情報処理装置、情報処理方法、及び情報処理プログラム

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3492247B2 (ja) * 1999-07-16 2004-02-03 富士通株式会社 Xmlデータ検索システム
JP4039484B2 (ja) * 2002-02-28 2008-01-30 インターナショナル・ビジネス・マシーンズ・コーポレーション XPath評価方法、これを用いたXML文書処理システム及びプログラム
KR100484138B1 (ko) * 2002-05-08 2005-04-18 삼성전자주식회사 관계형 데이터베이스에서 정규 경로식 질의를 처리하는xml 인덱싱 방법과 자료구조
WO2003107222A1 (en) * 2002-06-13 2003-12-24 Cerisent Corporation Parent-child query indexing for xml databases
AUPS300402A0 (en) * 2002-06-17 2002-07-11 Canon Kabushiki Kaisha Indexing and querying structured documents
US7162485B2 (en) * 2002-06-19 2007-01-09 Georg Gottlob Efficient processing of XPath queries
JP2004118543A (ja) * 2002-09-26 2004-04-15 Toshiba Corp 構造化文書検索方法、検索支援方法、検索支援装置および検索支援プログラム
JP3982623B2 (ja) * 2003-03-25 2007-09-26 インターナショナル・ビジネス・マシーンズ・コーポレーション 情報処理装置、データベース検索システム及びプログラム
US7392239B2 (en) * 2003-04-14 2008-06-24 International Business Machines Corporation System and method for querying XML streams
US7877366B2 (en) * 2004-03-12 2011-01-25 Oracle International Corporation Streaming XML data retrieval using XPath
CN100517318C (zh) 2004-04-09 2009-07-22 甲骨文国际公司 用于存取xml数据的索引
US20050257201A1 (en) * 2004-05-17 2005-11-17 International Business Machines Corporation Optimization of XPath expressions for evaluation upon streaming XML data
US9171100B2 (en) * 2004-09-22 2015-10-27 Primo M. Pettovello MTree an XPath multi-axis structure threaded index
JP4547300B2 (ja) * 2005-05-09 2010-09-22 日本電信電話株式会社 共通クエリグラフパターン生成装置、生成方法、生成用プログラム、およびこれらを用いた共通サブグラフ検索装置、検索方法、検索用プログラム
US7685138B2 (en) * 2005-11-08 2010-03-23 International Business Machines Corporation Virtual cursors for XML joins
JP4628258B2 (ja) * 2005-11-15 2011-02-09 日本電信電話株式会社 グラフ検索装置
US8949455B2 (en) * 2005-11-21 2015-02-03 Oracle International Corporation Path-caching mechanism to improve performance of path-related operations in a repository
US8015165B2 (en) 2005-12-14 2011-09-06 Oracle International Corporation Efficient path-based operations while searching across versions in a repository
US7849091B1 (en) * 2006-01-25 2010-12-07 At&T Intellectual Property Ii, L.P. Meta-data indexing for XPath location steps
US8880506B2 (en) * 2009-10-16 2014-11-04 Oracle International Corporation Leveraging structured XML index data for evaluating database queries
JP2008041082A (ja) * 2006-07-12 2008-02-21 Hitachi Ltd 処理装置及びプログラム
US7765215B2 (en) * 2006-08-22 2010-07-27 International Business Machines Corporation System and method for providing a trustworthy inverted index to enable searching of records
JP4374014B2 (ja) * 2006-11-21 2009-12-02 株式会社日立製作所 インデクス生成装置及びそのプログラム
US7496568B2 (en) * 2006-11-30 2009-02-24 International Business Machines Corporation Efficient multifaceted search in information retrieval systems
US8079020B2 (en) * 2007-03-05 2011-12-13 Microsoft Corporation Preferential path profiling
JP2009295013A (ja) * 2008-06-06 2009-12-17 Hitachi Ltd データベース管理方法、データベース管理装置およびプログラム
CN101685444B (zh) 2008-09-27 2012-05-30 国际商业机器公司 用于实现元数据搜索的系统和方法
JP5476815B2 (ja) 2008-10-08 2014-04-23 Jfeスチール株式会社 真空脱ガス装置における複合ランスを用いた加熱・精錬方法
JP4469016B2 (ja) 2009-07-24 2010-05-26 オリンパス株式会社 光学フィルタ及び光学機器
CN101655862A (zh) * 2009-08-11 2010-02-24 华天清 信息对象搜索的方法和装置

Also Published As

Publication number Publication date
EP2570936A1 (en) 2013-03-20
CN102893281A (zh) 2013-01-23
US20130103693A1 (en) 2013-04-25
WO2011142134A1 (ja) 2011-11-17
JP4947245B2 (ja) 2012-06-06
EP2570936A4 (en) 2015-08-19
US9141727B2 (en) 2015-09-22

Similar Documents

Publication Publication Date Title
JP4947245B2 (ja) 情報検索装置、情報検索方法、コンピュータ・プログラムおよびデータ構造
US10659467B1 (en) Distributed storage and distributed processing query statement reconstruction in accordance with a policy
US9197597B2 (en) RDF object type and reification in the database
JP6720641B2 (ja) 多言語データティアのデータ制約
US20170139984A1 (en) Method And System For Semantic-Based Queries Using Word Vector Representation
Eisenberg et al. D2RQ/update: updating relational data via virtual RDF
US8620941B2 (en) Apparatus and method of searching and visualizing instance path
US20090187581A1 (en) Consolidation and association of structured and unstructured data on a computer file system
JP5927886B2 (ja) クエリシステム及びコンピュータプログラム
US9053207B2 (en) Adaptive query expression builder for an on-demand data service
JP5844824B2 (ja) Sparqlクエリ最適化方法
Menendez et al. Novel node importance measures to improve keyword search over rdf graphs
US8965910B2 (en) Apparatus and method of searching for instance path based on ontology schema
JP3671765B2 (ja) 異種情報源問い合わせ変換方法及び装置及び異種情報源問い合わせ変換プログラムを格納した記憶媒体
Groppe et al. Using an index of precomputed joins in order to speed up SPARQL processing.
US10769209B1 (en) Apparatus and method for template driven data extraction in a semi-structured document database
JP5488792B2 (ja) データベース操作装置、データベース操作方法、及びプログラム
Hauswirth et al. Linked data management
Unbehauen et al. SPARQL Update queries over R2RML mapped data sources
Uzunbayir Relational database and nosql inspections using mongodb and neo4j on a big data application
JP4703705B2 (ja) 構造化データ検索プログラム及び構造化データ検索装置
Sima et al. Keyword query approach over rdf data based on tree template
KR20170088466A (ko) 그래프 데이터에 대한 부분 매칭 시스템
Bilimoria et al. Supporting Linked Databases in Keyword Query Searching Using Density Inverted Indexes
Amarintrarak et al. SAXM: Semi-automatic XML schema mapping

Legal Events

Date Code Title Description
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: 20120207

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

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

Free format text: PAYMENT UNTIL: 20150316

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4947245

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150