(57)【要約】【課題】指定された化合物名に対応するノードを発見しやすくすること。【解決手段】クライアント装置は、技術文書１８０１をディスプレイ６０６に表示する。サービス利用者は、技術文書１８０１を閲覧する。サービス利用者は、技術文書内の文字列をクリックする。クリックする文字列は、抽象化合物名に対応する文字列であってもよい。クライアント装置は、クリックされた文字列に関する情報を、情報処理装置に問い合わせる。情報処理装置は、ナレッジグラフ１３００のノード間のリンクを辿ることにより、クリックされた文字列に対応する化合物名に関する情報を、クライアント装置に表示させる。【選択図】図１８
2020187647.tif 000002
【特許請求の範囲】
【請求項１】
第１の化合物名に関する検索クエリを取得し、
取得した前記検索クエリに基づいて、前記第１の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第１の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、
化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、
前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第１の化合物名に対応するノードを検索する、
処理をコンピュータが実行することを特徴とする検索方法。
【請求項２】
前記特定する処理は、
取得した前記検索クエリに基づいて、前記第１の化合物名に含まれる置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列を特定する、ことを特徴とする請求項１に記載の検索方法。
【請求項３】
前記抽象化合物名を示すノードを発見しない場合に、特定済みの前記文字列とは異なる、前記第１の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第１の化合物名から、特定した前記文字列をすべて除去した抽象化合物名を生成し、
前記グラフ内から、生成した前記抽象化合物名を示すノードを検索する、
処理を前記コンピュータが実行することを特徴とする請求項１または２に記載の検索方法。
【請求項４】
文章集合から、化合物名としての条件を満たす複数の文字列を抽出し、
化合物名を記憶する辞書情報を参照して、抽出した前記複数の文字列のうち、化合物名であると判定した文字列を示すノードを含むグラフを生成し、
生成した前記グラフ内のいずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名を示す新たなノードを生成し、前記いずれかのノードの上位にリンク付けして、前記グラフに追加する、
処理を前記コンピュータが実行し、
前記抽象化合物名を示すノードを検索する処理は、
生成した前記グラフ内から、生成した前記抽象化合物名を示すノードを検索する、ことを特徴とする請求項１〜３のいずれか一つに記載の検索方法。
【請求項５】
前記追加する処理は、
前記いずれかのノードが示す化合物名から、置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列を除去した抽象化合物名を示す新たなノードを生成する、ことを特徴とする請求項４に記載の検索方法。
【請求項６】
第１の化合物名に関する検索クエリを取得し、
取得した前記検索クエリに基づいて、前記第１の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第１の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、
化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、
前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第１の化合物名に対応するノードを検索する、
処理をコンピュータに実行させることを特徴とする検索プログラム。
【請求項７】
第１の化合物名に関する検索クエリを取得し、
取得した前記検索クエリに基づいて、前記第１の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第１の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、
化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、
前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第１の化合物名に対応するノードを検索する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、検索方法、検索プログラム、および情報処理装置に関する。
【背景技術】
【０００２】
従来、化学分野に関する情報検索、情報解析、または、読解支援などに、ナレッジグラフが利用されることがある。ナレッジグラフは、例えば、化合物名を示すノード、化合物の分子式や分子量を示すノード、または、化合物の機能や用途を示すノードなどを含む。例えば、人が、化学分野の特許文献や技術論文などの技術文書を読解する際に、ナレッジグラフを利用し、技術文書に記載された化合物名を検索可能にし、化合物の分子式や分子量、または、化合物の機能や用途などを検索可能にすることが考えられる。
【０００３】
先行技術としては、例えば、化合物名群のうち、対象化合物の置換基を表す文字列を含む化合物名の化合物の母核に結合する置換基の結合位置を特定することにより、置換基の結合位置のバリエーション数を算出するものがある。また、例えば、分類対象となる化合物群の各々の化合物の化合物名の中から、各々の化合物の母核となる部分構造の名称を表す文字列を検出する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２０１４−０９２９３０号公報
【特許文献２】特開２０１３−１０１５１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、従来技術では、ナレッジグラフから、指定された化合物名に対応するノードを発見することは難しい。例えば、置換基の結合位置を示す文字列を省略した抽象的な化合物名が指定された場合に、ナレッジグラフ内に、指定された抽象的な化合物名を直接的に示すノードが存在せず、指定された抽象的な化合物名に対応するノードを発見することが難しいことがある。
【０００６】
１つの側面では、本発明は、指定された化合物名に対応するノードを発見しやすくすることを目的とする。
【課題を解決するための手段】
【０００７】
１つの実施態様によれば、第１の化合物名に関する検索クエリを取得し、取得した前記検索クエリに基づいて、前記第１の化合物名に含まれる置換基の結合位置を示す文字列を特定し、前記第１の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第１の化合物名に対応するノードを検索する検索方法、検索プログラム、および情報処理装置が提案される。
【発明の効果】
【０００８】
一態様によれば、指定された化合物名に対応するノードを発見しやすくすることが可能になる。
【図面の簡単な説明】
【０００９】
【図１】図１は、実施の形態にかかる検索方法の一実施例を示す説明図である。
【図２】図２は、サービス提供システム２００の一例を示す説明図である。
【図３】図３は、情報処理装置１００のハードウェア構成例を示すブロック図である。
【図４】図４は、グラフ情報テーブル４００のデータ構造の一例を示す説明図である。
【図５】図５は、辞書テーブル５００のデータ構造の一例を示す説明図である。
【図６】図６は、クライアント装置２０１のハードウェア構成例を示すブロック図である。
【図７】図７は、情報処理装置１００の機能的構成例を示すブロック図である。
【図８】図８は、情報処理装置１００の具体的な機能的構成例を示すブロック図である。
【図９】図９は、ナレッジグラフを生成する流れを示す説明図である。
【図１０】図１０は、化合物名を抽出する一例を示す説明図である。
【図１１】図１１は、抽象化合物名を生成する一例を示す説明図（その１）である。
【図１２】図１２は、抽象化合物名を生成する一例を示す説明図（その２）である。
【図１３】図１３は、ナレッジグラフ１３００を生成する一例を示す説明図である。
【図１４】図１４は、検索クエリ１４００の化合物名を直接示すノードを検索する一例を示す説明図である。
【図１５】図１５は、検索クエリの化合物名に対応するノードを検索する一例を示す説明図（その１）である。
【図１６】図１６は、検索クエリの化合物名に対応するノードを検索する一例を示す説明図（その２）である。
【図１７】図１７は、検索クエリの化合物名に対応するノードを検索する一例を示す説明図（その３）である。
【図１８】図１８は、サービス利用者が、サービスを利用する流れを示す説明図である。
【図１９】図１９は、サービス利用者が、サービスを利用する一例を示す説明図である。
【図２０】図２０は、生成処理手順の一例を示すフローチャートである。
【図２１】図２１は、検索処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【００１０】
以下に、図面を参照して、本発明にかかる検索方法、検索プログラム、および情報処理装置の実施の形態を詳細に説明する。
【００１１】
（実施の形態にかかる検索方法の一実施例）
図１は、実施の形態にかかる検索方法の一実施例を示す説明図である。情報処理装置１００は、化学分野に関するナレッジグラフから、指定された化合物名に対応するノードを検索するためのコンピュータである。
【００１２】
ナレッジグラフは、化合物に関する種々の情報を示すノードを含む。ナレッジグラフは、例えば、化合物名を示すノード、化合物の分子式や分子量を示すノード、または、化合物の機能や用途を示すノードなどを含む。化合物は、２種類以上の元素からなる化学物質である。化合物は、例えば、有機化合物と無機化合物とである。
【００１３】
ここで、ナレッジグラフは、例えば、化学分野に関する情報検索、情報解析、または、読解支援などに利用される。例えば、人が、化学分野の特許文献や技術論文などの技術文書を読解する際に、ナレッジグラフを利用し、技術文書に記載された化合物名を検索可能にし、化合物の分子式や分子量、または、化合物の機能や用途などを検索可能にすることが考えられる。
【００１４】
技術文書には、構造が一意に特定可能な抽象度で表現された具体的な化合物名ではなく、構造が一意に特定されない抽象度で表現された抽象的な化合物名が記載されていることがある。具体的な化合物名は、例えば、置換基の結合位置が明示された化合物名である。一方で、抽象的な化合物名は、例えば、置換基の結合位置が特定されない抽象度で表現された化合物名である。抽象的な化合物名は、例えば、置換基の結合位置を示す文字列が省略された化合物名である。
【００１５】
例えば、化合物名「１−エトキシ−２−プロパノール」、および、化合物名「２−エトキシ−２−プロパノール」などが、エトキシ基とヒドロキシ基との結合位置が明示された具体的な化合物名である。一方で、化合物名「１−エトキシプロパノール」、および、化合物名「２−エトキシプロパノール」などが、ヒドロキシ基の結合位置が特定されない抽象度で表現された抽象的な化合物名である。
【００１６】
したがって、ナレッジグラフが、具体的な化合物名を示すノードの他、抽象的な化合物名を示すノードを含むようにすることが、ナレッジグラフを、化学分野に関する情報検索、情報解析、または、読解支援などに利用する観点から好ましいと考えられる。
【００１７】
これに対し、既存の辞書に登録された具体的な化合物名から、１つの数字を所定の記号で区切って１つの置換基の結合位置を示した文字列を除去して特定した、抽象的な化合物名を示すノードを含むナレッジグラフを生成する第１の手法が考えられる。既存の辞書は、例えば、ＣｈＥＢＩ（Ｃｈｅｍｉｃａｌ  Ｅｎｔｉｔｉｅｓ  ｏｆ  Ｂｉｏｌｏｇｉｃａｌ  Ｉｎｔｅｒｅｓｔ）、および、日本化学物質辞書などである。所定の記号は、例えば、ハイフン、カンマ、括弧、コーテーションなどである。
【００１８】
上記第１の手法では、例えば、具体的な化合物名から、１つの置換基の結合位置を示した文字列のそれぞれを除去し、抽象的な化合物名を特定することが考えられる。上記第１の手法では、例えば、具体的な化合物名「１−エトキシ−２−プロパノール」から、ヒドロキシ基の結合位置を示した文字列「−２−」を除去し、抽象的な化合物名「１−エトキシプロパノール」を特定することが考えられる。
【００１９】
しかしながら、上記第１の手法では、具体的な化合物名に、１つの置換基の結合位置を示した文字列が多く含まれるほど、抽象的な化合物名が多く特定されることになり、ナレッジグラフに含まれるノードの数の増大化を招く。そして、ナレッジグラフに含まれるノードの数が増大するほど、特定の化合物名に対応するノードを発見する際にかかる所要時間の増大化を招き、特定の化合物名に対応するノードを発見することが難しくなる。
【００２０】
具体的な化合物名は、「（２Ｒ）−２α，３，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」がある。この具体的な化合物名は、１つの置換基の結合位置を示した文字列を１６個含むため、この具体的な化合物名から、１つの置換基の結合位置を示した文字列のそれぞれを除去するパターンは、６５５３６通り存在する。結果として、この具体的な化合物名から、６５５３６個の抽象的な化合物名が特定されることになり、ナレッジグラフに含まれるノードの数の増大化を招く。
【００２１】
このため、具体的な化合物名から、１つの置換基の結合位置を示した文字列ではなく、１以上の数字を所定の記号で区切って１以上の置換基の結合位置を纏めて示した文字列を除去して特定した、抽象的な化合物名を示すノードを生成する第２の手法が考えられる。そして、第２の手法は、抽象的な化合物名を示すノードを含むナレッジグラフを生成する。これによれば、ナレッジグラフに含まれるノードの数の低減化を図ることができる。
【００２２】
具体的な化合物名は、「（２Ｒ）−２α，３，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」がある。この具体的な化合物名は、１以上の置換基の結合位置を纏めて示した文字列を８個含むため、この具体的な化合物名から、１以上の置換基の結合位置を纏めて示した文字列のそれぞれを除去するパターンは、２５６通り存在する。結果として、この具体的な化合物名から、２５６個の抽象的な化合物名が特定されることになる。
【００２３】
上記第２の手法でも、特定の化合物名に対応するノードを発見することが難しくなることがある。例えば、上記第２の手法では、具体的な化合物名から、１つの置換基の結合位置を示した文字列を除去した抽象的な化合物名を示すノードが、ナレッジグラフに含まれない場合がある。このため、具体的な化合物名から、１つの置換基の結合位置を示した文字列を除去した抽象的な化合物名を直接的に示すノードを発見することができなくなる。結果として、具体的な化合物名から、１つの置換基の結合位置を示した文字列を除去した抽象的な化合物名に対応する化合物の分子式や分子量、または、化合物の機能や用途などを検索することもできなくなる。
【００２４】
そこで、本実施の形態では、指定された化合物名に対応するノードを発見しやすくすることができる検索方法について説明する。以下の説明では、構造が一意に特定されない抽象度で表現された、抽象的な化合物名を、「抽象化合物名」と表記する場合がある。
【００２５】
（１−１）情報処理装置１００は、化合物名を示すノード同士をリンク付けしたグラフＧを記憶する。グラフＧは、例えば、ナレッジグラフである。図１の例では、グラフＧは、ノードＮ１とノードＮ２とを含む。ノードＮ１は、抽象化合物名ｎ１を示す。抽象化合物名ｎ１は、「（２Ｒ）−２α−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」である。
【００２６】
また、ノードＮ２は、化合物名ｎ２を示す。化合物名ｎ２は、「（２Ｒ）−２α，３，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」である。抽象化合物名ｎ１は、化合物名ｎ２から、３つの数字を所定の記号で区切って３つの置換基の結合位置を示した文字列「，３，７，８」を除去した化合物名に対応する。
【００２７】
（１−２）情報処理装置１００は、第１の化合物名ｎｑに関する検索クエリＱを取得する。第１の化合物名ｎｑは、「（２Ｒ）−２α，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」である。第１の化合物名ｎｑは、化合物名ｎ２から、１つの数字を所定の記号で区切って１つの置換基の結合位置を示した文字列「，３」を除去した化合物名に対応する。
【００２８】
（１−３）情報処理装置１００は、取得した検索クエリＱに基づいて、第１の化合物名ｎｑに含まれる置換基の結合位置を示す文字列を特定する。図１の例では、情報処理装置１００は、１以上の数字を所定の記号で区切って１以上の置換基の結合位置を示した文字列「，７，８」を特定する。
【００２９】
（１−４）情報処理装置１００は、第１の化合物名ｎｑから、特定した文字列を除去した抽象化合物名を生成する。図１の例では、情報処理装置１００は、抽象化合物名「（２Ｒ）−２α−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」を生成する。
【００３０】
（１−５）情報処理装置１００は、グラフＧ内から、生成した抽象化合物名を示すノードを検索する。図１の例では、情報処理装置１００は、検索した結果、グラフＧ内から、生成した抽象化合物名を示すノードＮ１を発見する。
【００３１】
（１−６）情報処理装置１００は、抽象化合物名を示すノードを発見した場合に、グラフＧ内で、発見したノードを起点に、特定した文字列に対応する化合物名を示すノードへのリンクを辿って、第１の化合物名ｎｑに対応するノードを検索する。図１の例では、情報処理装置１００は、グラフＧ内で、発見したノードＮ１を起点に、特定した文字列「，７，８」を含む化合物名を示すノードＮ２へのリンクを辿って、第１の化合物名ｎｑに対応するノードを検索する。
【００３２】
情報処理装置１００は、具体的には、グラフＧ内で、発見したノードＮ１を起点に、特定した文字列「，７，８」を、第１の化合物名ｎｑと同様の位置に含む化合物名を示すノードＮ２へのリンクを辿って、第１の化合物名ｎｑに対応するノードを検索する。ここでは、情報処理装置１００は、第１の化合物名ｎｑに対応するノードとして、ノードＮ２を発見する。
【００３３】
これにより、情報処理装置１００は、第１の化合物名ｎｑを直接的に示すノードが存在しなくても、第１の化合物名ｎｑに対応するノードを発見することができる。このため、情報処理装置１００は、グラフＧを利用し、情報検索、情報解析、または、読解支援などを実施可能にすることができる。情報処理装置１００は、例えば、人が、化学分野の特許文献や技術論文などの技術文書を読解する際に、技術文書に記載された抽象化合物名から、化合物の分子式や分子量、または、化合物の機能や用途などを検索可能にすることができる。
【００３４】
（サービス提供システム２００の一例）
次に、図２を用いて、図１に示した情報処理装置１００を適用し、ナレッジグラフを利用して、情報検索、情報解析、または、読解支援などのサービスを提供するサービス提供システム２００の一例について説明する。
【００３５】
図２は、サービス提供システム２００の一例を示す説明図である。図２において、サービス提供システム２００は、情報処理装置１００と、１以上のクライアント装置２０１とを含む。
【００３６】
サービス提供システム２００において、情報処理装置１００とクライアント装置２０１とは、有線または無線のネットワーク２１０を介して接続される。ネットワーク２１０は、例えば、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネットなどである。
【００３７】
情報処理装置１００は、ナレッジグラフを生成し、図４に後述するグラフ情報テーブル４００を用いて記憶するコンピュータである。グラフ情報テーブル４００は、例えば、ＲＤＦ（Ｒｅｓｏｕｒｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ）の形式で、ナレッジグラフを記憶する。情報処理装置１００は、例えば、図５に後述する辞書情報を参照し、化合物名を示すノードを生成する。また、情報処理装置１００は、例えば、化合物名から抽象化合物名を特定し、抽象化合物名を示すノードを生成する。
【００３８】
情報処理装置１００は、生成した化合物名を示すノード、および、抽象化合物名を示すノードについて、ノード間をリンク付けすることにより、ナレッジグラフを生成する。そして、情報処理装置１００は、ナレッジグラフを利用し、化合物名を示すノード、または、抽象化合物名を示すノードを検索することにより、情報検索、情報解析、または読解支援などのサービスを、クライアント装置２０１を介してサービス利用者に提供する。情報処理装置１００は、例えば、サーバやＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などである。
【００３９】
クライアント装置２０１は、サービス利用者が用いるコンピュータである。クライアント装置２０１は、例えば、サービス利用者の操作入力に基づいて、情報処理装置１００と通信し、化合物に関する情報を表示する。クライアント装置２０１は、例えば、ＰＣ、タブレット端末、または、スマートフォンなどである。
【００４０】
具体的には、サービス利用者が、技術文書に記載された所定の抽象化合物名を検索しようとする場合が考えられる。この場合、情報処理装置１００は、所定の抽象化合物名を検索し、所定の抽象化合物名に関する情報を検索し、所定の抽象化合物名に関する情報を、クライアント装置２０１を介して、サービス利用者に提供することができる。抽象化合物名に関する情報は、抽象化合物名が包含する化合物名、抽象化合物名が包含する化合物名に対応する化合物の分子式や分子量、または、化合物の機能や用途などである。
【００４１】
具体的には、情報処理装置１００が、自動で、技術文書に記載された所定の抽象化合物名に関する情報を解析し、所定の抽象化合物名に対応付けて記憶する場合が考えられる。この場合、情報処理装置１００は、所定の抽象化合物名に関する情報を、精度よく特定して記憶しておくことができる。
【００４２】
ここでは、情報処理装置１００が、クライアント装置２０１とは別の装置である場合について説明したが、これに限らない。例えば、情報処理装置１００が、クライアント装置２０１と一体である場合があってもよい。
【００４３】
ここでは、情報処理装置１００が、ナレッジグラフを生成し、サービスを提供する場合について説明したが、これに限らない。例えば、情報処理装置１００とは異なる装置が、ナレッジグラフを生成し、情報処理装置１００が、ナレッジグラフを取得して、サービスを提供する場合があってもよい。
【００４４】
（情報処理装置１００のハードウェア構成例）
次に、図３を用いて、情報処理装置１００のハードウェア構成例について説明する。
【００４５】
図３は、情報処理装置１００のハードウェア構成例を示すブロック図である。図３において、情報処理装置１００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、メモリ３０２と、ネットワークＩ／Ｆ（Ｉｎｔｅｒｆａｃｅ）３０３と、記録媒体Ｉ／Ｆ３０４と、記録媒体３０５とを有する。また、各構成部は、バス３００によってそれぞれ接続される。
【００４６】
ここで、ＣＰＵ３０１は、情報処理装置１００の全体の制御を司る。メモリ３０２は、例えば、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）およびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ３０１のワークエリアとして使用される。メモリ３０２に記憶されるプログラムは、ＣＰＵ３０１にロードされることで、コーディングされている処理をＣＰＵ３０１に実行させる。
【００４７】
ネットワークＩ／Ｆ３０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ３０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ３０３は、例えば、モデムやＬＡＮアダプタなどである。
【００４８】
記録媒体Ｉ／Ｆ３０４は、ＣＰＵ３０１の制御に従って記録媒体３０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ３０４は、例えば、ディスクドライブ、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）ポートなどである。記録媒体３０５は、記録媒体Ｉ／Ｆ３０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体３０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体３０５は、情報処理装置１００から着脱可能であってもよい。
【００４９】
情報処理装置１００は、上述した構成部のほか、例えば、キーボード、マウス、ディスプレイ、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を複数有していてもよい。また、情報処理装置１００は、記録媒体Ｉ／Ｆ３０４や記録媒体３０５を有していなくてもよい。
【００５０】
（グラフ情報テーブル４００のデータ構造）
次に、図４を用いて、グラフ情報テーブル４００のデータ構造の一例について説明する。グラフ情報テーブル４００は、例えば、図３に示した情報処理装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５１】
図４は、グラフ情報テーブル４００のデータ構造の一例を示す説明図である。図４に示すように、グラフ情報テーブル４００は、主語と、述語と、目的語とのフィールドを有する。グラフ情報テーブル４００は、各フィールドに情報が設定されることにより、グラフ情報をレコードとして記憶する。
【００５２】
主語のフィールドには、ナレッジグラフに含まれるノードを識別するラベルが設定される。ラベルは、化学分野に関する単語である。ラベルは、例えば、具体的な化合物名、または、抽象化合物名である。ラベルは、例えば、化合物の分子式や分子量、または、化合物の機能や用途などであってもよい。目的語のフィールドには、ナレッジグラフに含まれるノードを識別するラベルが設定される。
【００５３】
主語および目的語のフィールドには、ＵＲＩ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｉｄｅｎｔｉｆｉｅｒ）が設定されてもよい。述語のフィールドには、ノード間の関係性を示す述語が設定される。述語は、例えば、主語のフィールドに設定されたＵＲＩと、目的語のフィールドに設定されたＵＲＩとの関係性を示す。述語は、例えば、「ｌａｂｅｌ」、「ｉｓ−ａ」や「ｓａｍｅ−ａｓ」などである。
【００５４】
「ｌａｂｅｌ」は、主語のフィールドのＵＲＩが、目的語のフィールドの化合物名に付与された表記であることを示す。「ｉｓ−ａ」は、主語のフィールドのＵＲＩが、目的語のフィールドのＵＲＩの下位に包含されることを示す。「ｉｓ−ａ」は、例えば、具体的な化合物名に付与されたＵＲＩが、抽象化合物名に付与されたＵＲＩの下位に包含されることを示す。「ｓａｍｅ−ａｓ」は、ＵＲＩ間に同義関係が成立することを示す。
【００５５】
（辞書テーブル５００のデータ構造）
次に、図５を用いて、辞書テーブル５００のデータ構造の一例について説明する。辞書テーブル５００は、例えば、図３に示した情報処理装置１００のメモリ３０２や記録媒体３０５などの記憶領域により実現される。
【００５６】
図５は、辞書テーブル５００のデータ構造の一例を示す説明図である。図５に示すように、辞書テーブル５００は、化合物名と、ＵＲＩとのフィールドを有する。辞書テーブル５００は、各フィールドに情報が設定されることにより、辞書情報をレコードとして記憶する。
【００５７】
化合物名のフィールドには、化合物名が設定される。ＵＲＩのフィールドには、化合物名に予め付与されたＵＲＩが設定される。情報処理装置１００は、辞書テーブル５００ではなく、既存のナレッジグラフを記憶してもよい。
【００５８】
（クライアント装置２０１のハードウェア構成例）
次に、図６を用いて、図２に示したサービス提供システム２００に含まれるクライアント装置２０１のハードウェア構成例について説明する。
【００５９】
図６は、クライアント装置２０１のハードウェア構成例を示すブロック図である。図６において、クライアント装置２０１は、ＣＰＵ６０１と、メモリ６０２と、ネットワークＩ／Ｆ６０３と、記録媒体Ｉ／Ｆ６０４と、記録媒体６０５と、ディスプレイ６０６と、入力装置６０７とを有する。また、各構成部は、バス６００によってそれぞれ接続される。
【００６０】
ここで、ＣＰＵ６０１は、クライアント装置２０１の全体の制御を司る。メモリ６０２は、例えば、ＲＯＭ、ＲＡＭおよびフラッシュＲＯＭなどを有する。具体的には、例えば、フラッシュＲＯＭやＲＯＭが各種プログラムを記憶し、ＲＡＭがＣＰＵ６０１のワークエリアとして使用される。メモリ６０２に記憶されるプログラムは、ＣＰＵ６０１にロードされることで、コーディングされている処理をＣＰＵ６０１に実行させる。
【００６１】
ネットワークＩ／Ｆ６０３は、通信回線を通じてネットワーク２１０に接続され、ネットワーク２１０を介して他のコンピュータに接続される。そして、ネットワークＩ／Ｆ６０３は、ネットワーク２１０と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。ネットワークＩ／Ｆ６０３は、例えば、モデムやＬＡＮアダプタなどである。
【００６２】
記録媒体Ｉ／Ｆ６０４は、ＣＰＵ６０１の制御に従って記録媒体６０５に対するデータのリード／ライトを制御する。記録媒体Ｉ／Ｆ６０４は、例えば、ディスクドライブ、ＳＳＤ、ＵＳＢポートなどである。記録媒体６０５は、記録媒体Ｉ／Ｆ６０４の制御で書き込まれたデータを記憶する不揮発メモリである。記録媒体６０５は、例えば、ディスク、半導体メモリ、ＵＳＢメモリなどである。記録媒体６０５は、クライアント装置２０１から着脱可能であってもよい。
【００６３】
ディスプレイ６０６は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。ディスプレイ６０６は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）、液晶ディスプレイ、有機ＥＬ（Ｅｌｅｃｔｒｏｌｕｍｉｎｅｓｃｅｎｃｅ）ディスプレイなどである。入力装置６０７は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う。入力装置６０７は、キーボードやマウスなどであってもよく、また、タッチパネル式の入力パッドやテンキーなどであってもよい。
【００６４】
クライアント装置２０１は、上述した構成部の他、例えば、プリンタ、スキャナ、マイク、スピーカーなどを有してもよい。また、クライアント装置２０１は、記録媒体Ｉ／Ｆ６０４や記録媒体６０５を複数有していてもよい。また、クライアント装置２０１は、記録媒体Ｉ／Ｆ６０４や記録媒体６０５を有していなくてもよい。
【００６５】
（情報処理装置１００の機能的構成例）
次に、図７を用いて、情報処理装置１００の機能的構成例について説明する。
【００６６】
図７は、情報処理装置１００の機能的構成例を示すブロック図である。情報処理装置１００は、記憶部７００と、取得部７０１と、第１の生成部７０２と、第２の生成部７０３と、第１の検索部７０４と、第２の検索部７０５と、出力部７０６とを含む。
【００６７】
記憶部７００は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域によって実現される。以下では、記憶部７００が、情報処理装置１００に含まれる場合について説明するが、これに限らない。例えば、記憶部７００が、情報処理装置１００とは異なる装置に含まれ、記憶部７００の記憶内容が情報処理装置１００から参照可能である場合があってもよい。
【００６８】
取得部７０１〜出力部７０６は、制御部の一例として機能する。取得部７０１〜出力部７０６は、具体的には、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶されたプログラムをＣＰＵ３０１に実行させることにより、または、ネットワークＩ／Ｆ３０３により、その機能を実現する。各機能部の処理結果は、例えば、図３に示したメモリ３０２や記録媒体３０５などの記憶領域に記憶される。
【００６９】
記憶部７００は、各機能部の処理において参照され、または更新される各種情報を記憶する。記憶部７００は、ナレッジグラフを記憶可能である。記憶部７００は、例えば、図４に示したグラフ情報テーブル４００を用いて、ナレッジグラフを記憶する。記憶部７００は、具体的には、図４に示したグラフ情報テーブル４００を用いて、ナレッジグラフに含まれるノードに付与されたラベルと、ラベル間の関係性とを記憶する。
【００７０】
また、記憶部７００は、例えば、化合物名を示す辞書を記憶してもよい。記憶部７００は、具体的には、図５に示した辞書テーブル５００を記憶する。また、記憶部７００は、例えば、文章集合を記憶してもよい。文章集合は、例えば、コーパスである。
【００７１】
取得部７０１は、各機能部の処理に用いられる各種情報を取得する。取得部７０１は、取得した各種情報を、記憶部７００に記憶し、または、各機能部に出力する。また、取得部７０１は、記憶部７００に記憶しておいた各種情報を、各機能部に出力してもよい。取得部７０１は、例えば、利用者の操作入力に基づき、各種情報を取得する。取得部７０１は、例えば、情報処理装置１００とは異なる装置から、各種情報を受信してもよい。
【００７２】
取得部７０１は、例えば、辞書および文章集合を取得する。取得部７０１は、より具体的には、辞書テーブル５００と、コーパスとを取得する。これにより、取得部７０１は、化合物名を示すノードを自動生成するための指標となる情報を取得し、各機能部に提供することができる。取得部７０１は、例えば、化合物名を示すノードを生成可能に、第１の生成部７０２に辞書および文章集合を提供することができる。
【００７３】
また、取得部７０１は、例えば、第１の生成部７０２で化合物名を示すノードを生成しない場合には、既存のナレッジグラフから、化合物名を示すノードを取得してもよい。これにより、取得部７０１は、第１の生成部７０２で化合物名を示すノードを生成しなくても、第２の生成部７０３で抽象化合物名を特定可能に、第２の生成部７０３に化合物名を示すノードを提供することができる。
【００７４】
また、取得部７０１は、第１の化合物名に関する検索クエリを取得する。第１の化合物名は、具体的な化合物名、または、抽象化合物名である。これにより、取得部７０１は、第１の検索部７０４および第２の検索部７０５で、検索対象とする第１の化合物名を特定可能にすることができ、第１の検索部７０４および第２の検索部７０５に動作を開始させることができる。
【００７５】
第１の生成部７０２は、文章集合から、化合物名としての条件を満たす複数の文字列を抽出する。第１の生成部７０２は、例えば、コーパスから、カタカナ、アルファベット、数字、記号、および、一部の漢字などの特定の文字が連続する文字列を、化合物名の候補として抽出する。第１の生成部７０２は、具体的には、文字列「５−（３，４−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」などを、化合物名の候補として抽出する。化合物名の候補として、複数の文字列を抽出する一例については、図１０を用いて後述する。これにより、第１の生成部７０２は、化合物名の候補を抽出し、化合物名を示すノードを生成する指標を取得することができる。
【００７６】
第１の生成部７０２は、化合物名を記憶する辞書情報を参照して、抽出した複数の文字列のうち、化合物名であると判定した文字列を示すノードを生成し、生成したノードを含むナレッジグラフを生成する。第１の生成部７０２は、例えば、抽出した化合物名の候補のうち、辞書テーブル５００に登録された化合物名と一致する候補を化合物名と判定し、辞書テーブル５００に登録されたＵＲＩを付与する。そして、第１の生成部７０２は、化合物名に付与したＵＲＩを、グラフ情報テーブル４００を用いて記憶し、化合物名を示すノードを含むナレッジグラフを生成する。第１の生成部７０２は、具体的には、化合物名の候補「５−（３，４−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を化合物名と判定し、ＵＲＩを付与する。
【００７７】
これにより、第１の生成部７０２は、ナレッジグラフに含める化合物名を示すノードを生成することができ、ナレッジグラフを生成することができる。また、第１の生成部７０２は、例えば、コーパスに基づき化合物名を示すノードを生成するため、化合物名を示すノードの数の膨大化を抑制することができる。第１の生成部７０２は、具体的には、サービス利用者が技術文書を閲覧する際に技術文書に出現しやすいと判断される化合物名を示すノードであり、サービスに利用する観点からナレッジグラフに含むことが好ましい化合物名を示すノードを生成することができる。
【００７８】
ここでは、第１の生成部７０２が、コーパスおよび辞書情報を参照して、ナレッジグラフを生成する場合について説明したが、これに限らない。例えば、第１の生成部７０２が、取得部７０１が取得した１以上のノードを含むナレッジグラフを生成する場合があってもよい。
【００７９】
第２の生成部７０３は、生成したナレッジグラフ内のいずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名を示す新たなノードを生成し、いずれかのノードの上位にリンク付けして、ナレッジグラフに追加する。
【００８０】
第２の生成部７０３は、例えば、生成したナレッジグラフ内のいずれかのノードを選択する。次に、第２の生成部７０３は、選択したいずれかのノードが示す化合物名から、置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列を除去した抽象化合物名を示す新たなノードを生成する。除去する文字列は、具体的には、１以上の数字を所定の記号で区切って、１以上の数字のそれぞれにより１以上の置換基のそれぞれの結合位置を示した文字列である。そして、第２の生成部７０３は、生成した新たなノードを、選択したいずれかのノードの上位にリンク付けして、ナレッジグラフに追加する。
【００８１】
第２の生成部７０３は、具体的には、生成したナレッジグラフ内の、化合物名「５−（３，４−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を示すノードを選択する。次に、第２の生成部７０３は、選択したノードが示す化合物名「５−（３，４−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」から、１以上の数字を所定の記号で区切った文字列「４，５」を除去した抽象化合物名「５−（３，４−ジヒドロキシベンジル）−ジヒドロフラン−２（３Ｈ）−オン」を特定する。そして、第２の生成部７０３は、特定した抽象化合物名「５−（３，４−ジヒドロキシベンジル）−ジヒドロフラン−２（３Ｈ）−オン」を示す新たなノードを生成し、選択したノードの上位にリンク付けして、ナレッジグラフに追加する。
【００８２】
第２の生成部７０３は、より具体的には、化合物名「５−（３，４−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を示すノードに付与されたＵＲＩに、「ｉｓ−ａ」の関係性で、抽象化合物名「５−（３，４−ジヒドロキシベンジル）−ジヒドロフラン−２（３Ｈ）−オン」に付与されたＵＲＩをリンク付けする。そして、第２の生成部７０３は、リンク付けした結果を、グラフ情報テーブル４００を用いて記憶する。
【００８３】
また、第２の生成部７０３は、具体的には、選択したノードが示す化合物名「５−（３，４−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」から、１以上の数字を所定の記号で区切った文字列「３，４」を除去した抽象化合物名「５−（ジヒドロキシベンジル）−ジヒドロフラン−２（３Ｈ）−オン」を特定してもよい。そして、第２の生成部７０３は、特定した抽象化合物名「５−（ジヒドロキシベンジル）−ジヒドロフラン−２（３Ｈ）−オン」を示す新たなノードを生成し、選択したノードの上位にリンク付けして、ナレッジグラフに追加する。抽象化合物名を特定する一例については、図１１および図１２を用いて後述する。これにより、第２の生成部７０３は、抽象化合物名を特定し、抽象化合物名を示すノードを生成し、ナレッジグラフに追加することができる。
【００８４】
第２の生成部７０３は、例えば、ナレッジグラフに追加した新たなノードを選択し、再帰的に、抽象化合物名を特定し、特定した抽象化合物名を示す新たなノードを生成してもよい。第２の生成部７０３は、具体的には、ナレッジグラフ内の、抽象化合物名「５−（３，４−ジヒドロキシベンジル）−ジヒドロフラン−２（３Ｈ）−オン」を示すノードを選択する。次に、第２の生成部７０３は、選択したノードが示す抽象化合物名「５−（３，４−ジヒドロキシベンジル）−ジヒドロフラン−２（３Ｈ）−オン」から、１以上の数字を所定の記号で区切った文字列「３，４」を除去した抽象化合物名「５−（ジヒドロキシベンジル）−ジヒドロフラン−２（３Ｈ）−オン」を特定する。そして、第２の生成部７０３は、特定した抽象化合物名「５−（ジヒドロキシベンジル）−ジヒドロフラン−２（３Ｈ）−オン」を示す新たなノードを生成し、選択したノードの上位にリンク付けして、ナレッジグラフに追加する。これにより、第２の生成部７０３は、抽象化合物名を再帰的に特定し、抽象化合物名を示すノードを生成し、さらにナレッジグラフに追加することができる。
【００８５】
第２の生成部７０３は、生成したナレッジグラフ内に、置換基の結合位置を示す文字列を除去すると、特定した抽象化合物名と同じ抽象化合物名になる化合物名を示すノードが、所定の数以上存在するか否かを判定してもよい。所定の数は、例えば、２である。また、第２の生成部７０３は、置換基の結合位置を示す文字列を除去すると、特定した抽象化合物名との間で、対応する構造情報に同義関係が成立する抽象化合物名を示すノードが、所定の数以上存在するか否かを判定してもよい。構造情報は、例えば、示性式である。構造情報は、構造を表す表記法、例えば、ＳＭＩＬＥＳ、ＩｎＣｈＩなどに基づく情報であってもよい。
【００８６】
そして、第２の生成部７０３は、所定の数以上存在する場合に、特定した抽象化合物名を示す新たなノードを生成する。一方で、第２の生成部７０３は、所定の数以上存在しない場合には、特定した抽象化合物名を示す新たなノードを生成しなくてよい。これにより、第２の生成部７０３は、抽象化合物名を示すノードの数の膨大化を抑制することができる。ここで、例えば、抽象化合物名の下位に包含される化合物名が１つである場合、第２の生成部７０３が、抽象化合物名を示すノードを生成しても、サービスに活用されにくいことが考えられる。このため、第２の生成部７０３は、サービスに活用されにくい抽象化合物名を示すノードを生成せず、ナレッジグラフのサイズの増大化を抑制し、サービスを効率よく提供可能にすることができる。
【００８７】
第２の生成部７０３は、文章集合に、いずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名が閾値以上出現する場合に、抽象化合物名を示す新たなノードを生成してもよい。閾値は、例えば、１である。これにより、第２の生成部７０３は、抽象化合物名を示すノードの数の膨大化を抑制することができる。第２の生成部７０３は、例えば、サービス利用者が技術文書を閲覧する際に技術文書に出現しやすいと判断される抽象化合物名を示すノードを生成しやすくすることができる。また、第２の生成部７０３は、例えば、サービスに利用する観点からナレッジグラフに含むことが好ましい抽象化合物名を示すノードを生成しやすくすることができる。
【００８８】
第２の生成部７０３は、同義関係が成立すると判定した抽象化合物名を示すノード同士をリンク付けしてもよい。第２の生成部７０３は、例えば、同義関係が成立すると判定した抽象化合物名に付与されたＵＲＩ同士を、「ｓａｍｅ−ａｓ」の関係性でリンク付けし、グラフ情報テーブル４００を用いて記憶する。これにより、第２の生成部７０３は、ナレッジグラフ上でノード間を適切にリンク付けすることができる。
【００８９】
第１の検索部７０４は、取得した検索クエリに基づいて、第１の化合物名に含まれる置換基の結合位置を示す文字列を特定する。第１の検索部７０４は、例えば、検索クエリが示す化合物名から、置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列を除去した抽象化合物名を示す新たなノードを生成する。除去する文字列は、具体的には、１以上の数字を所定の記号で区切って、１以上の数字のそれぞれにより１以上の置換基のそれぞれの結合位置を示した文字列である。第１の検索部７０４は、具体的には、検索クエリが示す第１の化合物名「５−（３−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」に含まれる文字列「３−」を特定する。
【００９０】
第１の検索部７０４は、第１の化合物名から、特定した文字列を除去した抽象化合物名を生成する。第１の検索部７０４は、具体的には、検索クエリが示す第１の化合物名「５−（３−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」から、特定した文字列「３−」を除去した抽象化合物名「５−（ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を生成する。
【００９１】
第１の検索部７０４は、ナレッジグラフ内から、生成した抽象化合物名を示すノードを検索する。第１の検索部７０４は、具体的には、ナレッジグラフ内から、生成した抽象化合物名「５−（ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を示すノードを検索する。これにより、第１の検索部７０４は、ナレッジグラフ内に、取得した検索クエリが示す第１の化合物名を直接示すノードが存在しなくても、取得した検索クエリが示す第１の化合物名を包含する抽象化合物名を示すノードを発見することができる。
【００９２】
また、第１の検索部７０４は、ナレッジグラフ内から、取得した検索クエリが示す第１の化合物名を直接示すノードを検索してもよい。これにより、第１の検索部７０４は、ナレッジグラフ内に、取得した検索クエリが示す第１の化合物名を直接示すノードが存在すれば、取得した検索クエリが示す第１の化合物名を直接示すノードを発見することができる。
【００９３】
また、第１の検索部７０４は、抽象化合物名を示すノードを発見しない場合に、さらに、特定済みの文字列とは異なる、第１の化合物名に含まれる置換基の結合位置を示す文字列を特定してもよい。そして、第１の検索部７０４は、第１の化合物名から、特定した文字列をすべて除去した抽象化合物名を生成し、ナレッジグラフ内から、生成した抽象化合物名を示すノードを検索する。
【００９４】
第１の検索部７０４は、具体的には、抽象化合物名「５−（ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を示すノードを発見しない場合に、第１の化合物名「５−（３−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」に含まれる文字列「５−」を特定する。次に、第１の検索部７０４は、第１の化合物名「５−（３−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」から、特定した文字列「３−」および「５−」を除去した抽象化合物名「（ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を生成する。
【００９５】
そして、第１の検索部７０４は、ナレッジグラフ内から、生成した抽象化合物名「（ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を示すノードを検索する。これにより、第１の検索部７０４は、ナレッジグラフ内に、前回生成した抽象化合物名を示すノードが存在しなくても、さらに抽象度を高めた別の抽象化合物名を生成し、第１の化合物名を包含する抽象化合物名を示すノードを発見することができる。
【００９６】
第２の検索部７０５は、第１の検索部７０４が抽象化合物名を示すノードを発見した場合に、ナレッジグラフ内で、発見したノードを起点に、特定した文字列に対応する化合物名を示すノードへのリンクを辿って、第１の化合物名に対応するノードを検索する。特定した文字列に対応する化合物名は、特定した文字列を、第１の化合物名と同様の位置に含む化合物名である。第２の検索部７０５は、例えば、ナレッジグラフ内で、発見したノードを起点に、特定した文字列を、第１の化合物名と同様の位置に含む化合物名を示すノードへのリンクを辿って、第１の化合物名に対応するノードを検索する。
【００９７】
ここで、第１の検索部７０４が、抽象化合物名「５−（ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を示すノードを発見した場合を一例とする。第２の検索部７０５は、具体的には、発見した抽象化合物名「５−（ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を示すノードを起点に、文字列「３−」を含む化合物名「５−（３，４−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」へのリンクを辿って、第１の化合物名に対応するノードを検索する。これにより、第２の検索部７０５は、ナレッジグラフ内に、第１の化合物名を直接示すノードが存在しなくても、第１の化合物名に対応する抽象化合物名を示すノードを発見することができる。第２の検索部７０５は、例えば、第１の化合物名を包含する抽象化合物名のうち、最も下位に存在する抽象化合物名を示すノードを発見することができる。
【００９８】
出力部７０６は、いずれかの機能部の処理結果を出力する。出力形式は、例えば、ディスプレイへの表示、プリンタへの印刷出力、ネットワークＩ／Ｆ３０３による外部装置への送信、または、メモリ３０２や記録媒体３０５などの記憶領域への記憶である。これにより、出力部７０６は、各機能部の処理結果を利用者に通知可能にすることができる。
【００９９】
出力部７０６は、例えば、第１の生成部７０２が生成し、第２の生成部７０３がノードを追加したナレッジグラフを出力する。出力部７０６は、具体的には、図４に示したグラフ情報テーブル４００を出力する。これにより、出力部７０６は、情報検索、情報解析、または、読解支援などのサービスに、ナレッジグラフを利用可能にすることができる。また、出力部７０６は、例えば、第１の生成部７０２が生成し、第２の生成部７０３がノードを追加したナレッジグラフを、クライアント装置２０１に表示させてもよい。これにより、出力部７０６は、ナレッジグラフをサービス利用者が閲覧可能にすることができる。
【０１００】
出力部７０６は、例えば、第２の検索部７０５が発見したノードが示す抽象化合物名、第２の検索部７０５が発見したノードの下位に存在するノードが示す化合物の分子式や分子量、または、化合物の機能や用途などを出力する。出力部７０６は、具体的には、第２の検索部７０５が発見したノードが示す抽象化合物名、第２の検索部７０５が発見したノードの下位に存在するノードが示す化合物の分子式や分子量、または、化合物の機能や用途などを、クライアント装置２０１に表示させる。これにより、出力部７０６は、抽象化合物名、化合物の分子式や分子量、または、化合物の機能や用途などを、サービス利用者が閲覧可能にすることができ、情報検索、情報解析、または、読解支援などのサービスを実現することができる。
【０１０１】
ここでは、情報処理装置１００が、第１の生成部７０２および第２の生成部７０３により、ナレッジグラフを生成する場合について説明したが、これに限らない。例えば、情報処理装置１００が、第１の生成部７０２および第２の生成部７０３を有さず、化合物名を示すノードを含むナレッジグラフを生成せず、ナレッジグラフを取得する場合があってもよい。
【０１０２】
（情報処理装置１００の具体的な機能的構成例）
次に、図８を用いて、上述した制御部を実現する、情報処理装置１００の具体的な機能的構成例について説明する。
【０１０３】
図８は、情報処理装置１００の具体的な機能的構成例を示すブロック図である。情報処理装置１００は、化合物名判定部８０１と、化合物名抽象化部８０２と、ＵＲＩ生成部８０３と、リンク生成部８０４と、リンク数集計部８０５と、ノード確定部８０６とを含む。化合物名判定部８０１と、化合物名抽象化部８０２と、ＵＲＩ生成部８０３と、リンク生成部８０４と、リンク数集計部８０５と、ノード確定部８０６とは、化合物名のリスト８２０から、ナレッジグラフを生成する動作を実現する。
【０１０４】
化合物名判定部８０１は、化合物名のリスト８２０を受け付ける。化合物名判定部８０１は、化合物名のリスト８２０に含まれる１以上の化合物名のそれぞれに、置換基の結合位置を示す数字が含まれるか否かを判定する。化合物名判定部８０１は、置換基の結合位置を示す数字が含まれる化合物名を、化合物名抽象化部８０２に出力する。
【０１０５】
化合物名抽象化部８０２は、化合物名を受け付けると、化合物名から置換基の結合位置を示した文字列を除去し、抽象化合物名を生成する。ＵＲＩ生成部８０３は、抽象化合物名に新規ＵＲＩを付与する。ＵＲＩ生成部８０３は、抽象化合物名に新規ＵＲＩを付与した結果を、図４に示したグラフ情報テーブル４００を用いて記憶することにより、抽象化合物名を示すノードを生成する。
【０１０６】
リンク生成部８０４は、化合物名に付与されたＵＲＩと、化合物名から文字列を除去した抽象化合物名に付与されたＵＲＩとをリンク付けする。リンク生成部８０４は、リンク付けした結果を、図４に示したグラフ情報テーブル４００を用いて記憶することにより、ノード間をリンク付けする。リンク数集計部８０５は、化合物名に付与されたＵＲＩごとに、リンク付けされた他のＵＲＩの数を集計する。
【０１０７】
ノード確定部８０６は、化合物名に付与されたＵＲＩにリンク付けされた他のＵＲＩの数が閾値以下であるか否かを判定する。ノード確定部８０６は、閾値以上であれば、化合物名を示すノードを、ナレッジグラフに残すノードとして確定する。ノード確定部８０６は、閾値以下であれば、化合物名に付与されたＵＲＩを、図４に示したグラフ情報テーブル４００から削除することにより、化合物名を示すノードを削除する。
【０１０８】
また、情報処理装置１００は、パターン生成部８０７と、ノード検索部８０８と、具体化部８０９と、情報生成部８１０とを含む。化合物名判定部８０１と、化合物名抽象化部８０２と、パターン生成部８０７と、ノード検索部８０８と、具体化部８０９と、情報生成部８１０とは、検索クエリ８３０の化合物名に対応するノードを検索する動作を実現する。
【０１０９】
化合物名判定部８０１は、検索クエリ８３０を受け付ける。化合物名判定部８０１は、検索クエリ８３０の化合物名に、置換基の結合位置を示す数字が含まれるか否かを判定する。化合物名判定部８０１は、置換基の結合位置を示す数字が含まれる場合に、検索クエリ８３０の化合物名を、化合物名抽象化部８０２に出力する。また、化合物名判定部８０１は、置換基の結合位置を示す数字が含まれない場合に、検索クエリ８３０の化合物名を、ノード検索部８０８に出力してもよい。また、化合物名判定部８０１は、置換基の結合位置を示す数字が含まれる場合にも、検索クエリ８３０の化合物名を、ノード検索部８０８に出力してもよい。
【０１１０】
化合物名抽象化部８０２は、化合物名を受け付けると、化合物名から置換基の結合位置を示した文字列を除去し、抽象化合物名を生成する。パターン生成部８０７は、抽象化合物を生成する際に、文字列を除去したパターンを生成して記憶する。ノード検索部８０８は、ナレッジグラフから、抽象化合物名を示すノードを検索する。ノード検索部８０８は、ナレッジグラフから、検索クエリ８３０の化合物名を直接示すノードを検索してもよい。
【０１１１】
具体化部８０９は、パターンを参照して、除去した文字列を検索クエリ８３０の化合物名と同じ位置に含む化合物名を生成する。ノード検索部８０８は、ナレッジグラフから、具体化部８０９が生成した化合物名を示すノードの方向に、検索クエリ８３０の化合物名に対応するノードを検索する。情報生成部８１０は、発見された検索クエリ８３０の化合物名を直接示すノード、または、検索クエリ８３０の化合物名に対応するノードに基づいて、化合物の分子式や分子量、または、化合物の機能や用途などの属性情報を生成して出力する。
【０１１２】
（情報処理装置１００の動作例）
次に、図９〜図１７を用いて、情報処理装置１００の動作例について説明する。まず、図９を用いて、情報処理装置１００がナレッジグラフを生成する流れについて説明する。
【０１１３】
図９は、ナレッジグラフを生成する流れを示す説明図である。図９において、情報処理装置１００は、コーパスや辞書情報を参照して、化合物名を特定し、特定した化合物名を示すノード９００を生成する。また、情報処理装置１００は、ノード９００が示す化合物名から、置換基の結合位置を示す文字列を除去した抽象化合物名を示すノード９１０を生成する。そして、情報処理装置１００は、ノード９１０を、ノード９００の上位にリンク付けすることにより、ナレッジグラフを形成していく。
【０１１４】
次に、図１０〜図１３を用いて、情報処理装置１００が、ナレッジグラフを生成する一例について説明する。具体的には、まず、図１０を用いて、情報処理装置１００が、抽象化合物名を生成する元となる化合物名を抽出する一例について説明する。
【０１１５】
図１０は、化合物名を抽出する一例を示す説明図である。図１０において、（１０−１）情報処理装置１００は、特許文献などを含むコーパスから、化合物名の候補を抽出する。ここで、例えば、日本語の文章では、化合物名が、カタカナ、アルファベット、数字、記号、および、一部の漢字などの特定の文字により記述される傾向がある。このため、情報処理装置１００は、特定の文字が連続する文字列を、化合物名の候補として抽出する。
【０１１６】
（１０−２）情報処理装置１００は、化合物名の候補のうち、辞書テーブル５００に登録された化合物名と一致する候補を、ノードを生成する対象になる化合物名として特定し、化合物名のリスト１０００を生成する。そして、情報処理装置１００は、特定した化合物名に対応付けて辞書テーブル５００に登録されたＵＲＩを検索し、特定した化合物名に付与する。ＵＲＩは、ノードのラベルに対応する。ここで、情報処理装置１００は、化合物にＵＲＩを付与した結果を、グラフ情報テーブル４００を用いて記憶することにより、特定した化合物名を示すノードを生成する。
【０１１７】
図１０の例では、化合物名のリスト１０００は、「（２Ｓ）−２−アミノ−２−（４−ヒドロキシフェニル）酢酸」を含む。化合物名のリスト１０００は、「（２Ｒ）−２α，３，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」を含む。化合物名のリスト１０００は、「５−（３，４−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を含む。化合物名のリスト１０００は、「プロパン」を含む。
【０１１８】
（１０−３）情報処理装置１００は、生成した化合物名のリスト１０００から、置換基の結合位置を示す数字を含む化合物名を、抽象化合物名を生成する元となる化合物名として抽出し、化合物名のリスト１０１０を生成する。ここで、情報処理装置１００は、文字列「２Ｓ」や文字列「３Ｅ」などのアルファベットに接続された数字「２」や数字「３」は、置換基の結合位置を示さない数字として扱う。
【０１１９】
図１０の例では、化合物名のリスト１０１０は、「（２Ｓ）−２−アミノ−２−（４−ヒドロキシフェニル）酢酸」を含む。化合物名のリスト１０１０は、「（２Ｒ）−２α，３，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」を含む。化合物名のリスト１０１０は、「５−（３，４−ジヒドロキシベンジル）−４，５−ジヒドロフラン−２（３Ｈ）−オン」を含む。
【０１２０】
次に、図１１および図１２を用いて、情報処理装置１００が、抽出した化合物名から、抽象化合物名を生成する一例について説明する。
【０１２１】
図１１および図１２は、抽象化合物名を生成する一例を示す説明図である。図１１において、（１１−１）情報処理装置１００は、化合物名のリスト１０１０から、化合物名１１００を選択する。化合物名１１００は、「（２Ｒ）−２α，３，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」である。
【０１２２】
（１１−２）情報処理装置１００は、化合物名１１００から、１以上の置換基の結合位置を示し、１以上の数字と所定の記号とが連続した文字列１１０１〜１１０８を特定する。図中では、文字列１１０１〜１１０８には、下線が付されている。文字列１１０１〜１１０８は、それぞれ「３，７，８」、「４」、「５」、「１，３」、「４」、「２，３，６，９」、「１，２」、「６，９」である。次に、図１２の説明に移行する。
【０１２３】
図１２において、情報処理装置１００は、化合物名１１００から、文字列１１０１〜１１０８を再帰的に除去し、抽象化合物名を生成する。図１２の例では、情報処理装置１００は、化合物名１１００から、文字列１１０１〜１１０８のそれぞれを除去し、抽象化合物名１２０１〜１２０３などを生成し、新規ＵＲＩを付与する。新規ＵＲＩは、ノードのラベルに対応する。ここで、情報処理装置１００は、抽象化合物名１２０１〜１２０３などに新規ＵＲＩを付与した結果を、グラフ情報テーブル４００を用いて記憶することにより、抽象化合物名１２０１〜１２０３などを示すノードを生成する。
【０１２４】
さらに、情報処理装置１００は、抽象化合物名１２０１から、文字列１１０２〜１１０８のそれぞれを除去し、再帰的に、抽象化合物名１２１１，１２１２などを生成し、新規ＵＲＩを付与する。ここで、情報処理装置１００は、抽象化合物名１２１１，１２１２などに新規ＵＲＩを付与した結果を、グラフ情報テーブル４００を用いて記憶することにより、抽象化合物名１２１１，１２１２などを示すノードを生成する。同様に、情報処理装置１００は、抽象化合物名１２１１，１２１２などからも、再帰的に、抽象化合物名を生成することを繰り返し、新規ＵＲＩを付与していき、グラフ情報テーブル４００を更新する。
【０１２５】
同様に、情報処理装置１００は、抽象化合物名１２０２，１２０３などからも、再帰的に、抽象化合物名を生成することを繰り返し、新規ＵＲＩを付与していき、グラフ情報テーブル４００を更新する。また、情報処理装置１００は、化合物名のリスト１０１０から、化合物名１１００以外の化合物名も選択し、再帰的に、抽象化合物名を生成することを繰り返し、新規ＵＲＩを付与していき、グラフ情報テーブル４００を更新する。
【０１２６】
次に、図１３を用いて、情報処理装置１００が、生成した抽象化合物名を示すノードを含むナレッジグラフ１３００を生成する一例について説明する。
【０１２７】
図１３は、ナレッジグラフ１３００を生成する一例を示す説明図である。図１３において、情報処理装置１００は、化合物名に付与されたＵＲＩに、「ｉｓ−ａ」の関係性で、当該化合物名から文字列を除去した抽象化合物名に付与されたＵＲＩをリンク付けする。また、情報処理装置１００は、抽象化合物名に付与されたＵＲＩに、「ｉｓ−ａ」の関係性で、当該抽象化合物名から文字列を除去した抽象化合物名に付与されたＵＲＩをリンク付けする。そして、情報処理装置１００は、リンク付けした結果を、グラフ情報テーブル４００を用いて記憶することにより、ノード間をリンク付けし、ナレッジグラフ１３００を生成する。図１３の例では、情報処理装置１００は、ノード１３０１〜１３０４などを含むナレッジグラフ１３００を生成する。
【０１２８】
これにより、情報処理装置１００は、ナレッジグラフに、化合物名と抽象化合物名との関係性、および、抽象化合物名同士の関係性を反映することができる。結果として、情報処理装置１００は、情報検索、情報解析、または、読解支援などのサービスに利用する観点から好ましいと判断されるナレッジグラフを生成可能にすることができる。そして、情報処理装置１００は、ナレッジグラフを利用し、情報検索、情報解析、または、読解支援などを効果的に実施可能にすることができる。情報処理装置１００は、例えば、人が、化学分野の特許文献や技術論文などの技術文書を読解する際に、技術文書に記載された抽象化合物名から、化合物の分子式や分子量、または、化合物の機能や用途などを検索可能にすることができる。
【０１２９】
また、情報処理装置１００は、化合物名を示すノードから上位となる抽象化合物名を示すノードを生成することができる。このため、情報処理装置１００は、化合物名の上位概念を示すノードがある場合には、化合物名を示すノードと、化合物名の上位概念を示すノードとの中間に、抽象化合物名を示すノードを追加することができる。
【０１３０】
ここで、情報処理装置１００は、いずれかの抽象化合物名に付与された新規ＵＲＩに、「ｉｓ−ａ」の関係性でリンク付けされた、化合物名に付与されたＵＲＩの数を計数し、ＵＲＩの数が閾値以上であるか否かを判定してもよい。閾値は、例えば、２である。そして、情報処理装置１００は、ＵＲＩの数が閾値未満である場合には、いずれかの抽象化合物名に付与された新規ＵＲＩを削除してもよい。
【０１３１】
例えば、いずれかの抽象化合物名に付与された新規ＵＲＩに、「ｉｓ−ａ」の関係性でリンク付けされた、化合物名に付与されたＵＲＩの数が、１つである場合が考えられる。この場合、いずれかの抽象化合物名は、１つの化合物名しか包含しないことになるため、いずれかの抽象化合物名を示すノードを生成しても、サービスに利用する観点から有用ではない可能性がある。そこで、情報処理装置１００は、いずれかの抽象化合物名を示すノードを生成せず、抽象化合物名を示すノードの数の膨大化を抑制するようにしてもよい。
【０１３２】
ここで、抽出した化合物名の候補の中には、化合物名の他に、抽象化合物名が含まれることがあり、化合物とは関係ない文字列が含まれることもある。これに対し、情報処理装置１００は、辞書テーブル５００を参照して、抽象化合物名や化合物とは関係ない文字列を示すノードを、化合物名を示すノードとして誤って生成しないようにすることができる。
【０１３３】
また、情報処理装置１００は、辞書テーブル５００に登録された化合物名でも、抽出した化合物名の候補の中に存在しなければ、化合物名を示すノードを生成しないようにすることができる。このため、情報処理装置１００は、技術文書に出現しやすい化合物名を示すノードであるため、サービスに利用する観点からナレッジグラフに含むことが好ましい化合物名を示すノードを生成することができる。また、情報処理装置１００は、技術文書に出現しにくい化合物名を示すノードであるため、サービスに利用する観点からナレッジグラフに含まなくてもよい化合物名を示すノードを生成しないようにすることができる。
【０１３４】
結果として、情報処理装置１００は、化合物名を示すノードの数の膨大化を抑制することができる。そして、情報処理装置１００は、ナレッジグラフのサイズの増大化を抑制することができ、ナレッジグラフを利用する際のパフォーマンスの低下を抑制することができる。情報処理装置１００は、例えば、ナレッジグラフを利用する際に、ナレッジグラフから所定の化合物名を示すノードを検索する所要時間などの低減化を図ることができる。
【０１３５】
次に、図１４〜図１７を用いて、情報処理装置１００が、ナレッジグラフ１３００を利用する一例について説明する。まず、図１４を用いて、情報処理装置１００が、検索クエリ１４００を受け付け、ナレッジグラフ１３００から、検索クエリ１４００の化合物名を直接示すノードを検索する一例について説明する。
【０１３６】
図１４は、検索クエリ１４００の化合物名を直接示すノードを検索する一例を示す説明図である。図１４において、情報処理装置１００は、検索クエリ１４００を受け付ける。検索クエリ１４００は、化合物名「（２Ｒ）−２α，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」を示す。情報処理装置１００は、ナレッジグラフ１３００から、検索クエリ１４００の化合物名を直接示すノードを検索する。
【０１３７】
情報処理装置１００は、ナレッジグラフ１３００から、検索クエリ１４００の化合物名を直接示すノードを発見した場合には、発見したノードにリンク付けられたノードが示す、化合物の分子式や分子量、または、化合物の機能や用途などを取得してもよい。これにより、情報処理装置１００は、化合物の分子式や分子量、または、化合物の機能や用途などに基づいて、情報検索、情報解析、または、読解支援などのサービスを実現することができる。図１４の例では、情報処理装置１００は、ナレッジグラフ１３００から、検索クエリ１４００の化合物名を直接示すノードを発見しなかったとする。
【０１３８】
次に、図１５〜図１７を用いて、情報処理装置１００は、ナレッジグラフ１３００から、検索クエリの化合物名に対応するノードを検索する一例について説明する。
【０１３９】
図１５〜図１７は、検索クエリの化合物名に対応するノードを検索する一例を示す説明図である。図１５において、情報処理装置１００は、検索クエリ１４００の化合物名１５００から、１以上の置換基の結合位置を示し、１以上の数字と所定の記号とが連続した文字列１５０１〜１５０８を特定する。図中では、文字列１５０１〜１５０８には、下線が付されている。
【０１４０】
化合物名１５００は、「（２Ｒ）−２α，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」である。文字列１５０１〜１５０８は、それぞれ「７，８」、「４」、「５」、「１，３」、「４」、「２，３，６，９」、「１，２」、「６，９」である。次に、図１６の説明に移行する。
【０１４１】
図１６において、情報処理装置１００は、化合物名１５００から、特定した文字列１５０１を除去し、抽象化合物名１６００を生成する。抽象化合物名１６００は、「（２Ｒ）−２α−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」である。
【０１４２】
情報処理装置１００は、ナレッジグラフ１３００から、生成した抽象化合物名１６００を示すノードを検索する。ここで、情報処理装置１００は、生成した抽象化合物名１６００を示すノードを発見しなければ、再帰的に、文字列１５０２〜１５０８を除去し、別の抽象化合物名を示すノードを検索してもよい。図１６の例では、情報処理装置１００は、生成した抽象化合物名１６００を示すノード１６１０を発見したとする。次に、図１７の説明に移行する。
【０１４３】
図１７において、情報処理装置１００は、除去した文字列１５０１を、化合物名１５００と同様の位置に含む化合物名１７１０を示すノード１７０１を特定する。情報処理装置１００は、発見したノード１６１０を起点に、特定したノード１７０１へのリンクを辿って、化合物名１５００に対応するノードを検索する。図１７の例では、情報処理装置１００は、化合物名１５００に対応するノードとして、ノード１７０１を発見する。
【０１４４】
ここで、情報処理装置１００が、図１６の動作で、化合物名１５００から文字列を複数除去し、抽象化合物名を示すノードを発見している場合が考えられる。この場合、情報処理装置１００は、除去した文字列を１つずつ選択し、選択した文字列を、化合物名１５００と同様の位置に含む化合物名を示すノードへのリンクを辿っていき、化合物名１５００に対応するノードを検索する。
【０１４５】
ここで、情報処理装置１００は、化合物名１５００を包含しない具体的な化合物名を示すノード１７０２へのリンクを辿って、化合物名１５００に対応するノードを検索することを回避することができる。このため、情報処理装置１００は、化合物名１５００に対応するノードを効率よく検索することができる。
【０１４６】
情報処理装置１００は、ナレッジグラフ１３００から、化合物名１５００に対応するノードを発見した場合には、発見したノードにリンク付けられたノードが示す、化合物の分子式や分子量、または、化合物の機能や用途などを取得してもよい。これにより、情報処理装置１００は、化合物の分子式や分子量、または、化合物の機能や用途などに基づいて、情報検索、情報解析、または、読解支援などのサービスを実現することができる。
【０１４７】
次に、図１８および図１９を用いて、クライアント装置２０１において、サービス利用者が、情報検索、情報解析、または、読解支援などのサービスを利用する一例について説明する。
【０１４８】
図１８は、サービス利用者が、サービスを利用する流れを示す説明図である。図１８において、クライアント装置２０１は、技術文書１８０１をディスプレイ６０６に表示する。サービス利用者は、技術文書１８０１を閲覧する。
【０１４９】
サービス利用者は、技術文書内の文字列をクリックする。クリックする文字列は、抽象化合物名に対応する文字列であってもよい。クライアント装置２０１は、クリックされた文字列に関する情報を、情報処理装置１００に問い合わせる。情報処理装置１００は、ナレッジグラフ１３００のノード間のリンクを辿ることにより、クリックされた文字列に対応する化合物名に関する情報を、クライアント装置２０１に表示させる。
【０１５０】
図１８の例では、サービス利用者は、「３−エトキシプロパノール」をクリックする。クライアント装置２０１は、文字列「３−エトキシプロパノール」のクリックに応じて、文字列「３−エトキシプロパノール」に関する情報を、情報処理装置１００に問い合わせる。情報処理装置１００は、ナレッジグラフ１３００を参照して、抽象化合物名「３−エトキシプロパノール」が、化合物名「３−エトキシ−１−プロパノール」を包含することを特定する。
【０１５１】
また、情報処理装置１００は、化合物名「３−エトキシ−１−プロパノール」について、化合物の分子式や分子量、または、化合物の機能や用途などを特定し、解説文１８０２を生成し、クライアント装置２０１に表示させる。解説文１８０２は、例えば、「３−エトキシプロパノールは、３−エトキシ−１−プロパノールや、１−エトキシ−２−プロパノールなどを含む抽象概念です。」を含む。次に、図１９の説明に移行する。
【０１５２】
図１９は、サービス利用者が、サービスを利用する一例を示す説明図である。図１９において、クライアント装置２０１は、技術文書１９００をディスプレイ６０６に表示する。サービス利用者は、技術文書１９００を閲覧する。
【０１５３】
サービス利用者は、技術文書内の文字列１９０１をクリックする。文字列１９０１は、「（２Ｒ）−２α，７，８−テトラメチル−３α−［（１Ｅ，３Ｅ）−４−メチル−５−ヒドロキシ−１，３−ペンタジエニル］−４−ヒドロキシ−２，３，６，９−テトラヒドロナフト［１，２−ｂ］フラン−６，９−ジオン」である。
【０１５４】
クライアント装置２０１は、文字列１９０１のクリックに応じて、文字列１９０１に関する検索クエリを、情報処理装置１００に送信することにより、文字列１９０１に関する情報を、情報処理装置１００に問い合わせる。情報処理装置１００は、検索クエリを受け付け、ナレッジグラフ１３００を参照して、図１４〜図１７と同様に、文字列１９０１を示すノードを発見する。
【０１５５】
そして、情報処理装置１００は、発見したノードに基づいて、問い合わせの文字列１９０１に対応する抽象化合物名に関する情報を、クライアント装置２０１に提供する。情報処理装置１００は、具体的には、発見したノードにリンク付けられたノードが示す、化合物の分子式や分子量、または、化合物の機能や用途などを取得し、解説文１９０２を生成し、クライアント装置２０１に表示させる。
【０１５６】
これにより、情報処理装置１００は、問い合わせの文字列に対応する抽象化合物名に直接的に関係する情報を、サービス利用者が参照可能にすることができる。このため、情報処理装置１００は、情報検索、情報解析、または、読解支援などのサービスを効果的に実施することができる。
【０１５７】
以上の説明では、情報処理装置１００が、コーパスから化合物名の候補を抽出する場合について説明したが、これに限らない。例えば、情報処理装置１００が、辞書テーブル５００に登録された化合物名を抽出し、化合物名から抽象化合物名の候補を特定してから、抽象化合物名の候補がコーパスに出現するか否かを判定する場合があってもよい。
【０１５８】
（生成処理手順）
次に、図２０を用いて、情報処理装置１００が実行する、生成処理手順の一例について説明する。生成処理は、例えば、図３に示したＣＰＵ３０１と、メモリ３０２や記録媒体３０５などの記憶領域と、ネットワークＩ／Ｆ３０３とによって実現される。
【０１５９】
図２０は、生成処理手順の一例を示すフローチャートである。図２０において、情報処理装置１００は、コーパスから化合物名の候補を抽出する（ステップＳ２００１）。
【０１６０】
次に、情報処理装置１００は、抽出した候補のうち、辞書テーブル５００に記憶された化合物名と一致する候補のそれぞれの候補に対して、当該候補と一致した化合物名に対応付けて辞書テーブル５００に記憶されたＵＲＩを付与する（ステップＳ２００２）。そして、情報処理装置１００は、ステップＳ２００３の処理に移行する。
【０１６１】
ステップＳ２００３では、情報処理装置１００は、抽出した候補を含む候補リストのうち未処理の候補を選択する（ステップＳ２００３）。
【０１６２】
次に、情報処理装置１００は、選択した候補が、ＵＲＩが付与され、かつ、数字を含む候補であるか否かを判定する（ステップＳ２００４）。ここで、ＵＲＩが付与されていない候補、または、数字を含まない候補である場合（ステップＳ２００４：Ｎｏ）、情報処理装置１００は、ステップＳ２００８の処理に移行する。一方で、ＵＲＩが付与され、かつ、数字を含む候補である場合（ステップＳ２００４：Ｙｅｓ）、情報処理装置１００は、ステップＳ２００５の処理に移行する。
【０１６３】
ステップＳ２００５では、情報処理装置１００は、選択した候補から、１以上の数字と所定の記号とを組み合わせた置換基の結合位置を示す文字列を除去した文字列を生成し、候補リストに追加する（ステップＳ２００５）。そして、情報処理装置１００は、生成した文字列に、新規ＵＲＩを付与する（ステップＳ２００６）。
【０１６４】
次に、情報処理装置１００は、選択した候補に付与されたＵＲＩと、生成した文字列に付与された新規ＵＲＩとを、「ｉｓ−ａ」の関係性でリンク付けする（ステップＳ２００７）。そして、情報処理装置１００は、ステップＳ２００８の処理に移行する。
【０１６５】
ステップＳ２００８では、情報処理装置１００は、候補リストのうち、すべての候補を処理したか否かを判定する（ステップＳ２００８）。ここで、未処理の候補がある場合（ステップＳ２００８：Ｎｏ）、情報処理装置１００は、ステップＳ２００３の処理に戻る。一方で、すべての候補を処理している場合（ステップＳ２００８：Ｙｅｓ）、情報処理装置１００は、ステップＳ２００９の処理に移行する。
【０１６６】
ステップＳ２００９では、情報処理装置１００は、ＵＲＩごとに「ｉｓ−ａ」の関係性でリンク付けされたＵＲＩの数を算出する（ステップＳ２００９）。次に、情報処理装置１００は、ＵＲＩのうち、リンク付けされたＵＲＩの数が閾値未満であるＵＲＩを削除する（ステップＳ２０１０）。
【０１６７】
そして、情報処理装置１００は、生成処理を終了する。これにより、情報処理装置１００は、抽象化合物名を示すノードを含むナレッジグラフを生成することができる。また、情報処理装置１００は、ナレッジグラフに含まれるノードの数の増大化を抑制することができる。
【０１６８】
（検索処理手順）
次に、図２１を用いて、情報処理装置１００が実行する、検索処理手順の一例について説明する。検索処理は、例えば、図３に示したＣＰＵ３０１と、メモリ３０２や記録媒体３０５などの記憶領域と、ネットワークＩ／Ｆ３０３とによって実現される。
【０１６９】
図２１は、検索処理手順の一例を示すフローチャートである。図２１において、情報処理装置１００は、検索クエリを受け付ける（ステップＳ２１０１）。次に、情報処理装置１００は、検索クエリの化合物名を直接示すノードを、ナレッジグラフから検索する（ステップＳ２１０２）。
【０１７０】
そして、情報処理装置１００は、検索クエリの化合物名を直接示すノードが発見されたか否かを判定する（ステップＳ２１０３）。ここで、ノードが発見された場合（ステップＳ２１０３：Ｙｅｓ）、情報処理装置１００は、ステップＳ２１０８の処理に移行する。一方で、ノードが発見されない場合（ステップＳ２１０３：Ｎｏ）、情報処理装置１００は、ステップＳ２１０４の処理に移行する。
【０１７１】
ステップＳ２１０４では、情報処理装置１００は、検索クエリの化合物名から、置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列を除去し、抽象化合物名を生成する（ステップＳ２１０４）。次に、情報処理装置１００は、抽象化合物名を示すノードを、ナレッジグラフから検索する（ステップＳ２１０５）。
【０１７２】
そして、情報処理装置１００は、抽象化合物名を示すノードが発見されたか否かを判定する（ステップＳ２１０６）。ここで、ノードが発見された場合（ステップＳ２１０６：Ｙｅｓ）、情報処理装置１００は、ステップＳ２１０７の処理に移行する。一方で、ノードが発見されない場合（ステップＳ２１０６：Ｎｏ）、情報処理装置１００は、ステップＳ２１０９の処理に移行する。
【０１７３】
ステップＳ２１０７では、情報処理装置１００は、発見されたノードから、除去した文字列に対応するノードの方向に辿り、検索クエリの化合物名に対応するノードを特定する（ステップＳ２１０７）。そして、情報処理装置１００は、ステップＳ２１０８の処理に移行する。
【０１７４】
ステップＳ２１０８では、情報処理装置１００は、検索クエリの化合物名を直接示すノード、または、検索クエリの化合物名に対応するノードにリンク付けられた、化合物の分子式や分子量、または、化合物の機能や用途などを出力する（ステップＳ２１０８）。そして、情報処理装置１００は、検索処理を終了する。
【０１７５】
ステップＳ２１０９では、情報処理装置１００は、検索クエリの化合物名から、置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列をすべて除去したか否かを判定する（ステップＳ２１０９）。ここで、除去していない文字列がある場合（ステップＳ２１０９：Ｎｏ）、情報処理装置１００は、ステップＳ２１０４の処理に戻る。一方で、文字列をすべて除去している場合（ステップＳ２１０９：Ｙｅｓ）、情報処理装置１００は、検索処理を終了する。
【０１７６】
ここで、情報処理装置１００は、図２０および図２１の一部ステップの処理を省略してもよい。例えば、ステップＳ２００９，Ｓ２０１０の処理は省略可能である。
【０１７７】
以上説明したように、情報処理装置１００によれば、第１の化合物名に関する検索クエリを取得することができる。情報処理装置１００によれば、取得した検索クエリに基づいて、第１の化合物名に含まれる置換基の結合位置を示す文字列を特定することができる。情報処理装置１００によれば、第１の化合物名から、特定した文字列を除去した抽象化合物名を生成することができる。情報処理装置１００によれば、化合物名を示すノード同士をリンク付けしたグラフ内から、生成した抽象化合物名を示すノードを検索することができる。情報処理装置１００によれば、抽象化合物名を示すノードを発見した場合に、グラフ内で、発見したノードを起点に、特定した文字列に対応する化合物名を示すノードへのリンクを辿って、第１の化合物名に対応するノードを検索することができる。これにより、情報処理装置１００は、第１の化合物名を直接的に示すノードが存在しなくても、第１の化合物名に対応するノードを発見することができる。このため、情報処理装置１００は、グラフを利用し、情報検索、情報解析、または、読解支援などを実施可能にすることができる。
【０１７８】
情報処理装置１００によれば、取得した検索クエリに基づいて、第１の化合物名に含まれる置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列を特定することができる。これにより、情報処理装置１００は、第１の化合物名から、１以上の数字と所定の記号とを組み合わせた文字列を纏めて除去して抽象化合物名を生成することができる。
【０１７９】
情報処理装置１００によれば、抽象化合物名を示すノードを発見しない場合に、特定済みの文字列とは異なる、第１の化合物名に含まれる置換基の結合位置を示す文字列を特定することができる。情報処理装置１００によれば、第１の化合物名から、特定した文字列をすべて除去した抽象化合物名を生成することができる。情報処理装置１００によれば、グラフ内から、生成した抽象化合物名を示すノードを検索することができる。これにより、情報処理装置１００は、再帰的に、第１の化合物名の抽象化を繰り返し、抽象化合物名を示すノードを発見可能にすることができる。
【０１８０】
情報処理装置１００によれば、文章集合から、化合物名としての条件を満たす複数の文字列を抽出することができる。情報処理装置１００によれば、化合物名を記憶する辞書情報を参照して、抽出した複数の文字列のうち、化合物名であると判定した文字列を示すノードを含むグラフを生成することができる。情報処理装置１００によれば、生成したグラフ内のいずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名を示す新たなノードを生成し、いずれかのノードの上位にリンク付けして、グラフに追加することができる。これにより、情報処理装置１００は、ナレッジグラフを生成することができる。
【０１８１】
情報処理装置１００によれば、いずれかのノードが示す化合物名から、置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列を除去した抽象化合物名を示す新たなノードを生成することができる。これにより、情報処理装置１００は、化合物名から、１以上の数字と所定の記号とを組み合わせた文字列を纏めて除去して抽象化合物名を生成するため、抽象化合物名を示すノードの膨大化を抑制することができる。
【０１８２】
情報処理装置１００によれば、生成したグラフ内に、置換基の結合位置を示す文字列を除去すると、同じ抽象化合物名になる化合物名を示すノードが、所定の数以上存在する場合に、新たなノードを生成することができる。これにより、情報処理装置１００は、抽象化合物名を示すノードの膨大化を抑制することができる。
【０１８３】
情報処理装置１００によれば、文章集合に、いずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名が閾値以上出現する場合に、新たなノードを生成することができる。これにより、情報処理装置１００は、抽象化合物名を示すノードの膨大化を抑制することができる。
【０１８４】
なお、本実施の形態で説明した検索方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本実施の形態で説明した検索プログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、本実施の形態で説明した検索プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１８５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１８６】
（付記１）第１の化合物名に関する検索クエリを取得し、
取得した前記検索クエリに基づいて、前記第１の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第１の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、
化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、
前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第１の化合物名に対応するノードを検索する、
処理をコンピュータが実行することを特徴とする検索方法。
【０１８７】
（付記２）前記特定する処理は、
取得した前記検索クエリに基づいて、前記第１の化合物名に含まれる置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列を特定する、ことを特徴とする付記１に記載の検索方法。
【０１８８】
（付記３）前記抽象化合物名を示すノードを発見しない場合に、特定済みの前記文字列とは異なる、前記第１の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第１の化合物名から、特定した前記文字列をすべて除去した抽象化合物名を生成し、
前記グラフ内から、生成した前記抽象化合物名を示すノードを検索する、
処理を前記コンピュータが実行することを特徴とする付記１または２に記載の検索方法。
【０１８９】
（付記４）文章集合から、化合物名としての条件を満たす複数の文字列を抽出し、
化合物名を記憶する辞書情報を参照して、抽出した前記複数の文字列のうち、化合物名であると判定した文字列を示すノードを含むグラフを生成し、
生成した前記グラフ内のいずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名を示す新たなノードを生成し、前記いずれかのノードの上位にリンク付けして、前記グラフに追加する、
処理を前記コンピュータが実行し、
前記抽象化合物名を示すノードを検索する処理は、
生成した前記グラフ内から、生成した前記抽象化合物名を示すノードを検索する、ことを特徴とする付記１〜３のいずれか一つに記載の検索方法。
【０１９０】
（付記５）前記追加する処理は、
前記いずれかのノードが示す化合物名から、置換基の結合位置を示す１以上の数字と所定の記号とを組み合わせた文字列を除去した抽象化合物名を示す新たなノードを生成する、ことを特徴とする付記４に記載の検索方法。
【０１９１】
（付記６）前記追加する処理は、
生成した前記グラフ内に、置換基の結合位置を示す文字列を除去すると、同じ抽象化合物名になる化合物名を示すノードが、所定の数以上存在する場合に、前記新たなノードを生成する、ことを特徴とする付記４または５に記載の検索方法。
【０１９２】
（付記７）前記追加する処理は、
文章集合に、前記いずれかのノードが示す化合物名から置換基の結合位置を示す文字列を除去した抽象化合物名が閾値以上出現する場合に、前記新たなノードを生成する、ことを特徴とする付記４〜６のいずれか一つに記載の検索方法。
【０１９３】
（付記８）第１の化合物名に関する検索クエリを取得し、
取得した前記検索クエリに基づいて、前記第１の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第１の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、
化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、
前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第１の化合物名に対応するノードを検索する、
処理をコンピュータに実行させることを特徴とする検索プログラム。
【０１９４】
（付記９）第１の化合物名に関する検索クエリを取得し、
取得した前記検索クエリに基づいて、前記第１の化合物名に含まれる置換基の結合位置を示す文字列を特定し、
前記第１の化合物名から、特定した前記文字列を除去した抽象化合物名を生成し、
化合物名を示すノード同士をリンク付けしたグラフ内から、生成した前記抽象化合物名を示すノードを検索し、
前記抽象化合物名を示すノードを発見した場合に、前記グラフ内で、発見した前記ノードを起点に、特定した前記文字列に対応する化合物名を示すノードへのリンクを辿って、前記第１の化合物名に対応するノードを検索する、
制御部を有することを特徴とする情報処理装置。
【符号の説明】
【０１９５】
１００  情報処理装置
２００  サービス提供システム
２０１  クライアント装置
２１０  ネットワーク
３００，６００  バス
３０１，６０１  ＣＰＵ
３０２，６０２  メモリ
３０３，６０３  ネットワークＩ／Ｆ
３０４，６０４  記録媒体Ｉ／Ｆ
３０５，６０５  記録媒体
４００  グラフ情報テーブル
５００  辞書テーブル
６０６  ディスプレイ
６０７  入力装置
７００  記憶部
７０１  取得部
７０２  第１の生成部
７０３  第２の生成部
７０４  第１の検索部
７０５  第２の検索部
７０６  出力部
８０１  化合物名判定部
８０２  化合物名抽象化部
８０３  ＵＲＩ生成部
８０４  リンク生成部
８０５  リンク数集計部
８０６  ノード確定部
８０７  パターン生成部
８０８  ノード検索部
８０９  具体化部
８１０  情報生成部
８２０，１０００，１０１０  リスト
８３０，１４００  検索クエリ
９００，９１０，１３０１〜１３０４，１６１０，１７０１，１７０２  ノード
１１００，１５００，１７１０  化合物名
１１０１〜１１０８，１５０１〜１５０８，１９０１  文字列
１２０１〜１２０３，１２１１，１２１２，１６００  抽象化合物名
１３００  ナレッジグラフ
１８０１，１９００  技術文書
１８０２，１９０２  解説文
【図１】
2020187647.tif 000003
【図２】
2020187647.tif 000004
【図３】
2020187647.tif 000005
【図４】
2020187647.tif 000006
【図５】
2020187647.tif 000007
【図６】
2020187647.tif 000008
【図７】
2020187647.tif 000009
【図８】
2020187647.tif 000010
【図９】
2020187647.tif 000011
【図１０】
2020187647.tif 000012
【図１１】
2020187647.tif 000013
【図１２】
2020187647.tif 000014
【図１３】
2020187647.tif 000015
【図１４】
2020187647.tif 000016
【図１５】
2020187647.tif 000017
【図１６】
2020187647.tif 000018
【図１７】
2020187647.tif 000019
【図１８】
2020187647.tif 000020
【図１９】
2020187647.tif 000021
【図２０】
2020187647.tif 000022
【図２１】
2020187647.tif 000023