以下に、図面を参照して、本発明にかかる検索方法、検索プログラム、および情報処理装置の実施の形態を詳細に説明する。
(実施の形態にかかる検索方法の一実施例)
図1は、実施の形態にかかる検索方法の一実施例を示す説明図である。情報処理装置100は、化学分野に関するナレッジグラフから、指定された化合物名に対応するノードを検索するためのコンピュータである。
ナレッジグラフは、化合物に関する種々の情報を示すノードを含む。ナレッジグラフは、例えば、化合物名を示すノード、化合物の分子式や分子量を示すノード、または、化合物の機能や用途を示すノードなどを含む。化合物は、2種類以上の元素からなる化学物質である。化合物は、例えば、有機化合物と無機化合物とである。
ここで、ナレッジグラフは、例えば、化学分野に関する情報検索、情報解析、または、読解支援などに利用される。例えば、人が、化学分野の特許文献や技術論文などの技術文書を読解する際に、ナレッジグラフを利用し、技術文書に記載された化合物名を検索可能にし、化合物の分子式や分子量、または、化合物の機能や用途などを検索可能にすることが考えられる。
技術文書には、構造が一意に特定可能な抽象度で表現された具体的な化合物名ではなく、構造が一意に特定されない抽象度で表現された抽象的な化合物名が記載されていることがある。具体的な化合物名は、例えば、置換基の結合位置が明示された化合物名である。一方で、抽象的な化合物名は、例えば、置換基の結合位置が特定されない抽象度で表現された化合物名である。抽象的な化合物名は、例えば、置換基の結合位置を示す文字列が省略された化合物名である。
例えば、化合物名「1-エトキシ-2-プロパノール」、および、化合物名「2-エトキシ-2-プロパノール」などが、エトキシ基とヒドロキシ基との結合位置が明示された具体的な化合物名である。一方で、化合物名「1-エトキシプロパノール」、および、化合物名「2-エトキシプロパノール」などが、ヒドロキシ基の結合位置が特定されない抽象度で表現された抽象的な化合物名である。
したがって、ナレッジグラフが、具体的な化合物名を示すノードの他、抽象的な化合物名を示すノードを含むようにすることが、ナレッジグラフを、化学分野に関する情報検索、情報解析、または、読解支援などに利用する観点から好ましいと考えられる。
これに対し、既存の辞書に登録された具体的な化合物名から、1つの数字を所定の記号で区切って1つの置換基の結合位置を示した文字列を除去して特定した、抽象的な化合物名を示すノードを含むナレッジグラフを生成する第1の手法が考えられる。既存の辞書は、例えば、ChEBI(Chemical Entities of Biological Interest)、および、日本化学物質辞書などである。所定の記号は、例えば、ハイフン、カンマ、括弧、コーテーションなどである。
上記第1の手法では、例えば、具体的な化合物名から、1つの置換基の結合位置を示した文字列のそれぞれを除去し、抽象的な化合物名を特定することが考えられる。上記第1の手法では、例えば、具体的な化合物名「1-エトキシ-2-プロパノール」から、ヒドロキシ基の結合位置を示した文字列「-2-」を除去し、抽象的な化合物名「1-エトキシプロパノール」を特定することが考えられる。
しかしながら、上記第1の手法では、具体的な化合物名に、1つの置換基の結合位置を示した文字列が多く含まれるほど、抽象的な化合物名が多く特定されることになり、ナレッジグラフに含まれるノードの数の増大化を招く。そして、ナレッジグラフに含まれるノードの数が増大するほど、特定の化合物名に対応するノードを発見する際にかかる所要時間の増大化を招き、特定の化合物名に対応するノードを発見することが難しくなる。
具体的な化合物名は、「(2R)-2α,3,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」がある。この具体的な化合物名は、1つの置換基の結合位置を示した文字列を16個含むため、この具体的な化合物名から、1つの置換基の結合位置を示した文字列のそれぞれを除去するパターンは、65536通り存在する。結果として、この具体的な化合物名から、65536個の抽象的な化合物名が特定されることになり、ナレッジグラフに含まれるノードの数の増大化を招く。
このため、具体的な化合物名から、1つの置換基の結合位置を示した文字列ではなく、1以上の数字を所定の記号で区切って1以上の置換基の結合位置を纏めて示した文字列を除去して特定した、抽象的な化合物名を示すノードを生成する第2の手法が考えられる。そして、第2の手法は、抽象的な化合物名を示すノードを含むナレッジグラフを生成する。これによれば、ナレッジグラフに含まれるノードの数の低減化を図ることができる。
具体的な化合物名は、「(2R)-2α,3,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」がある。この具体的な化合物名は、1以上の置換基の結合位置を纏めて示した文字列を8個含むため、この具体的な化合物名から、1以上の置換基の結合位置を纏めて示した文字列のそれぞれを除去するパターンは、256通り存在する。結果として、この具体的な化合物名から、256個の抽象的な化合物名が特定されることになる。
上記第2の手法でも、特定の化合物名に対応するノードを発見することが難しくなることがある。例えば、上記第2の手法では、具体的な化合物名から、1つの置換基の結合位置を示した文字列を除去した抽象的な化合物名を示すノードが、ナレッジグラフに含まれない場合がある。このため、具体的な化合物名から、1つの置換基の結合位置を示した文字列を除去した抽象的な化合物名を直接的に示すノードを発見することができなくなる。結果として、具体的な化合物名から、1つの置換基の結合位置を示した文字列を除去した抽象的な化合物名に対応する化合物の分子式や分子量、または、化合物の機能や用途などを検索することもできなくなる。
そこで、本実施の形態では、指定された化合物名に対応するノードを発見しやすくすることができる検索方法について説明する。以下の説明では、構造が一意に特定されない抽象度で表現された、抽象的な化合物名を、「抽象化合物名」と表記する場合がある。
(1-1)情報処理装置100は、化合物名を示すノード同士をリンク付けしたグラフGを記憶する。グラフGは、例えば、ナレッジグラフである。図1の例では、グラフGは、ノードN1とノードN2とを含む。ノードN1は、抽象化合物名n1を示す。抽象化合物名n1は、「(2R)-2α-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」である。
また、ノードN2は、化合物名n2を示す。化合物名n2は、「(2R)-2α,3,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」である。抽象化合物名n1は、化合物名n2から、3つの数字を所定の記号で区切って3つの置換基の結合位置を示した文字列「,3,7,8」を除去した化合物名に対応する。
(1-2)情報処理装置100は、第1の化合物名nqに関する検索クエリQを取得する。第1の化合物名nqは、「(2R)-2α,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」である。第1の化合物名nqは、化合物名n2から、1つの数字を所定の記号で区切って1つの置換基の結合位置を示した文字列「,3」を除去した化合物名に対応する。
(1-3)情報処理装置100は、取得した検索クエリQに基づいて、第1の化合物名nqに含まれる置換基の結合位置を示す文字列を特定する。図1の例では、情報処理装置100は、1以上の数字を所定の記号で区切って1以上の置換基の結合位置を示した文字列「,7,8」を特定する。
(1-4)情報処理装置100は、第1の化合物名nqから、特定した文字列を除去した抽象化合物名を生成する。図1の例では、情報処理装置100は、抽象化合物名「(2R)-2α-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」を生成する。
(1-5)情報処理装置100は、グラフG内から、生成した抽象化合物名を示すノードを検索する。図1の例では、情報処理装置100は、検索した結果、グラフG内から、生成した抽象化合物名を示すノードN1を発見する。
(1-6)情報処理装置100は、抽象化合物名を示すノードを発見した場合に、グラフG内で、発見したノードを起点に、特定した文字列に対応する化合物名を示すノードへのリンクを辿って、第1の化合物名nqに対応するノードを検索する。図1の例では、情報処理装置100は、グラフG内で、発見したノードN1を起点に、特定した文字列「,7,8」を含む化合物名を示すノードN2へのリンクを辿って、第1の化合物名nqに対応するノードを検索する。
情報処理装置100は、具体的には、グラフG内で、発見したノードN1を起点に、特定した文字列「,7,8」を、第1の化合物名nqと同様の位置に含む化合物名を示すノードN2へのリンクを辿って、第1の化合物名nqに対応するノードを検索する。ここでは、情報処理装置100は、第1の化合物名nqに対応するノードとして、ノードN2を発見する。
これにより、情報処理装置100は、第1の化合物名nqを直接的に示すノードが存在しなくても、第1の化合物名nqに対応するノードを発見することができる。このため、情報処理装置100は、グラフGを利用し、情報検索、情報解析、または、読解支援などを実施可能にすることができる。情報処理装置100は、例えば、人が、化学分野の特許文献や技術論文などの技術文書を読解する際に、技術文書に記載された抽象化合物名から、化合物の分子式や分子量、または、化合物の機能や用途などを検索可能にすることができる。
(サービス提供システム200の一例)
次に、図2を用いて、図1に示した情報処理装置100を適用し、ナレッジグラフを利用して、情報検索、情報解析、または、読解支援などのサービスを提供するサービス提供システム200の一例について説明する。
図2は、サービス提供システム200の一例を示す説明図である。図2において、サービス提供システム200は、情報処理装置100と、1以上のクライアント装置201とを含む。
サービス提供システム200において、情報処理装置100とクライアント装置201とは、有線または無線のネットワーク210を介して接続される。ネットワーク210は、例えば、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどである。
情報処理装置100は、ナレッジグラフを生成し、図4に後述するグラフ情報テーブル400を用いて記憶するコンピュータである。グラフ情報テーブル400は、例えば、RDF(Resource Description Framework)の形式で、ナレッジグラフを記憶する。情報処理装置100は、例えば、図5に後述する辞書情報を参照し、化合物名を示すノードを生成する。また、情報処理装置100は、例えば、化合物名から抽象化合物名を特定し、抽象化合物名を示すノードを生成する。
情報処理装置100は、生成した化合物名を示すノード、および、抽象化合物名を示すノードについて、ノード間をリンク付けすることにより、ナレッジグラフを生成する。そして、情報処理装置100は、ナレッジグラフを利用し、化合物名を示すノード、または、抽象化合物名を示すノードを検索することにより、情報検索、情報解析、または読解支援などのサービスを、クライアント装置201を介してサービス利用者に提供する。情報処理装置100は、例えば、サーバやPC(Personal Computer)などである。
クライアント装置201は、サービス利用者が用いるコンピュータである。クライアント装置201は、例えば、サービス利用者の操作入力に基づいて、情報処理装置100と通信し、化合物に関する情報を表示する。クライアント装置201は、例えば、PC、タブレット端末、または、スマートフォンなどである。
具体的には、サービス利用者が、技術文書に記載された所定の抽象化合物名を検索しようとする場合が考えられる。この場合、情報処理装置100は、所定の抽象化合物名を検索し、所定の抽象化合物名に関する情報を検索し、所定の抽象化合物名に関する情報を、クライアント装置201を介して、サービス利用者に提供することができる。抽象化合物名に関する情報は、抽象化合物名が包含する化合物名、抽象化合物名が包含する化合物名に対応する化合物の分子式や分子量、または、化合物の機能や用途などである。
具体的には、情報処理装置100が、自動で、技術文書に記載された所定の抽象化合物名に関する情報を解析し、所定の抽象化合物名に対応付けて記憶する場合が考えられる。この場合、情報処理装置100は、所定の抽象化合物名に関する情報を、精度よく特定して記憶しておくことができる。
ここでは、情報処理装置100が、クライアント装置201とは別の装置である場合について説明したが、これに限らない。例えば、情報処理装置100が、クライアント装置201と一体である場合があってもよい。
ここでは、情報処理装置100が、ナレッジグラフを生成し、サービスを提供する場合について説明したが、これに限らない。例えば、情報処理装置100とは異なる装置が、ナレッジグラフを生成し、情報処理装置100が、ナレッジグラフを取得して、サービスを提供する場合があってもよい。
(情報処理装置100のハードウェア構成例)
次に、図3を用いて、情報処理装置100のハードウェア構成例について説明する。
図3は、情報処理装置100のハードウェア構成例を示すブロック図である。図3において、情報処理装置100は、CPU(Central Processing Unit)301と、メモリ302と、ネットワークI/F(Interface)303と、記録媒体I/F304と、記録媒体305とを有する。また、各構成部は、バス300によってそれぞれ接続される。
ここで、CPU301は、情報処理装置100の全体の制御を司る。メモリ302は、例えば、ROM(Read Only Memory)、RAM(Random Access Memory)およびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU301のワークエリアとして使用される。メモリ302に記憶されるプログラムは、CPU301にロードされることで、コーディングされている処理をCPU301に実行させる。
ネットワークI/F303は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F303は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F303は、例えば、モデムやLANアダプタなどである。
記録媒体I/F304は、CPU301の制御に従って記録媒体305に対するデータのリード/ライトを制御する。記録媒体I/F304は、例えば、ディスクドライブ、SSD(Solid State Drive)、USB(Universal Serial Bus)ポートなどである。記録媒体305は、記録媒体I/F304の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体305は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体305は、情報処理装置100から着脱可能であってもよい。
情報処理装置100は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を複数有していてもよい。また、情報処理装置100は、記録媒体I/F304や記録媒体305を有していなくてもよい。
(グラフ情報テーブル400のデータ構造)
次に、図4を用いて、グラフ情報テーブル400のデータ構造の一例について説明する。グラフ情報テーブル400は、例えば、図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図4は、グラフ情報テーブル400のデータ構造の一例を示す説明図である。図4に示すように、グラフ情報テーブル400は、主語と、述語と、目的語とのフィールドを有する。グラフ情報テーブル400は、各フィールドに情報が設定されることにより、グラフ情報をレコードとして記憶する。
主語のフィールドには、ナレッジグラフに含まれるノードを識別するラベルが設定される。ラベルは、化学分野に関する単語である。ラベルは、例えば、具体的な化合物名、または、抽象化合物名である。ラベルは、例えば、化合物の分子式や分子量、または、化合物の機能や用途などであってもよい。目的語のフィールドには、ナレッジグラフに含まれるノードを識別するラベルが設定される。
主語および目的語のフィールドには、URI(Uniform Resource Identifier)が設定されてもよい。述語のフィールドには、ノード間の関係性を示す述語が設定される。述語は、例えば、主語のフィールドに設定されたURIと、目的語のフィールドに設定されたURIとの関係性を示す。述語は、例えば、「label」、「is-a」や「same-as」などである。
「label」は、主語のフィールドのURIが、目的語のフィールドの化合物名に付与された表記であることを示す。「is-a」は、主語のフィールドのURIが、目的語のフィールドのURIの下位に包含されることを示す。「is-a」は、例えば、具体的な化合物名に付与されたURIが、抽象化合物名に付与されたURIの下位に包含されることを示す。「same-as」は、URI間に同義関係が成立することを示す。
(辞書テーブル500のデータ構造)
次に、図5を用いて、辞書テーブル500のデータ構造の一例について説明する。辞書テーブル500は、例えば、図3に示した情報処理装置100のメモリ302や記録媒体305などの記憶領域により実現される。
図5は、辞書テーブル500のデータ構造の一例を示す説明図である。図5に示すように、辞書テーブル500は、化合物名と、URIとのフィールドを有する。辞書テーブル500は、各フィールドに情報が設定されることにより、辞書情報をレコードとして記憶する。
化合物名のフィールドには、化合物名が設定される。URIのフィールドには、化合物名に予め付与されたURIが設定される。情報処理装置100は、辞書テーブル500ではなく、既存のナレッジグラフを記憶してもよい。
(クライアント装置201のハードウェア構成例)
次に、図6を用いて、図2に示したサービス提供システム200に含まれるクライアント装置201のハードウェア構成例について説明する。
図6は、クライアント装置201のハードウェア構成例を示すブロック図である。図6において、クライアント装置201は、CPU601と、メモリ602と、ネットワークI/F603と、記録媒体I/F604と、記録媒体605と、ディスプレイ606と、入力装置607とを有する。また、各構成部は、バス600によってそれぞれ接続される。
ここで、CPU601は、クライアント装置201の全体の制御を司る。メモリ602は、例えば、ROM、RAMおよびフラッシュROMなどを有する。具体的には、例えば、フラッシュROMやROMが各種プログラムを記憶し、RAMがCPU601のワークエリアとして使用される。メモリ602に記憶されるプログラムは、CPU601にロードされることで、コーディングされている処理をCPU601に実行させる。
ネットワークI/F603は、通信回線を通じてネットワーク210に接続され、ネットワーク210を介して他のコンピュータに接続される。そして、ネットワークI/F603は、ネットワーク210と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークI/F603は、例えば、モデムやLANアダプタなどである。
記録媒体I/F604は、CPU601の制御に従って記録媒体605に対するデータのリード/ライトを制御する。記録媒体I/F604は、例えば、ディスクドライブ、SSD、USBポートなどである。記録媒体605は、記録媒体I/F604の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体605は、例えば、ディスク、半導体メモリ、USBメモリなどである。記録媒体605は、クライアント装置201から着脱可能であってもよい。
ディスプレイ606は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ606は、例えば、CRT(Cathode Ray Tube)、液晶ディスプレイ、有機EL(Electroluminescence)ディスプレイなどである。入力装置607は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置607は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
クライアント装置201は、上述した構成部の他、例えば、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、クライアント装置201は、記録媒体I/F604や記録媒体605を複数有していてもよい。また、クライアント装置201は、記録媒体I/F604や記録媒体605を有していなくてもよい。
(情報処理装置100の機能的構成例)
次に、図7を用いて、情報処理装置100の機能的構成例について説明する。
図7は、情報処理装置100の機能的構成例を示すブロック図である。情報処理装置100は、記憶部700と、取得部701と、第1の生成部702と、第2の生成部703と、第1の検索部704と、第2の検索部705と、出力部706とを含む。
記憶部700は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域によって実現される。以下では、記憶部700が、情報処理装置100に含まれる場合について説明するが、これに限らない。例えば、記憶部700が、情報処理装置100とは異なる装置に含まれ、記憶部700の記憶内容が情報処理装置100から参照可能である場合があってもよい。
取得部701~出力部706は、制御部の一例として機能する。取得部701~出力部706は、具体的には、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶されたプログラムをCPU301に実行させることにより、または、ネットワークI/F303により、その機能を実現する。各機能部の処理結果は、例えば、図3に示したメモリ302や記録媒体305などの記憶領域に記憶される。
記憶部700は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部700は、ナレッジグラフを記憶可能である。記憶部700は、例えば、図4に示したグラフ情報テーブル400を用いて、ナレッジグラフを記憶する。記憶部700は、具体的には、図4に示したグラフ情報テーブル400を用いて、ナレッジグラフに含まれるノードに付与されたラベルと、ラベル間の関係性とを記憶する。
また、記憶部700は、例えば、化合物名を示す辞書を記憶してもよい。記憶部700は、具体的には、図5に示した辞書テーブル500を記憶する。また、記憶部700は、例えば、文章集合を記憶してもよい。文章集合は、例えば、コーパスである。
取得部701は、各機能部の処理に用いられる各種情報を取得する。取得部701は、取得した各種情報を、記憶部700に記憶し、または、各機能部に出力する。また、取得部701は、記憶部700に記憶しておいた各種情報を、各機能部に出力してもよい。取得部701は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部701は、例えば、情報処理装置100とは異なる装置から、各種情報を受信してもよい。
取得部701は、例えば、辞書および文章集合を取得する。取得部701は、より具体的には、辞書テーブル500と、コーパスとを取得する。これにより、取得部701は、化合物名を示すノードを自動生成するための指標となる情報を取得し、各機能部に提供することができる。取得部701は、例えば、化合物名を示すノードを生成可能に、第1の生成部702に辞書および文章集合を提供することができる。
また、取得部701は、例えば、第1の生成部702で化合物名を示すノードを生成しない場合には、既存のナレッジグラフから、化合物名を示すノードを取得してもよい。これにより、取得部701は、第1の生成部702で化合物名を示すノードを生成しなくても、第2の生成部703で抽象化合物名を特定可能に、第2の生成部703に化合物名を示すノードを提供することができる。
また、取得部701は、第1の化合物名に関する検索クエリを取得する。第1の化合物名は、具体的な化合物名、または、抽象化合物名である。これにより、取得部701は、第1の検索部704および第2の検索部705で、検索対象とする第1の化合物名を特定可能にすることができ、第1の検索部704および第2の検索部705に動作を開始させることができる。
第1の生成部702は、文章集合から、化合物名としての条件を満たす複数の文字列を抽出する。第1の生成部702は、例えば、コーパスから、カタカナ、アルファベット、数字、記号、および、一部の漢字などの特定の文字が連続する文字列を、化合物名の候補として抽出する。第1の生成部702は、具体的には、文字列「5-(3,4-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」などを、化合物名の候補として抽出する。化合物名の候補として、複数の文字列を抽出する一例については、図10を用いて後述する。これにより、第1の生成部702は、化合物名の候補を抽出し、化合物名を示すノードを生成する指標を取得することができる。
第1の生成部702は、化合物名を記憶する辞書情報を参照して、抽出した複数の文字列のうち、化合物名であると判定した文字列を示すノードを生成し、生成したノードを含むナレッジグラフを生成する。第1の生成部702は、例えば、抽出した化合物名の候補のうち、辞書テーブル500に登録された化合物名と一致する候補を化合物名と判定し、辞書テーブル500に登録されたURIを付与する。そして、第1の生成部702は、化合物名に付与したURIを、グラフ情報テーブル400を用いて記憶し、化合物名を示すノードを含むナレッジグラフを生成する。第1の生成部702は、具体的には、化合物名の候補「5-(3,4-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を化合物名と判定し、URIを付与する。
これにより、第1の生成部702は、ナレッジグラフに含める化合物名を示すノードを生成することができ、ナレッジグラフを生成することができる。また、第1の生成部702は、例えば、コーパスに基づき化合物名を示すノードを生成するため、化合物名を示すノードの数の膨大化を抑制することができる。第1の生成部702は、具体的には、サービス利用者が技術文書を閲覧する際に技術文書に出現しやすいと判断される化合物名を示すノードであり、サービスに利用する観点からナレッジグラフに含むことが好ましい化合物名を示すノードを生成することができる。
ここでは、第1の生成部702が、コーパスおよび辞書情報を参照して、ナレッジグラフを生成する場合について説明したが、これに限らない。例えば、第1の生成部702が、取得部701が取得した1以上のノードを含むナレッジグラフを生成する場合があってもよい。
第2の生成部703は、生成したナレッジグラフ内のいずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名を示す新たなノードを生成し、いずれかのノードの上位にリンク付けして、ナレッジグラフに追加する。
第2の生成部703は、例えば、生成したナレッジグラフ内のいずれかのノードを選択する。次に、第2の生成部703は、選択したいずれかのノードが示す化合物名から、置換基の結合位置を示す1以上の数字と所定の記号とを組み合わせた文字列を除去した抽象化合物名を示す新たなノードを生成する。除去する文字列は、具体的には、1以上の数字を所定の記号で区切って、1以上の数字のそれぞれにより1以上の置換基のそれぞれの結合位置を示した文字列である。そして、第2の生成部703は、生成した新たなノードを、選択したいずれかのノードの上位にリンク付けして、ナレッジグラフに追加する。
第2の生成部703は、具体的には、生成したナレッジグラフ内の、化合物名「5-(3,4-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を示すノードを選択する。次に、第2の生成部703は、選択したノードが示す化合物名「5-(3,4-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」から、1以上の数字を所定の記号で区切った文字列「4,5」を除去した抽象化合物名「5-(3,4-ジヒドロキシベンジル)-ジヒドロフラン-2(3H)-オン」を特定する。そして、第2の生成部703は、特定した抽象化合物名「5-(3,4-ジヒドロキシベンジル)-ジヒドロフラン-2(3H)-オン」を示す新たなノードを生成し、選択したノードの上位にリンク付けして、ナレッジグラフに追加する。
第2の生成部703は、より具体的には、化合物名「5-(3,4-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を示すノードに付与されたURIに、「is-a」の関係性で、抽象化合物名「5-(3,4-ジヒドロキシベンジル)-ジヒドロフラン-2(3H)-オン」に付与されたURIをリンク付けする。そして、第2の生成部703は、リンク付けした結果を、グラフ情報テーブル400を用いて記憶する。
また、第2の生成部703は、具体的には、選択したノードが示す化合物名「5-(3,4-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」から、1以上の数字を所定の記号で区切った文字列「3,4」を除去した抽象化合物名「5-(ジヒドロキシベンジル)-ジヒドロフラン-2(3H)-オン」を特定してもよい。そして、第2の生成部703は、特定した抽象化合物名「5-(ジヒドロキシベンジル)-ジヒドロフラン-2(3H)-オン」を示す新たなノードを生成し、選択したノードの上位にリンク付けして、ナレッジグラフに追加する。抽象化合物名を特定する一例については、図11および図12を用いて後述する。これにより、第2の生成部703は、抽象化合物名を特定し、抽象化合物名を示すノードを生成し、ナレッジグラフに追加することができる。
第2の生成部703は、例えば、ナレッジグラフに追加した新たなノードを選択し、再帰的に、抽象化合物名を特定し、特定した抽象化合物名を示す新たなノードを生成してもよい。第2の生成部703は、具体的には、ナレッジグラフ内の、抽象化合物名「5-(3,4-ジヒドロキシベンジル)-ジヒドロフラン-2(3H)-オン」を示すノードを選択する。次に、第2の生成部703は、選択したノードが示す抽象化合物名「5-(3,4-ジヒドロキシベンジル)-ジヒドロフラン-2(3H)-オン」から、1以上の数字を所定の記号で区切った文字列「3,4」を除去した抽象化合物名「5-(ジヒドロキシベンジル)-ジヒドロフラン-2(3H)-オン」を特定する。そして、第2の生成部703は、特定した抽象化合物名「5-(ジヒドロキシベンジル)-ジヒドロフラン-2(3H)-オン」を示す新たなノードを生成し、選択したノードの上位にリンク付けして、ナレッジグラフに追加する。これにより、第2の生成部703は、抽象化合物名を再帰的に特定し、抽象化合物名を示すノードを生成し、さらにナレッジグラフに追加することができる。
第2の生成部703は、生成したナレッジグラフ内に、置換基の結合位置を示す文字列を除去すると、特定した抽象化合物名と同じ抽象化合物名になる化合物名を示すノードが、所定の数以上存在するか否かを判定してもよい。所定の数は、例えば、2である。また、第2の生成部703は、置換基の結合位置を示す文字列を除去すると、特定した抽象化合物名との間で、対応する構造情報に同義関係が成立する抽象化合物名を示すノードが、所定の数以上存在するか否かを判定してもよい。構造情報は、例えば、示性式である。構造情報は、構造を表す表記法、例えば、SMILES、InChIなどに基づく情報であってもよい。
そして、第2の生成部703は、所定の数以上存在する場合に、特定した抽象化合物名を示す新たなノードを生成する。一方で、第2の生成部703は、所定の数以上存在しない場合には、特定した抽象化合物名を示す新たなノードを生成しなくてよい。これにより、第2の生成部703は、抽象化合物名を示すノードの数の膨大化を抑制することができる。ここで、例えば、抽象化合物名の下位に包含される化合物名が1つである場合、第2の生成部703が、抽象化合物名を示すノードを生成しても、サービスに活用されにくいことが考えられる。このため、第2の生成部703は、サービスに活用されにくい抽象化合物名を示すノードを生成せず、ナレッジグラフのサイズの増大化を抑制し、サービスを効率よく提供可能にすることができる。
第2の生成部703は、文章集合に、いずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名が閾値以上出現する場合に、抽象化合物名を示す新たなノードを生成してもよい。閾値は、例えば、1である。これにより、第2の生成部703は、抽象化合物名を示すノードの数の膨大化を抑制することができる。第2の生成部703は、例えば、サービス利用者が技術文書を閲覧する際に技術文書に出現しやすいと判断される抽象化合物名を示すノードを生成しやすくすることができる。また、第2の生成部703は、例えば、サービスに利用する観点からナレッジグラフに含むことが好ましい抽象化合物名を示すノードを生成しやすくすることができる。
第2の生成部703は、同義関係が成立すると判定した抽象化合物名を示すノード同士をリンク付けしてもよい。第2の生成部703は、例えば、同義関係が成立すると判定した抽象化合物名に付与されたURI同士を、「same-as」の関係性でリンク付けし、グラフ情報テーブル400を用いて記憶する。これにより、第2の生成部703は、ナレッジグラフ上でノード間を適切にリンク付けすることができる。
第1の検索部704は、取得した検索クエリに基づいて、第1の化合物名に含まれる置換基の結合位置を示す文字列を特定する。第1の検索部704は、例えば、検索クエリが示す化合物名から、置換基の結合位置を示す1以上の数字と所定の記号とを組み合わせた文字列を除去した抽象化合物名を示す新たなノードを生成する。除去する文字列は、具体的には、1以上の数字を所定の記号で区切って、1以上の数字のそれぞれにより1以上の置換基のそれぞれの結合位置を示した文字列である。第1の検索部704は、具体的には、検索クエリが示す第1の化合物名「5-(3-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」に含まれる文字列「3-」を特定する。
第1の検索部704は、第1の化合物名から、特定した文字列を除去した抽象化合物名を生成する。第1の検索部704は、具体的には、検索クエリが示す第1の化合物名「5-(3-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」から、特定した文字列「3-」を除去した抽象化合物名「5-(ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を生成する。
第1の検索部704は、ナレッジグラフ内から、生成した抽象化合物名を示すノードを検索する。第1の検索部704は、具体的には、ナレッジグラフ内から、生成した抽象化合物名「5-(ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を示すノードを検索する。これにより、第1の検索部704は、ナレッジグラフ内に、取得した検索クエリが示す第1の化合物名を直接示すノードが存在しなくても、取得した検索クエリが示す第1の化合物名を包含する抽象化合物名を示すノードを発見することができる。
また、第1の検索部704は、ナレッジグラフ内から、取得した検索クエリが示す第1の化合物名を直接示すノードを検索してもよい。これにより、第1の検索部704は、ナレッジグラフ内に、取得した検索クエリが示す第1の化合物名を直接示すノードが存在すれば、取得した検索クエリが示す第1の化合物名を直接示すノードを発見することができる。
また、第1の検索部704は、抽象化合物名を示すノードを発見しない場合に、さらに、特定済みの文字列とは異なる、第1の化合物名に含まれる置換基の結合位置を示す文字列を特定してもよい。そして、第1の検索部704は、第1の化合物名から、特定した文字列をすべて除去した抽象化合物名を生成し、ナレッジグラフ内から、生成した抽象化合物名を示すノードを検索する。
第1の検索部704は、具体的には、抽象化合物名「5-(ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を示すノードを発見しない場合に、第1の化合物名「5-(3-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」に含まれる文字列「5-」を特定する。次に、第1の検索部704は、第1の化合物名「5-(3-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」から、特定した文字列「3-」および「5-」を除去した抽象化合物名「(ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を生成する。
そして、第1の検索部704は、ナレッジグラフ内から、生成した抽象化合物名「(ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を示すノードを検索する。これにより、第1の検索部704は、ナレッジグラフ内に、前回生成した抽象化合物名を示すノードが存在しなくても、さらに抽象度を高めた別の抽象化合物名を生成し、第1の化合物名を包含する抽象化合物名を示すノードを発見することができる。
第2の検索部705は、第1の検索部704が抽象化合物名を示すノードを発見した場合に、ナレッジグラフ内で、発見したノードを起点に、特定した文字列に対応する化合物名を示すノードへのリンクを辿って、第1の化合物名に対応するノードを検索する。特定した文字列に対応する化合物名は、特定した文字列を、第1の化合物名と同様の位置に含む化合物名である。第2の検索部705は、例えば、ナレッジグラフ内で、発見したノードを起点に、特定した文字列を、第1の化合物名と同様の位置に含む化合物名を示すノードへのリンクを辿って、第1の化合物名に対応するノードを検索する。
ここで、第1の検索部704が、抽象化合物名「5-(ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を示すノードを発見した場合を一例とする。第2の検索部705は、具体的には、発見した抽象化合物名「5-(ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を示すノードを起点に、文字列「3-」を含む化合物名「5-(3,4-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」へのリンクを辿って、第1の化合物名に対応するノードを検索する。これにより、第2の検索部705は、ナレッジグラフ内に、第1の化合物名を直接示すノードが存在しなくても、第1の化合物名に対応する抽象化合物名を示すノードを発見することができる。第2の検索部705は、例えば、第1の化合物名を包含する抽象化合物名のうち、最も下位に存在する抽象化合物名を示すノードを発見することができる。
出力部706は、いずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークI/F303による外部装置への送信、または、メモリ302や記録媒体305などの記憶領域への記憶である。これにより、出力部706は、各機能部の処理結果を利用者に通知可能にすることができる。
出力部706は、例えば、第1の生成部702が生成し、第2の生成部703がノードを追加したナレッジグラフを出力する。出力部706は、具体的には、図4に示したグラフ情報テーブル400を出力する。これにより、出力部706は、情報検索、情報解析、または、読解支援などのサービスに、ナレッジグラフを利用可能にすることができる。また、出力部706は、例えば、第1の生成部702が生成し、第2の生成部703がノードを追加したナレッジグラフを、クライアント装置201に表示させてもよい。これにより、出力部706は、ナレッジグラフをサービス利用者が閲覧可能にすることができる。
出力部706は、例えば、第2の検索部705が発見したノードが示す抽象化合物名、第2の検索部705が発見したノードの下位に存在するノードが示す化合物の分子式や分子量、または、化合物の機能や用途などを出力する。出力部706は、具体的には、第2の検索部705が発見したノードが示す抽象化合物名、第2の検索部705が発見したノードの下位に存在するノードが示す化合物の分子式や分子量、または、化合物の機能や用途などを、クライアント装置201に表示させる。これにより、出力部706は、抽象化合物名、化合物の分子式や分子量、または、化合物の機能や用途などを、サービス利用者が閲覧可能にすることができ、情報検索、情報解析、または、読解支援などのサービスを実現することができる。
ここでは、情報処理装置100が、第1の生成部702および第2の生成部703により、ナレッジグラフを生成する場合について説明したが、これに限らない。例えば、情報処理装置100が、第1の生成部702および第2の生成部703を有さず、化合物名を示すノードを含むナレッジグラフを生成せず、ナレッジグラフを取得する場合があってもよい。
(情報処理装置100の具体的な機能的構成例)
次に、図8を用いて、上述した制御部を実現する、情報処理装置100の具体的な機能的構成例について説明する。
図8は、情報処理装置100の具体的な機能的構成例を示すブロック図である。情報処理装置100は、化合物名判定部801と、化合物名抽象化部802と、URI生成部803と、リンク生成部804と、リンク数集計部805と、ノード確定部806とを含む。化合物名判定部801と、化合物名抽象化部802と、URI生成部803と、リンク生成部804と、リンク数集計部805と、ノード確定部806とは、化合物名のリスト820から、ナレッジグラフを生成する動作を実現する。
化合物名判定部801は、化合物名のリスト820を受け付ける。化合物名判定部801は、化合物名のリスト820に含まれる1以上の化合物名のそれぞれに、置換基の結合位置を示す数字が含まれるか否かを判定する。化合物名判定部801は、置換基の結合位置を示す数字が含まれる化合物名を、化合物名抽象化部802に出力する。
化合物名抽象化部802は、化合物名を受け付けると、化合物名から置換基の結合位置を示した文字列を除去し、抽象化合物名を生成する。URI生成部803は、抽象化合物名に新規URIを付与する。URI生成部803は、抽象化合物名に新規URIを付与した結果を、図4に示したグラフ情報テーブル400を用いて記憶することにより、抽象化合物名を示すノードを生成する。
リンク生成部804は、化合物名に付与されたURIと、化合物名から文字列を除去した抽象化合物名に付与されたURIとをリンク付けする。リンク生成部804は、リンク付けした結果を、図4に示したグラフ情報テーブル400を用いて記憶することにより、ノード間をリンク付けする。リンク数集計部805は、化合物名に付与されたURIごとに、リンク付けされた他のURIの数を集計する。
ノード確定部806は、化合物名に付与されたURIにリンク付けされた他のURIの数が閾値以下であるか否かを判定する。ノード確定部806は、閾値以上であれば、化合物名を示すノードを、ナレッジグラフに残すノードとして確定する。ノード確定部806は、閾値以下であれば、化合物名に付与されたURIを、図4に示したグラフ情報テーブル400から削除することにより、化合物名を示すノードを削除する。
また、情報処理装置100は、パターン生成部807と、ノード検索部808と、具体化部809と、情報生成部810とを含む。化合物名判定部801と、化合物名抽象化部802と、パターン生成部807と、ノード検索部808と、具体化部809と、情報生成部810とは、検索クエリ830の化合物名に対応するノードを検索する動作を実現する。
化合物名判定部801は、検索クエリ830を受け付ける。化合物名判定部801は、検索クエリ830の化合物名に、置換基の結合位置を示す数字が含まれるか否かを判定する。化合物名判定部801は、置換基の結合位置を示す数字が含まれる場合に、検索クエリ830の化合物名を、化合物名抽象化部802に出力する。また、化合物名判定部801は、置換基の結合位置を示す数字が含まれない場合に、検索クエリ830の化合物名を、ノード検索部808に出力してもよい。また、化合物名判定部801は、置換基の結合位置を示す数字が含まれる場合にも、検索クエリ830の化合物名を、ノード検索部808に出力してもよい。
化合物名抽象化部802は、化合物名を受け付けると、化合物名から置換基の結合位置を示した文字列を除去し、抽象化合物名を生成する。パターン生成部807は、抽象化合物を生成する際に、文字列を除去したパターンを生成して記憶する。ノード検索部808は、ナレッジグラフから、抽象化合物名を示すノードを検索する。ノード検索部808は、ナレッジグラフから、検索クエリ830の化合物名を直接示すノードを検索してもよい。
具体化部809は、パターンを参照して、除去した文字列を検索クエリ830の化合物名と同じ位置に含む化合物名を生成する。ノード検索部808は、ナレッジグラフから、具体化部809が生成した化合物名を示すノードの方向に、検索クエリ830の化合物名に対応するノードを検索する。情報生成部810は、発見された検索クエリ830の化合物名を直接示すノード、または、検索クエリ830の化合物名に対応するノードに基づいて、化合物の分子式や分子量、または、化合物の機能や用途などの属性情報を生成して出力する。
(情報処理装置100の動作例)
次に、図9~図17を用いて、情報処理装置100の動作例について説明する。まず、図9を用いて、情報処理装置100がナレッジグラフを生成する流れについて説明する。
図9は、ナレッジグラフを生成する流れを示す説明図である。図9において、情報処理装置100は、コーパスや辞書情報を参照して、化合物名を特定し、特定した化合物名を示すノード900を生成する。また、情報処理装置100は、ノード900が示す化合物名から、置換基の結合位置を示す文字列を除去した抽象化合物名を示すノード910を生成する。そして、情報処理装置100は、ノード910を、ノード900の上位にリンク付けすることにより、ナレッジグラフを形成していく。
次に、図10~図13を用いて、情報処理装置100が、ナレッジグラフを生成する一例について説明する。具体的には、まず、図10を用いて、情報処理装置100が、抽象化合物名を生成する元となる化合物名を抽出する一例について説明する。
図10は、化合物名を抽出する一例を示す説明図である。図10において、(10-1)情報処理装置100は、特許文献などを含むコーパスから、化合物名の候補を抽出する。ここで、例えば、日本語の文章では、化合物名が、カタカナ、アルファベット、数字、記号、および、一部の漢字などの特定の文字により記述される傾向がある。このため、情報処理装置100は、特定の文字が連続する文字列を、化合物名の候補として抽出する。
(10-2)情報処理装置100は、化合物名の候補のうち、辞書テーブル500に登録された化合物名と一致する候補を、ノードを生成する対象になる化合物名として特定し、化合物名のリスト1000を生成する。そして、情報処理装置100は、特定した化合物名に対応付けて辞書テーブル500に登録されたURIを検索し、特定した化合物名に付与する。URIは、ノードのラベルに対応する。ここで、情報処理装置100は、化合物にURIを付与した結果を、グラフ情報テーブル400を用いて記憶することにより、特定した化合物名を示すノードを生成する。
図10の例では、化合物名のリスト1000は、「(2S)-2-アミノ-2-(4-ヒドロキシフェニル)酢酸」を含む。化合物名のリスト1000は、「(2R)-2α,3,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」を含む。化合物名のリスト1000は、「5-(3,4-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を含む。化合物名のリスト1000は、「プロパン」を含む。
(10-3)情報処理装置100は、生成した化合物名のリスト1000から、置換基の結合位置を示す数字を含む化合物名を、抽象化合物名を生成する元となる化合物名として抽出し、化合物名のリスト1010を生成する。ここで、情報処理装置100は、文字列「2S」や文字列「3E」などのアルファベットに接続された数字「2」や数字「3」は、置換基の結合位置を示さない数字として扱う。
図10の例では、化合物名のリスト1010は、「(2S)-2-アミノ-2-(4-ヒドロキシフェニル)酢酸」を含む。化合物名のリスト1010は、「(2R)-2α,3,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」を含む。化合物名のリスト1010は、「5-(3,4-ジヒドロキシベンジル)-4,5-ジヒドロフラン-2(3H)-オン」を含む。
次に、図11および図12を用いて、情報処理装置100が、抽出した化合物名から、抽象化合物名を生成する一例について説明する。
図11および図12は、抽象化合物名を生成する一例を示す説明図である。図11において、(11-1)情報処理装置100は、化合物名のリスト1010から、化合物名1100を選択する。化合物名1100は、「(2R)-2α,3,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」である。
(11-2)情報処理装置100は、化合物名1100から、1以上の置換基の結合位置を示し、1以上の数字と所定の記号とが連続した文字列1101~1108を特定する。図中では、文字列1101~1108には、下線が付されている。文字列1101~1108は、それぞれ「3,7,8」、「4」、「5」、「1,3」、「4」、「2,3,6,9」、「1,2」、「6,9」である。次に、図12の説明に移行する。
図12において、情報処理装置100は、化合物名1100から、文字列1101~1108を再帰的に除去し、抽象化合物名を生成する。図12の例では、情報処理装置100は、化合物名1100から、文字列1101~1108のそれぞれを除去し、抽象化合物名1201~1203などを生成し、新規URIを付与する。新規URIは、ノードのラベルに対応する。ここで、情報処理装置100は、抽象化合物名1201~1203などに新規URIを付与した結果を、グラフ情報テーブル400を用いて記憶することにより、抽象化合物名1201~1203などを示すノードを生成する。
さらに、情報処理装置100は、抽象化合物名1201から、文字列1102~1108のそれぞれを除去し、再帰的に、抽象化合物名1211,1212などを生成し、新規URIを付与する。ここで、情報処理装置100は、抽象化合物名1211,1212などに新規URIを付与した結果を、グラフ情報テーブル400を用いて記憶することにより、抽象化合物名1211,1212などを示すノードを生成する。同様に、情報処理装置100は、抽象化合物名1211,1212などからも、再帰的に、抽象化合物名を生成することを繰り返し、新規URIを付与していき、グラフ情報テーブル400を更新する。
同様に、情報処理装置100は、抽象化合物名1202,1203などからも、再帰的に、抽象化合物名を生成することを繰り返し、新規URIを付与していき、グラフ情報テーブル400を更新する。また、情報処理装置100は、化合物名のリスト1010から、化合物名1100以外の化合物名も選択し、再帰的に、抽象化合物名を生成することを繰り返し、新規URIを付与していき、グラフ情報テーブル400を更新する。
次に、図13を用いて、情報処理装置100が、生成した抽象化合物名を示すノードを含むナレッジグラフ1300を生成する一例について説明する。
図13は、ナレッジグラフ1300を生成する一例を示す説明図である。図13において、情報処理装置100は、化合物名に付与されたURIに、「is-a」の関係性で、当該化合物名から文字列を除去した抽象化合物名に付与されたURIをリンク付けする。また、情報処理装置100は、抽象化合物名に付与されたURIに、「is-a」の関係性で、当該抽象化合物名から文字列を除去した抽象化合物名に付与されたURIをリンク付けする。そして、情報処理装置100は、リンク付けした結果を、グラフ情報テーブル400を用いて記憶することにより、ノード間をリンク付けし、ナレッジグラフ1300を生成する。図13の例では、情報処理装置100は、ノード1301~1304などを含むナレッジグラフ1300を生成する。
これにより、情報処理装置100は、ナレッジグラフに、化合物名と抽象化合物名との関係性、および、抽象化合物名同士の関係性を反映することができる。結果として、情報処理装置100は、情報検索、情報解析、または、読解支援などのサービスに利用する観点から好ましいと判断されるナレッジグラフを生成可能にすることができる。そして、情報処理装置100は、ナレッジグラフを利用し、情報検索、情報解析、または、読解支援などを効果的に実施可能にすることができる。情報処理装置100は、例えば、人が、化学分野の特許文献や技術論文などの技術文書を読解する際に、技術文書に記載された抽象化合物名から、化合物の分子式や分子量、または、化合物の機能や用途などを検索可能にすることができる。
また、情報処理装置100は、化合物名を示すノードから上位となる抽象化合物名を示すノードを生成することができる。このため、情報処理装置100は、化合物名の上位概念を示すノードがある場合には、化合物名を示すノードと、化合物名の上位概念を示すノードとの中間に、抽象化合物名を示すノードを追加することができる。
ここで、情報処理装置100は、いずれかの抽象化合物名に付与された新規URIに、「is-a」の関係性でリンク付けされた、化合物名に付与されたURIの数を計数し、URIの数が閾値以上であるか否かを判定してもよい。閾値は、例えば、2である。そして、情報処理装置100は、URIの数が閾値未満である場合には、いずれかの抽象化合物名に付与された新規URIを削除してもよい。
例えば、いずれかの抽象化合物名に付与された新規URIに、「is-a」の関係性でリンク付けされた、化合物名に付与されたURIの数が、1つである場合が考えられる。この場合、いずれかの抽象化合物名は、1つの化合物名しか包含しないことになるため、いずれかの抽象化合物名を示すノードを生成しても、サービスに利用する観点から有用ではない可能性がある。そこで、情報処理装置100は、いずれかの抽象化合物名を示すノードを生成せず、抽象化合物名を示すノードの数の膨大化を抑制するようにしてもよい。
ここで、抽出した化合物名の候補の中には、化合物名の他に、抽象化合物名が含まれることがあり、化合物とは関係ない文字列が含まれることもある。これに対し、情報処理装置100は、辞書テーブル500を参照して、抽象化合物名や化合物とは関係ない文字列を示すノードを、化合物名を示すノードとして誤って生成しないようにすることができる。
また、情報処理装置100は、辞書テーブル500に登録された化合物名でも、抽出した化合物名の候補の中に存在しなければ、化合物名を示すノードを生成しないようにすることができる。このため、情報処理装置100は、技術文書に出現しやすい化合物名を示すノードであるため、サービスに利用する観点からナレッジグラフに含むことが好ましい化合物名を示すノードを生成することができる。また、情報処理装置100は、技術文書に出現しにくい化合物名を示すノードであるため、サービスに利用する観点からナレッジグラフに含まなくてもよい化合物名を示すノードを生成しないようにすることができる。
結果として、情報処理装置100は、化合物名を示すノードの数の膨大化を抑制することができる。そして、情報処理装置100は、ナレッジグラフのサイズの増大化を抑制することができ、ナレッジグラフを利用する際のパフォーマンスの低下を抑制することができる。情報処理装置100は、例えば、ナレッジグラフを利用する際に、ナレッジグラフから所定の化合物名を示すノードを検索する所要時間などの低減化を図ることができる。
次に、図14~図17を用いて、情報処理装置100が、ナレッジグラフ1300を利用する一例について説明する。まず、図14を用いて、情報処理装置100が、検索クエリ1400を受け付け、ナレッジグラフ1300から、検索クエリ1400の化合物名を直接示すノードを検索する一例について説明する。
図14は、検索クエリ1400の化合物名を直接示すノードを検索する一例を示す説明図である。図14において、情報処理装置100は、検索クエリ1400を受け付ける。検索クエリ1400は、化合物名「(2R)-2α,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」を示す。情報処理装置100は、ナレッジグラフ1300から、検索クエリ1400の化合物名を直接示すノードを検索する。
情報処理装置100は、ナレッジグラフ1300から、検索クエリ1400の化合物名を直接示すノードを発見した場合には、発見したノードにリンク付けられたノードが示す、化合物の分子式や分子量、または、化合物の機能や用途などを取得してもよい。これにより、情報処理装置100は、化合物の分子式や分子量、または、化合物の機能や用途などに基づいて、情報検索、情報解析、または、読解支援などのサービスを実現することができる。図14の例では、情報処理装置100は、ナレッジグラフ1300から、検索クエリ1400の化合物名を直接示すノードを発見しなかったとする。
次に、図15~図17を用いて、情報処理装置100は、ナレッジグラフ1300から、検索クエリの化合物名に対応するノードを検索する一例について説明する。
図15~図17は、検索クエリの化合物名に対応するノードを検索する一例を示す説明図である。図15において、情報処理装置100は、検索クエリ1400の化合物名1500から、1以上の置換基の結合位置を示し、1以上の数字と所定の記号とが連続した文字列1501~1508を特定する。図中では、文字列1501~1508には、下線が付されている。
化合物名1500は、「(2R)-2α,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」である。文字列1501~1508は、それぞれ「7,8」、「4」、「5」、「1,3」、「4」、「2,3,6,9」、「1,2」、「6,9」である。次に、図16の説明に移行する。
図16において、情報処理装置100は、化合物名1500から、特定した文字列1501を除去し、抽象化合物名1600を生成する。抽象化合物名1600は、「(2R)-2α-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」である。
情報処理装置100は、ナレッジグラフ1300から、生成した抽象化合物名1600を示すノードを検索する。ここで、情報処理装置100は、生成した抽象化合物名1600を示すノードを発見しなければ、再帰的に、文字列1502~1508を除去し、別の抽象化合物名を示すノードを検索してもよい。図16の例では、情報処理装置100は、生成した抽象化合物名1600を示すノード1610を発見したとする。次に、図17の説明に移行する。
図17において、情報処理装置100は、除去した文字列1501を、化合物名1500と同様の位置に含む化合物名1710を示すノード1701を特定する。情報処理装置100は、発見したノード1610を起点に、特定したノード1701へのリンクを辿って、化合物名1500に対応するノードを検索する。図17の例では、情報処理装置100は、化合物名1500に対応するノードとして、ノード1701を発見する。
ここで、情報処理装置100が、図16の動作で、化合物名1500から文字列を複数除去し、抽象化合物名を示すノードを発見している場合が考えられる。この場合、情報処理装置100は、除去した文字列を1つずつ選択し、選択した文字列を、化合物名1500と同様の位置に含む化合物名を示すノードへのリンクを辿っていき、化合物名1500に対応するノードを検索する。
ここで、情報処理装置100は、化合物名1500を包含しない具体的な化合物名を示すノード1702へのリンクを辿って、化合物名1500に対応するノードを検索することを回避することができる。このため、情報処理装置100は、化合物名1500に対応するノードを効率よく検索することができる。
情報処理装置100は、ナレッジグラフ1300から、化合物名1500に対応するノードを発見した場合には、発見したノードにリンク付けられたノードが示す、化合物の分子式や分子量、または、化合物の機能や用途などを取得してもよい。これにより、情報処理装置100は、化合物の分子式や分子量、または、化合物の機能や用途などに基づいて、情報検索、情報解析、または、読解支援などのサービスを実現することができる。
次に、図18および図19を用いて、クライアント装置201において、サービス利用者が、情報検索、情報解析、または、読解支援などのサービスを利用する一例について説明する。
図18は、サービス利用者が、サービスを利用する流れを示す説明図である。図18において、クライアント装置201は、技術文書1801をディスプレイ606に表示する。サービス利用者は、技術文書1801を閲覧する。
サービス利用者は、技術文書内の文字列をクリックする。クリックする文字列は、抽象化合物名に対応する文字列であってもよい。クライアント装置201は、クリックされた文字列に関する情報を、情報処理装置100に問い合わせる。情報処理装置100は、ナレッジグラフ1300のノード間のリンクを辿ることにより、クリックされた文字列に対応する化合物名に関する情報を、クライアント装置201に表示させる。
図18の例では、サービス利用者は、「3-エトキシプロパノール」をクリックする。クライアント装置201は、文字列「3-エトキシプロパノール」のクリックに応じて、文字列「3-エトキシプロパノール」に関する情報を、情報処理装置100に問い合わせる。情報処理装置100は、ナレッジグラフ1300を参照して、抽象化合物名「3-エトキシプロパノール」が、化合物名「3-エトキシ-1-プロパノール」を包含することを特定する。
また、情報処理装置100は、化合物名「3-エトキシ-1-プロパノール」について、化合物の分子式や分子量、または、化合物の機能や用途などを特定し、解説文1802を生成し、クライアント装置201に表示させる。解説文1802は、例えば、「3-エトキシプロパノールは、3-エトキシ-1-プロパノールや、1-エトキシ-2-プロパノールなどを含む抽象概念です。」を含む。次に、図19の説明に移行する。
図19は、サービス利用者が、サービスを利用する一例を示す説明図である。図19において、クライアント装置201は、技術文書1900をディスプレイ606に表示する。サービス利用者は、技術文書1900を閲覧する。
サービス利用者は、技術文書内の文字列1901をクリックする。文字列1901は、「(2R)-2α,7,8-テトラメチル-3α-[(1E,3E)-4-メチル-5-ヒドロキシ-1,3-ペンタジエニル]-4-ヒドロキシ-2,3,6,9-テトラヒドロナフト[1,2-b]フラン-6,9-ジオン」である。
クライアント装置201は、文字列1901のクリックに応じて、文字列1901に関する検索クエリを、情報処理装置100に送信することにより、文字列1901に関する情報を、情報処理装置100に問い合わせる。情報処理装置100は、検索クエリを受け付け、ナレッジグラフ1300を参照して、図14~図17と同様に、文字列1901を示すノードを発見する。
そして、情報処理装置100は、発見したノードに基づいて、問い合わせの文字列1901に対応する抽象化合物名に関する情報を、クライアント装置201に提供する。情報処理装置100は、具体的には、発見したノードにリンク付けられたノードが示す、化合物の分子式や分子量、または、化合物の機能や用途などを取得し、解説文1902を生成し、クライアント装置201に表示させる。
これにより、情報処理装置100は、問い合わせの文字列に対応する抽象化合物名に直接的に関係する情報を、サービス利用者が参照可能にすることができる。このため、情報処理装置100は、情報検索、情報解析、または、読解支援などのサービスを効果的に実施することができる。
以上の説明では、情報処理装置100が、コーパスから化合物名の候補を抽出する場合について説明したが、これに限らない。例えば、情報処理装置100が、辞書テーブル500に登録された化合物名を抽出し、化合物名から抽象化合物名の候補を特定してから、抽象化合物名の候補がコーパスに出現するか否かを判定する場合があってもよい。
(生成処理手順)
次に、図20を用いて、情報処理装置100が実行する、生成処理手順の一例について説明する。生成処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図20は、生成処理手順の一例を示すフローチャートである。図20において、情報処理装置100は、コーパスから化合物名の候補を抽出する(ステップS2001)。
次に、情報処理装置100は、抽出した候補のうち、辞書テーブル500に記憶された化合物名と一致する候補のそれぞれの候補に対して、当該候補と一致した化合物名に対応付けて辞書テーブル500に記憶されたURIを付与する(ステップS2002)。そして、情報処理装置100は、ステップS2003の処理に移行する。
ステップS2003では、情報処理装置100は、抽出した候補を含む候補リストのうち未処理の候補を選択する(ステップS2003)。
次に、情報処理装置100は、選択した候補が、URIが付与され、かつ、数字を含む候補であるか否かを判定する(ステップS2004)。ここで、URIが付与されていない候補、または、数字を含まない候補である場合(ステップS2004:No)、情報処理装置100は、ステップS2008の処理に移行する。一方で、URIが付与され、かつ、数字を含む候補である場合(ステップS2004:Yes)、情報処理装置100は、ステップS2005の処理に移行する。
ステップS2005では、情報処理装置100は、選択した候補から、1以上の数字と所定の記号とを組み合わせた置換基の結合位置を示す文字列を除去した文字列を生成し、候補リストに追加する(ステップS2005)。そして、情報処理装置100は、生成した文字列に、新規URIを付与する(ステップS2006)。
次に、情報処理装置100は、選択した候補に付与されたURIと、生成した文字列に付与された新規URIとを、「is-a」の関係性でリンク付けする(ステップS2007)。そして、情報処理装置100は、ステップS2008の処理に移行する。
ステップS2008では、情報処理装置100は、候補リストのうち、すべての候補を処理したか否かを判定する(ステップS2008)。ここで、未処理の候補がある場合(ステップS2008:No)、情報処理装置100は、ステップS2003の処理に戻る。一方で、すべての候補を処理している場合(ステップS2008:Yes)、情報処理装置100は、ステップS2009の処理に移行する。
ステップS2009では、情報処理装置100は、URIごとに「is-a」の関係性でリンク付けされたURIの数を算出する(ステップS2009)。次に、情報処理装置100は、URIのうち、リンク付けされたURIの数が閾値未満であるURIを削除する(ステップS2010)。
そして、情報処理装置100は、生成処理を終了する。これにより、情報処理装置100は、抽象化合物名を示すノードを含むナレッジグラフを生成することができる。また、情報処理装置100は、ナレッジグラフに含まれるノードの数の増大化を抑制することができる。
(検索処理手順)
次に、図21を用いて、情報処理装置100が実行する、検索処理手順の一例について説明する。検索処理は、例えば、図3に示したCPU301と、メモリ302や記録媒体305などの記憶領域と、ネットワークI/F303とによって実現される。
図21は、検索処理手順の一例を示すフローチャートである。図21において、情報処理装置100は、検索クエリを受け付ける(ステップS2101)。次に、情報処理装置100は、検索クエリの化合物名を直接示すノードを、ナレッジグラフから検索する(ステップS2102)。
そして、情報処理装置100は、検索クエリの化合物名を直接示すノードが発見されたか否かを判定する(ステップS2103)。ここで、ノードが発見された場合(ステップS2103:Yes)、情報処理装置100は、ステップS2108の処理に移行する。一方で、ノードが発見されない場合(ステップS2103:No)、情報処理装置100は、ステップS2104の処理に移行する。
ステップS2104では、情報処理装置100は、検索クエリの化合物名から、置換基の結合位置を示す1以上の数字と所定の記号とを組み合わせた文字列を除去し、抽象化合物名を生成する(ステップS2104)。次に、情報処理装置100は、抽象化合物名を示すノードを、ナレッジグラフから検索する(ステップS2105)。
そして、情報処理装置100は、抽象化合物名を示すノードが発見されたか否かを判定する(ステップS2106)。ここで、ノードが発見された場合(ステップS2106:Yes)、情報処理装置100は、ステップS2107の処理に移行する。一方で、ノードが発見されない場合(ステップS2106:No)、情報処理装置100は、ステップS2109の処理に移行する。
ステップS2107では、情報処理装置100は、発見されたノードから、除去した文字列に対応するノードの方向に辿り、検索クエリの化合物名に対応するノードを特定する(ステップS2107)。そして、情報処理装置100は、ステップS2108の処理に移行する。
ステップS2108では、情報処理装置100は、検索クエリの化合物名を直接示すノード、または、検索クエリの化合物名に対応するノードにリンク付けられた、化合物の分子式や分子量、または、化合物の機能や用途などを出力する(ステップS2108)。そして、情報処理装置100は、検索処理を終了する。
ステップS2109では、情報処理装置100は、検索クエリの化合物名から、置換基の結合位置を示す1以上の数字と所定の記号とを組み合わせた文字列をすべて除去したか否かを判定する(ステップS2109)。ここで、除去していない文字列がある場合(ステップS2109:No)、情報処理装置100は、ステップS2104の処理に戻る。一方で、文字列をすべて除去している場合(ステップS2109:Yes)、情報処理装置100は、検索処理を終了する。
ここで、情報処理装置100は、図20および図21の一部ステップの処理を省略してもよい。例えば、ステップS2009,S2010の処理は省略可能である。
以上説明したように、情報処理装置100によれば、第1の化合物名に関する検索クエリを取得することができる。情報処理装置100によれば、取得した検索クエリに基づいて、第1の化合物名に含まれる置換基の結合位置を示す文字列を特定することができる。情報処理装置100によれば、第1の化合物名から、特定した文字列を除去した抽象化合物名を生成することができる。情報処理装置100によれば、化合物名を示すノード同士をリンク付けしたグラフ内から、生成した抽象化合物名を示すノードを検索することができる。情報処理装置100によれば、抽象化合物名を示すノードを発見した場合に、グラフ内で、発見したノードを起点に、特定した文字列に対応する化合物名を示すノードへのリンクを辿って、第1の化合物名に対応するノードを検索することができる。これにより、情報処理装置100は、第1の化合物名を直接的に示すノードが存在しなくても、第1の化合物名に対応するノードを発見することができる。このため、情報処理装置100は、グラフを利用し、情報検索、情報解析、または、読解支援などを実施可能にすることができる。
情報処理装置100によれば、取得した検索クエリに基づいて、第1の化合物名に含まれる置換基の結合位置を示す1以上の数字と所定の記号とを組み合わせた文字列を特定することができる。これにより、情報処理装置100は、第1の化合物名から、1以上の数字と所定の記号とを組み合わせた文字列を纏めて除去して抽象化合物名を生成することができる。
情報処理装置100によれば、抽象化合物名を示すノードを発見しない場合に、特定済みの文字列とは異なる、第1の化合物名に含まれる置換基の結合位置を示す文字列を特定することができる。情報処理装置100によれば、第1の化合物名から、特定した文字列をすべて除去した抽象化合物名を生成することができる。情報処理装置100によれば、グラフ内から、生成した抽象化合物名を示すノードを検索することができる。これにより、情報処理装置100は、再帰的に、第1の化合物名の抽象化を繰り返し、抽象化合物名を示すノードを発見可能にすることができる。
情報処理装置100によれば、文章集合から、化合物名としての条件を満たす複数の文字列を抽出することができる。情報処理装置100によれば、化合物名を記憶する辞書情報を参照して、抽出した複数の文字列のうち、化合物名であると判定した文字列を示すノードを含むグラフを生成することができる。情報処理装置100によれば、生成したグラフ内のいずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名を示す新たなノードを生成し、いずれかのノードの上位にリンク付けして、グラフに追加することができる。これにより、情報処理装置100は、ナレッジグラフを生成することができる。
情報処理装置100によれば、いずれかのノードが示す化合物名から、置換基の結合位置を示す1以上の数字と所定の記号とを組み合わせた文字列を除去した抽象化合物名を示す新たなノードを生成することができる。これにより、情報処理装置100は、化合物名から、1以上の数字と所定の記号とを組み合わせた文字列を纏めて除去して抽象化合物名を生成するため、抽象化合物名を示すノードの膨大化を抑制することができる。
情報処理装置100によれば、生成したグラフ内に、置換基の結合位置を示す文字列を除去すると、同じ抽象化合物名になる化合物名を示すノードが、所定の数以上存在する場合に、新たなノードを生成することができる。これにより、情報処理装置100は、抽象化合物名を示すノードの膨大化を抑制することができる。
情報処理装置100によれば、文章集合に、いずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名が閾値以上出現する場合に、新たなノードを生成することができる。これにより、情報処理装置100は、抽象化合物名を示すノードの膨大化を抑制することができる。
なお、本実施の形態で説明した検索方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した検索プログラムは、ハードディスク、フレキシブルディスク、CD-ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した検索プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)第1の化合物名に関する検索クエリを取得し、
取得した前記検索クエリに基づいて、前記第1の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第1の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、
化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、
前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第1の化合物名に対応するノードを検索する、
処理をコンピュータが実行することを特徴とする検索方法。
(付記2)前記特定する処理は、
取得した前記検索クエリに基づいて、前記第1の化合物名に含まれる置換基の結合位置を示す1以上の数字と所定の記号とを組み合わせた文字列を特定する、ことを特徴とする付記1に記載の検索方法。
(付記3)前記抽象化合物名を示すノードを発見しない場合に、特定済みの前記文字列とは異なる、前記第1の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第1の化合物名から、特定した前記文字列をすべて除去した抽象化合物名を生成し、
前記グラフ内から、生成した前記抽象化合物名を示すノードを検索する、
処理を前記コンピュータが実行することを特徴とする付記1または2に記載の検索方法。
(付記4)文章集合から、化合物名としての条件を満たす複数の文字列を抽出し、
化合物名を記憶する辞書情報を参照して、抽出した前記複数の文字列のうち、化合物名であると判定した文字列を示すノードを含むグラフを生成し、
生成した前記グラフ内のいずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名を示す新たなノードを生成し、前記いずれかのノードの上位にリンク付けして、前記グラフに追加する、
処理を前記コンピュータが実行し、
前記抽象化合物名を示すノードを検索する処理は、
生成した前記グラフ内から、生成した前記抽象化合物名を示すノードを検索する、ことを特徴とする付記1~3のいずれか一つに記載の検索方法。
(付記5)前記追加する処理は、
前記いずれかのノードが示す化合物名から、置換基の結合位置を示す1以上の数字と所定の記号とを組み合わせた文字列を除去した抽象化合物名を示す新たなノードを生成する、ことを特徴とする付記4に記載の検索方法。
(付記6)前記追加する処理は、
生成した前記グラフ内に、置換基の結合位置を示す文字列を除去すると、同じ抽象化合物名になる化合物名を示すノードが、所定の数以上存在する場合に、前記新たなノードを生成する、ことを特徴とする付記4または5に記載の検索方法。
(付記7)前記追加する処理は、
文章集合に、前記いずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名が閾値以上出現する場合に、前記新たなノードを生成する、ことを特徴とする付記4~6のいずれか一つに記載の検索方法。
(付記8)第1の化合物名に関する検索クエリを取得し、
取得した前記検索クエリに基づいて、前記第1の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第1の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、
化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、
前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第1の化合物名に対応するノードを検索する、
処理をコンピュータに実行させることを特徴とする検索プログラム。
(付記9)第1の化合物名に関する検索クエリを取得し、
取得した前記検索クエリに基づいて、前記第1の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第1の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、
化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、
前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第1の化合物名に対応するノードを検索する、
制御部を有することを特徴とする情報処理装置。