(57)【要約】【課題】複数のオントロジーに基づいて記述されたデータセットにおいて、他のデータセットに関連するデータ部分を特定する。【解決手段】コンピュータは、複数のオントロジーに基づいて記述された第１データセットに含まれるノードの中から、第２データセットに含まれる複数のデータそれぞれに対応するノードを特定する（ステップ７０１）。コンピュータは、特定されたノードから第１データセットに含まれるリンクを辿る経路上において、移動元ノードと移動先ノードのオントロジー間の関連性を判定する（ステップ７０２）。コンピュータは、判定結果に基づいて、移動元ノードと移動先ノードとの間のリンクを辿ることで、第１ノードからリンクを辿る第１経路と第２ノードからリンクを辿る第２経路とが交わる、共通ノードを探索する（ステップ７０３）。コンピュータは、共通ノード、第１ノード、及び第２ノードを示す探索結果を出力する（ステップ７０４）。【選択図】図７
2020060981.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータにより実行されるノード探索方法であって、
前記コンピュータが、
複数のオントロジーに基づいて記述された第１データセットに含まれるノードの中から、第２データセットに含まれる複数のデータそれぞれに対応するノードを特定し、
特定された複数のノードそれぞれから前記第１データセットに含まれるリンクを辿る経路上において、移動元ノードのオントロジーと移動先ノードのオントロジーとの間の関連性を判定し、
前記関連性を判定した結果に基づいて、前記移動元ノードと前記移動先ノードとの間のリンクを辿ることで、前記複数のノードのうち第１ノードからリンクを辿る第１経路と、前記複数のノードのうち第２ノードからリンクを辿る第２経路とが交わる、共通ノードを探索し、
前記共通ノードを示す情報と前記第１ノードを示す情報と前記第２ノードを示す情報とを含む、探索結果を出力する、
ことを特徴とするノード探索方法。
【請求項２】
前記コンピュータは、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間に関連性があると判定した場合、前記移動元ノードと前記移動先ノードとの間のリンクを辿り、前記移動先ノードを新たな移動元ノードに設定して、前記新たな移動元ノードを含む経路上の探索を継続し、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間に関連性がないと判定した場合、前記移動元ノードを含む経路上の探索を打ち切ることを特徴とする請求項１記載のノード探索方法。
【請求項３】
前記コンピュータは、複数のデータセット各々に含まれる２つのリンクの組み合わせについて、前記２つのリンクが同時に出現する出現回数を求め、求めた出現回数を用いて前記２つのリンクに対する共起統計量を計算し、前記移動元ノードを参照する第１リンクと前記移動先ノードを参照する第２リンクとに対する共起統計量に基づいて、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間の関連性を判定することを特徴とする請求項１又は２記載のノード探索方法。
【請求項４】
前記コンピュータは、複数のデータセットに含まれる各リンクを定義したオントロジーから、各リンクのラベル及びコメントに含まれる単語を抽出し、各リンクのラベル及びコメントに出現する各単語の出現回数を求め、求めた出現回数を用いて各単語の重要度を示す重要度統計量を計算し、前記移動元ノードを参照する第１リンクのラベル及びコメントに含まれる各単語の重要度を示す第１重要度統計量と、前記移動先ノードを参照する第２リンクのラベル及びコメントに含まれる各単語の重要度を示す第２重要度統計量とを用いて、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間の関連性を判定することを特徴とする請求項１又は２記載のノード探索方法。
【請求項５】
複数のオントロジーに基づいて記述された第１データセットに含まれるノードの中から、第２データセットに含まれる複数のデータそれぞれに対応するノードを特定し、
特定された複数のノードそれぞれから前記第１データセットに含まれるリンクを辿る経路上において、移動元ノードのオントロジーと移動先ノードのオントロジーとの間の関連性を判定し、
前記関連性を判定した結果に基づいて、前記移動元ノードと前記移動先ノードとの間のリンクを辿ることで、前記複数のノードのうち第１ノードからリンクを辿る第１経路と、前記複数のノードのうち第２ノードからリンクを辿る第２経路とが交わる、共通ノードを探索し、
前記共通ノードを示す情報と前記第１ノードを示す情報と前記第２ノードを示す情報とを含む、探索結果を出力する、
処理をコンピュータに実行させるためのノード探索プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ノード探索方法及びノード探索プログラムに関する。
【背景技術】
【０００２】
近年、様々なデータセットがＲＤＦ（Resource Description Framework）によって記述され、異なるデータセット同士がＲＤＦによってリンクされている。したがって、異なるデータセット同士を組み合わせて分析することができる。
【０００３】
ＲＤＦでは、主語、述語、及び目的語の３つの要素が最小単位として用いられ、この最小単位は、トリプルと呼ばれる。例えば、（ＦＪ社，業種，電気機器）というトリプルの場合、主語が「ＦＪ社」であり、述語が「業種」であり、目的語が「電気機器」である。このトリプルは、「ＦＪ社の業種は電気機器である」という情報を記述している。
【０００４】
主語及び述語は、ＵＲＩ（Uniform Resource Identifier）で表現され、目的語は、ＵＲＩ又はリテラル（文字列）で表現される。ＵＲＩは、＜＞で囲んで記述され、リテラレルは、“”で囲んで記述される。ＵＲＩとして、ＵＲＬ（Uniform Resource Locator）が用いられることもある。述語は、属性又はプロパティと呼ばれることがあり、目的語は、属性の値又はプロパティの値と呼ばれることがある。
【０００５】
ＲＤＦによって記述されたデータセットは、トリプルの集合である。データセットをグラフとして記述する場合、トリプルの主語及び目的語はノードと呼ばれ、述語はリンク又はエッジと呼ばれる。
【０００６】
図１は、ＲＤＦによって記述されたデータセットの例を示している。＿：ｆのように、下線“＿”とコロン“：”の組み合わせで始まる値は、任意のＵＲＩを表す。＿：ｆ、“ＦＪ社”、“神奈川県川崎市”、及び“電気機器”は、ノードを表し、＜名称＞、＜所在地＞、及び＜業種＞の矢印は、リンクを表す。リンクの矢印は参照方向を示し、矢印の起点のノードは、リンクによって矢印の終点のノードを参照している。このデータセットは、ある会社の名称が“ＦＪ社”であり、所在地が“神奈川県川崎市”であり、業種が“電気機器”であることを表している。
【０００７】
図１のデータセットをN-Triples形式で記述すると、次のようになる。
（＿：ｆ，＜名称＞，“ＦＪ社”）
（＿：ｆ，＜所在地＞，“神奈川県川崎市”）
（＿：ｆ，＜業種＞，“電気機器”）
【０００８】
また、図１のデータセットをTurtle形式で記述すると、次のようになる。
＿：ｆ＜名称＞“ＦＪ社”；
＜所在地＞“神奈川県川崎市”；
＜業種＞“電気機器”．
【０００９】
ＲＤＦでは、何らかのオントロジーの定義に従って情報が記述される。例えば、法人についてＲＤＦで記述する場合は、法人に関するオントロジーが用いられる。同じ情報に関する複数のオントロジーが存在することもある。例えば、法人に関するオントロジーとして、Organizationオントロジー、共通語彙基盤等が存在する。異なるオントロジーに基づいて記述された情報は、同じ情報であっても、異なる構造とリンクを用いて記述されている。
【００１０】
図２は、異なるオントロジーに基づいて記述されたデータセットの例を示している。図２（ａ）は、Organizationオントロジーに基づいて記述されたデータセットの例を示している。＿：ｆ、●、“ＦＪ社”、及び“神奈川県”は、ノードを表し、＜ラベル＞、＜登記住所＞、＜場所＞、及び＜地域＞の矢印は、リンクを表す。●はブランクノードを表す。このデータセットは、ある会社の名称が“ＦＪ社”であり、住所が属する都道府県が“神奈川県”であることを表している。
【００１１】
図２（ｂ）は、共通語彙基盤に基づいて記述されたデータセットの例を示している。＿：ｆ、●、“ＦＪ社”、及び“神奈川県”は、ノードを表し、＜名称＞、＜表記＞、＜住所＞、及び＜都道府県＞の矢印は、リンクを表す。このデータセットは、図２（ａ）のデータセットと同じ情報を記述している。
【００１２】
単一のデータセットは、複数のオントロジーを組み合わせて記述されることがあり、複数のデータセットをリンクによって連結することで、複合的なデータセットが生成されることもある。
【００１３】
図３は、複合的なデータセットの例を示している。データセット３１１は、オントロジー３２１〜オントロジー３２４に基づいて記述され、データセット３１２は、オントロジー３２１、オントロジー３２５、及びオントロジー３２６に基づいて記述される。そして、データセット３０１は、データセット３１１及びデータセット３１２を含む複数のデータセットを連結することで生成される。
【００１４】
また、オントロジーの中には、特定のデータセットのみを記述するために用いられる特殊なオントロジーもあり、様々なデータセットを記述するために用いられる基本的なオントロジーもある。
【００１５】
ＲＤＦに関して、オープンデータを用いて薬物の間の類似性を計算する類似性計算装置、非概念的データ項目をデータグラフに統合するコンピュータ装置、及び平坦データの階層情報を取得する方法が知られている（例えば、特許文献１〜特許文献３を参照）。
【先行技術文献】
【特許文献】
【００１６】
【特許文献１】特開２０１６−２１２８５３号公報
【特許文献２】特開２０１６−１５１２４号公報
【特許文献３】特開２０１２−１４１９５５号公報
【発明の概要】
【発明が解決しようとする課題】
【００１７】
上述したように、ＲＤＦによって記述された複数のデータセットは、リンクによって連結することができ、それらのデータセットを組み合わせて分析することができる。
【００１８】
しかしながら、すべてのデータセットがＲＤＦによって記述されているとは限らない。例えば、企業の正式名称、所在地、電話番号等の属性を含む顧客企業一覧が、ＣＳＶ（Comma-Separated Values）によって記述されており、各企業のオープンデータがＲＤＦによって記述されている場合もある。この場合、ＣＳＶによって記述された顧客企業一覧と、ＲＤＦによって記述されたデータセットとの間の対応関係が不明であり、これらのデータを組み合わせて分析することは困難である。
【００１９】
なお、かかる問題は、ＲＤＦによって記述されたデータセットとＣＳＶによって記述されたデータセットとを対応付ける場合に限らず、複数のオントロジーに基づいて記述されたデータセットと他のデータセットとを対応付ける場合においても生ずるものである。
【００２０】
１つの側面において、本発明は、複数のオントロジーに基づいて記述されたデータセットにおいて、他のデータセットに関連するデータ部分を特定することを目的とする。
【課題を解決するための手段】
【００２１】
１つの案では、コンピュータは、以下の処理を実行する。
（１）コンピュータは、複数のオントロジーに基づいて記述された第１データセットに含まれるノードの中から、第２データセットに含まれる複数のデータそれぞれに対応するノードを特定する。
（２）コンピュータは、特定された複数のノードそれぞれから第１データセットに含まれるリンクを辿る経路上において、移動元ノードのオントロジーと移動先ノードのオントロジーとの間の関連性を判定する。
（３）コンピュータは、関連性を判定した結果に基づいて、移動元ノードと移動先ノードとの間のリンクを辿ることで、第１経路と第２経路とが交わる共通ノードを探索する。第１経路は、特定された複数のノードのうち第１ノードからリンクを辿る経路であり、第２経路は、特定された複数のノードのうち第２ノードからリンクを辿る経路である。
（４）コンピュータは、共通ノードを示す情報と第１ノードを示す情報と第２ノードを示す情報とを含む、探索結果を出力する。
【発明の効果】
【００２２】
実施形態によれば、複数のオントロジーに基づいて記述されたデータセットにおいて、他のデータセットに関連するデータ部分を特定することができる。
【図面の簡単な説明】
【００２３】
【図１】ＲＤＦによって記述されたデータセットを示す図である。
【図２】異なるオントロジーに基づいて記述されたデータセットを示す図である。
【図３】複合的なデータセットを示す図である。
【図４】顧客企業一覧と企業のオープンデータとを対応付ける処理を示す図である。
【図５】複合的なＲＤＦデータセットにおける探索処理を示す図である。
【図６】ノード探索装置の機能的構成図である。
【図７】ノード探索処理のフローチャートである。
【図８】ノード探索装置の具体例を示す機能的構成図である。
【図９】ＲＤＦデータセット群に含まれるＲＤＦデータセットを示す図である。
【図１０】ＰＭＩ（ｘ，ｙ）の計算に用いられるＲＤＦデータセットを示す図である。
【図１１】ｔｆｉｄｆ（ｉ，ｊ）の計算に用いられるＲＤＦデータセットを示す図である。
【図１２】ノード探索処理の具体例を示すフローチャートである。
【図１３】ノード検出処理のフローチャートである。
【図１４】探索ノードキューを示す図である。
【図１５】ノード移動処理のフローチャートである。
【図１６】経路を示す図である。
【図１７】経路リストを示す図である。
【図１８】共通ノードを含む経路リストを示す図である。
【図１９】情報処理装置の構成図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照しながら、実施形態を詳細に説明する。
以下では、ＲＤＦによって記述されたデータセットをＲＤＦデータセットと記載し、ＲＤＦによって記述されていないデータセットを非ＲＤＦデータセットと記載することがある。
【００２５】
図４は、顧客企業一覧と企業のオープンデータとを対応付ける処理の例を示している。図４（ａ）は、ＣＳＶによって記述された顧客企業一覧の例を示している。この例では、ＦＪ社の名称、所在地、及び電話番号が顧客企業一覧に記録されている。
【００２６】
図４（ｂ）は、ＲＤＦによって記述された企業のオープンデータの例を示している。＿：ｆ、＿：ｎ１、＿：ｎ２、“ＦＪ社”、“神奈川県川崎市”、及び“ａａａａ−ｂｂｂ−ｃｃｃ”は、ノードを表し、＜名称＞、＜本社＞、＜所在地＞、及び＜電話番号＞の矢印は、リンクを表す。このＲＤＦデータセットは、企業の名称が“ＦＪ社”であり、本社の所在地が“神奈川県川崎市”であり、本社の電話番号が“ａａａａ−ｂｂｂ−ｃｃｃ”であることを表している。
【００２７】
図４（ｃ）は、図４（ａ）の顧客企業一覧と図４（ｂ）のオープンデータとを対応付けた結果の例を示している。対応ノードは、ＲＤＦデータセットにおいて、顧客企業一覧に含まれるデータに対応するリテラルを有するノードを表し、共通ノードは、２つ以上の対応ノードを直接又は間接的に参照するノードを表す。
【００２８】
共通ノードが対応ノードを直接参照する場合、共通ノードから対応ノードへ向かう１つのリンクが存在し、共通ノードが対応ノードを間接的に参照する場合、共通ノードから１つ以上の別のノードを経由して対応ノードへ向かう２つ以上のリンクが存在する。
【００２９】
例えば、共通ノード‘＿：ｎ１’は、リンク＜所在地＞によって、対応ノード“神奈川県川崎市”を直接参照するとともに、ノード‘＿：ｎ２’を経由して、対応ノード“ａａａａ−ｂｂｂ−ｃｃｃ”を間接的に参照している。
【００３０】
一方、共通ノード‘＿：ｆ’は、リンク＜名称＞によって、対応ノード“ＦＪ社”を直接参照するとともに、ノード‘＿：ｎ１’を経由して、対応ノード“神奈川県川崎市”を間接的に参照している。さらに、共通ノード‘＿：ｆ’は、ノード‘＿：ｎ１’及びノード‘＿：ｎ２’を経由して、対応ノード“ａａａａ−ｂｂｂ−ｃｃｃ”を間接的に参照している。
【００３１】
コンピュータは、図４（ａ）の顧客企業一覧に含まれる各データの文字列と、図４（ｂ）のＲＤＦデータセットに含まれる各ノードが有するリテラルの文字列とが一致するか否かをチェックすることで、対応ノードを検出することができる。これにより、ＲＤＦデータセットから、“ＦＪ社”、“神奈川県川崎市”、及び“ａａａａ−ｂｂｂ−ｃｃｃ”の３つの対応ノードが検出される。
【００３２】
次に、コンピュータは、各対応ノードから参照方向とは逆方向にリンクを辿る探索処理を、辿れるリンクがなくなるまで再帰的に行うことで、ＲＤＦデータセットから共通ノードを検出することができる。探索処理において、複数の対応ノードそれぞれからリンクを辿る経路が交わった場合、経路の交点に対応するノードが共通ノードとして検出される。例えば、コンピュータは、以下の手順で探索処理を行う。
（Ｐ１）コンピュータは、対応ノード“ＦＪ社”を起点とする経路上で、“ＦＪ社”を参照するリンク＜名称＞を逆方向に辿り、ノード‘＿：ｆ’を検出する。
（Ｐ２）コンピュータは、対応ノード“神奈川県川崎市”を起点とする経路上で、“神奈川県川崎市”を参照するリンク＜所在地＞を逆方向に辿り、ノード‘＿：ｎ１’を検出する。
（Ｐ３）コンピュータは、対応ノード“ａａａａ−ｂｂｂ−ｃｃｃ”を起点とする経路上で、“ａａａａ−ｂｂｂ−ｃｃｃ”を参照するリンク＜電話番号＞を逆方向に辿り、ノード‘＿：ｎ２’を検出する。
（Ｐ４）コンピュータは、対応ノード“神奈川県川崎市”を起点とする経路上で、‘＿：ｎ１’を参照するリンク＜本社＞を逆方向に辿り、ノード‘＿：ｆ’を検出する。
（Ｐ５）コンピュータは、対応ノード“ａａａａ−ｂｂｂ−ｃｃｃ”を起点とする経路上で、‘＿：ｎ２’を参照するリンクを逆方向に辿り、ノード‘＿：ｎ１’を検出する。
（Ｐ６）コンピュータは、対応ノード“ａａａａ−ｂｂｂ−ｃｃｃ”を起点とする経路上で、‘＿：ｎ１’を参照するリンク＜本社＞を逆方向に辿り、ノード‘＿：ｆ’を検出する。
【００３３】
この場合、“ＦＪ社”、“神奈川県川崎市”、及び“ａａａａ−ｂｂｂ−ｃｃｃ”それぞれを起点とする３本の経路がノード‘＿：ｆ’で交わるため、ノード‘＿：ｆ’が共通ノードとして検出される。また、“神奈川県川崎市”及び“ａａａａ−ｂｂｂ−ｃｃｃ”それぞれを起点とする２本の経路がノード‘＿：ｎ１’で交わるため、ノード‘＿：ｎ１’も共通ノードとして検出される。
【００３４】
このように、ＲＤＦデータセットにおいて対応ノード及び共通ノードを特定することで、共通ノードから直接又は間接的に参照されるノードの範囲を、非ＲＤＦデータセットに関連するデータ部分として特定することができる。これにより、非ＲＤＦデータセットがＲＤＦデータセットに対応付けられ、これらのデータセットを組み合わせて分析することが可能になる。
【００３５】
一例として、図４（ｂ）のＲＤＦデータセットにおいて、ノード‘＿：ｆ’、ノード‘＿：ｎ１’、又はノード‘＿：ｎ２’が、不図示の別のリンクによって別のノードを参照している場合を想定する。別のノードが有する情報は、顧客企業一覧には含まれていない営業拠点、事業所、工場等に関する情報であってもよい。この場合、コンピュータは、別のリンクを参照方向に辿ることで、別のノードが有する情報を取得して分析することが可能になる。
【００３６】
ところで、図３に示した複合的なＲＤＦデータセットでは、連結されているすべてのデータセットのうち、非ＲＤＦデータセットに関連するデータ部分は高々１個又は２個のデータセットであることが多い。この場合、連結されているすべてのデータセットを探索すると、無関係なデータセットも探索されるため、時間計算量及び空間計算量が膨大になる。
【００３７】
図５は、図４（ｂ）のＲＤＦデータセットを含む複合的なＲＤＦデータセットにおける探索処理の例を示している。図５のＲＤＦデータセットでは、企業ＤＢ（database）と略称ＤＢの情報が混在している。“略称ＤＢ”、“ＦＪ”、及び“Ｆ”は、ノードを表し、＜略称＞の矢印は、リンクを表す。
【００３８】
この場合、コンピュータは、図４（ａ）の顧客企業一覧に関連するデータ部分を特定するために、以下の手順で探索処理を行う。
（Ｐ１１）コンピュータは、対応ノード“ＦＪ社”を起点とする第１の経路上で、“ＦＪ社”を参照するリンク＜正式名称＞を逆方向に辿り、ブランクノード●を検出する。
（Ｐ１２）コンピュータは、対応ノード“ＦＪ社”を起点とする第２の経路上で、“ＦＪ社”を参照するリンク＜名称＞を逆方向に辿り、ノード‘＿：ｆ’を検出する。
（Ｐ１３）コンピュータは、対応ノード“神奈川県川崎市”を起点とする経路上で、“神奈川県川崎市”を参照するリンク＜所在地＞を逆方向に辿り、ノード‘＿：ｎ１’を検出する。
（Ｐ１４）コンピュータは、対応ノード“ａａａａ−ｂｂｂ−ｃｃｃ”を起点とする経路上で、“ａａａａ−ｂｂｂ−ｃｃｃ”を参照するリンク＜電話番号＞を逆方向に辿り、ノード‘＿：ｎ２’を検出する。
（Ｐ１５）コンピュータは、対応ノード“ＦＪ社”を起点とする第１の経路上で、●を参照するリンクを逆方向に辿る。
（Ｐ１６）コンピュータは、対応ノード“神奈川県川崎市”を起点とする経路上で、‘＿：ｎ１’を参照するリンク＜本社＞を逆方向に辿り、ノード‘＿：ｆ’を検出する。
（Ｐ１７）コンピュータは、対応ノード“ａａａａ−ｂｂｂ−ｃｃｃ”を起点とする経路上で、‘＿：ｎ２’を参照するリンクを逆方向に辿り、ノード‘＿：ｎ１’を検出する。
（Ｐ１８）コンピュータは、対応ノード“ＦＪ社”を起点とする第１の経路上で、●を参照するリンクの次のリンクを逆方向に辿る。
（Ｐ１９）コンピュータは、対応ノード“ａａａａ−ｂｂｂ−ｃｃｃ”を起点とする経路上で、‘＿：ｎ１’を参照するリンク＜本社＞を逆方向に辿り、ノード‘＿：ｆ’を検出する。
（Ｐ２０）コンピュータは、対応ノード“ＦＪ社”を起点とする第１の経路上で、さらに次のリンクを逆方向に辿る。
【００３９】
図４（ｂ）のＲＤＦデータセットの場合と同様に、共通ノード‘＿：ｆ’から直接又は間接的に参照されるノードの範囲が、顧客企業一覧に関連するデータ部分である。このため、本来であれば、ブランクノード●を含む経路上のリンクを辿る手順（Ｐ１１）、手順（Ｐ１５）、手順（Ｐ１８）、及び手順（Ｐ２０）の処理は、不要である。特に、ブランクノード●を含む経路に多数のリンクが含まれている場合、それらのリンクを辿るための計算量が膨大になる。探索処理において、仮に、対応ノードが属するデータセットのみを探索することができれば、無関係なデータセットを探索する必要がなくなる。
【００４０】
図３に示したように、各データセットは、特定のオントロジーの集合に基づいて記述される。そこで、対応ノードが属するデータセットを求め、求めたデータセットにおいてよく利用されるオントロジーの集合を求め、そのオントロジーの集合に属するノードのみを探索対象として選択する方法が考えられる。しかし、各データセットにおいてよく利用されるオントロジーの集合を特定することは難しい。
【００４１】
図６は、実施形態のノード探索装置の機能的構成例を示している。図６のノード探索装置６０１は、記憶部６１１、探索部６１２、及び出力部６１３を含む。記憶部６１１は、複数のオントロジーに基づいて記述された第１データセット６２１と、第２データセット６２２とを記憶する。探索部６１２は、第１データセット６２１及び第２データセット６２２を用いて、ノード探索処理を行う。
【００４２】
図７は、図６のノード探索装置６０１が行うノード探索処理の例を示すフローチャートである。まず、探索部６１２は、第１データセット６２１に含まれるノードの中から、第２データセット６２２に含まれる複数のデータそれぞれに対応するノードを特定する（ステップ７０１）。
【００４３】
次に、探索部６１２は、特定された複数のノードそれぞれから第１データセット６２１に含まれるリンクを辿る経路上において、移動元ノードのオントロジーと移動先ノードのオントロジーとの間の関連性を判定する（ステップ７０２）。
【００４４】
次に、探索部６１２は、関連性を判定した結果に基づいて、移動元ノードと移動先ノードとの間のリンクを辿ることで、第１経路と第２経路とが交わる共通ノードを探索する（ステップ７０３）。第１経路は、特定された複数のノードのうち第１ノードからリンクを辿る経路であり、第２経路は、特定された複数のノードのうち第２ノードからリンクを辿る経路である。
【００４５】
次に、出力部６１３は、共通ノードを示す情報、第１ノードを示す情報、及び第２ノードを示す情報を含む、探索結果を出力する（ステップ７０４）。
【００４６】
図６のノード探索装置６０１によれば、複数のオントロジーに基づいて記述されたデータセットにおいて、他のデータセットに関連するデータ部分を特定することができる。
【００４７】
図８は、図６のノード探索装置６０１の具体例を示している。図８のノード探索装置８０１は、記憶部８１１、計算部８１２、探索部８１３、及び出力部８１４を含む。記憶部８１１、探索部８１３、及び出力部８１４は、図６の記憶部６１１、探索部６１２、及び出力部６１３にそれぞれ対応する。
【００４８】
記憶部８１１は、ＲＤＦデータセット群８２１、オントロジー群８２２、ＲＤＦデータセット８２５、及び非ＲＤＦデータセット８２６を記憶する。ＲＤＦデータセット８２５及び非ＲＤＦデータセット８２６は、図６の第１データセット６２１及び第２データセット６２２にそれぞれ対応する。
【００４９】
非ＲＤＦデータセット８２６は、ＣＳＶ、ＴＳＶ（Tab-Separated Values）、ＳＳＶ（Space-Separated Values）、ＸＭＬ（Extensible Markup Language）、リレーショナルデータモデル等によって記述されたデータセットであってもよい。
【００５０】
例えば、非ＲＤＦデータセット８２６は、銀行が保持する融資先企業の財務情報であってもよく、ＲＤＦデータセット８２５は、その企業のオープンデータであってもよい。この場合、これらのデータセットを対応付けることで、融資先企業の財務情報及びオープンデータを統合的に分析して、銀行による融資の可否を判断することが可能になる。
【００５１】
また、非ＲＤＦデータセット８２６は、企業の役員の個人情報であってもよく、ＲＤＦデータセット８２５は、その企業のオープンデータであってもよい。この場合、これらのデータセットを対応付けることで、役員の個人情報及び企業のオープンデータを統合的に分析して、その企業との取引の可否を判断することが可能になる。
【００５２】
ＲＤＦデータセット群８２１は、リンクに関する統計量の計算に用いられる複数のＲＤＦデータセットであり、オントロジー群８２２は、それらのＲＤＦデータセットを記述するための複数のオントロジーである。ＲＤＦデータセット群８２１に含まれる各リンクは、オントロジー群８２２に含まれる各オントロジーによって定義される。
【００５３】
計算部８１２は、ＲＤＦデータセット群８２１の各ＲＤＦデータセットに含まれる２つのリンクの組み合わせについて、それらのリンクが同時に出現する出現回数を求める。そして、計算部８１２は、求めた出現回数を用いて、それらのリンクに対する共起統計量８２３を計算し、共起統計量８２３を記憶部８１１に格納する。
【００５４】
また、計算部８１２は、オントロジー群８２２に含まれる各オントロジーから、各リンクのラベル及びコメントに含まれる単語を抽出し、各リンクのラベル及びコメントに出現する各単語の出現回数を求める。そして、計算部８１２は、求めた出現回数を用いて、各単語の重要度を示す重要度統計量８２４を計算し、重要度統計量８２４を記憶部８１１に格納する。
【００５５】
探索部８１３は、ＲＤＦデータセット８２５に含まれるノードの中から、非ＲＤＦデータセット８２６に含まれる複数のデータそれぞれに対応する対応ノードを特定する。そして、探索部８１３は、特定した複数の対応ノードを含む探索ノードキュー８２７を生成し、探索ノードキュー８２７を記憶部８１１に格納する。探索ノードキュー８２７に登録されたノードは、移動元ノードとして用いられる。
【００５６】
次に、探索部８１３は、探索ノードキュー８２７に含まれる複数の対応ノードそれぞれから、ＲＤＦデータセット８２５に含まれるリンクを参照方向とは逆方向に辿る経路上において、移動元ノード及び移動先ノードのオントロジー間の関連性を判定する。このとき、探索部８１３は、共起統計量８２３及び重要度統計量８２４に基づいて、オントロジー間の関連性を判定する。
【００５７】
探索部８１３は、オントロジー間に関連性があると判定した場合、移動元ノードと移動先ノードとの間のリンクを逆方向に辿り、移動先ノードを新たな移動元ノードとして探索ノードキュー８２７に設定する。そして、探索部８１３は、新たな移動元ノードを含む経路上の探索を継続する。
【００５８】
探索部８１３は、複数の対応ノードそれぞれからＲＤＦデータセット８２５に含まれるリンクを辿る経路を含む、経路リスト８２８を生成し、経路リスト８２８を記憶部８１１に格納する。そして、探索部８１３は、探索ノードキュー８２７及び経路リスト８２８を更新しながら探索を継続することで、第１対応ノードからリンクを辿る第１経路と、第２対応ノードからリンクを辿る第２経路とが交わる、共通ノードを探索する。
【００５９】
探索部８１３は、探索の途中で、オントロジー間に関連性がないと判定した場合、移動元ノードを含む経路上の探索を打ち切る。そして、探索部８１３は、探索された共通ノードを示す情報、第１ノードを示す情報、及び第２ノードを示す情報を含む探索結果８２９を生成し、探索結果８２９を記憶部８１１に格納する。出力部８１４は、探索結果８２９を出力する。
【００６０】
オントロジーは、どのようなリンクをどのような構造で用いるかを定義する情報であると考えられる。そこで、計算部８１２は、オントロジー及びオントロジー間の関係を直接扱う代わりに、リンク及びリンク間の関係を用いて、共起統計量８２３及び重要度統計量８２４を計算する。これにより、共起統計量８２３及び重要度統計量８２４に基づいて、同じデータセットにおいて一緒に用いることが可能なオントロジーの集合を特定することが可能になる。
【００６１】
探索部８１３は、経路上でリンクを辿る際、共起統計量８２３及び重要度統計量８２４に基づいて、移動元ノードのオントロジーと移動先ノードのオントロジーとが同じデータセットにおいて一緒に用いることが可能か否かを推定する。そして、探索部８１３は、それらのオントロジーを一緒に用いることが可能である場合にのみ、それらのノード間のリンクを辿って、経路リスト８２８の経路を更新する。
【００６２】
図８のノード探索装置８０１によれば、ＲＤＦデータセット８２５において対応ノード及び共通ノードを特定することで、共通ノードから対応ノードまでの範囲を、非ＲＤＦデータセット８２６に関連するデータ部分として特定することができる。これにより、共通ノードから参照される、関連するデータ部分以外のデータを取得することが可能になる。
【００６３】
一例として、ＲＤＦデータセット８２５において、共通ノードが対応ノード以外の別のノードを直接又は間接的に参照しており、別のノードが非ＲＤＦデータセット８２６に含まれていない情報を有する場合を想定する。この場合、共通ノードからリンクを参照方向に辿ることで、別のノードが有する情報を取得して分析することが可能になる。
【００６４】
また、経路上の探索において、移動元ノード及び移動先ノードのオントロジー間に関連性がないと判定した場合、その経路上の探索を打ち切ることで、非ＲＤＦデータセット８２６と無関係なデータ部分の探索が省略される。これにより、ＲＤＦデータセット８２５と非ＲＤＦデータセット８２６とを対応付けるための計算量を削減することができる。
【００６５】
例えば、図５のＲＤＦデータセットにおいて、対応ノード“ＦＪ社”及びブランクノード●のオントロジー間に関連性がないと判定された場合、それらのノードを含む経路上の探索が打ち切られる。これにより、ブランクノード●を含む経路上のリンクを辿る処理が省略されるため、ＲＤＦデータセットと顧客企業一覧とを対応付けるための計算量が削減される。
【００６６】
図９は、ＲＤＦデータセット群８２１に含まれるＲＤＦデータセットの例を示している。＿：ｂ、＿：ａ、ｌ４ａ：１００００１１００ｘｘｘｘ、“ＡＢＣ”、“ＡＢＣ  Ｌｉｂｒａｒｙ”、“１００００１１００ｘｘｘｘ”、“国の機関”、及び“新規”は、ノードを表す。ｄｂｏ：ａａａ、ｄｂｏ：ｎｎｎ、ｓｋｏｓ：ｐｐｐ、ｏｒｇ：ｉｉｉ、ｄｃｔ：ｓｓｓ、及びｏｒｇ：ｃｃｃの矢印は、リンクを表す。
【００６７】
ＲＤＦのTurtle形式において、“ｄｂｏ：”、“ｓｋｏｓ：”、“ｏｒｇ：”、及び“ｄｃｔ：”はプレフィクスと呼ばれ、ＵＲＩの先頭部分を省略するために用いられる。慣習として、同じオントロジーには同じプレフィクスが使用されるため、図９の例では、プレフィクスによってオントロジーを区別することができる。したがって、図９のＲＤＦデータセットは、“ｄｂｏ：”、“ｓｋｏｓ：”、“ｏｒｇ：”、及び“ｄｃｔ：”が示す４つのオントロジーに基づいて記述されていることが分かる。
【００６８】
共起統計量８２３としては、例えば、次式の自己相互情報量（Pointwise Mutual Information，ＰＭＩ）を用いることができる。
【００６９】
【数１】
2020060981.tif 000003
【００７０】
式（１）において、ＰＭＩ（ｘ，ｙ）は、リンクｘ及びリンクｙが共起する確率を表し、ｐ（ｘ）は、リンクｘが出現する出現確率を表し、ｐ（ｙ）は、リンクｙが出現する出現確率を表す。ｃ（ｘ）は、リンクｘが出現する出現回数を表し、ｃ（ｙ）は、リンクｙが出現する出現回数を表し、ｃ（ｘ，ｙ）は、リンクｘ及びリンクｙが同時に出現する出現回数を表す。Ｎは、すべてのリンクの出現回数を表し、Ｋは、２つのリンクのすべての組み合わせ（すべての共起）の出現回数を表す。
【００７１】
まず、計算部８１２は、ＲＤＦデータセット群８２１に含まれるすべてのＲＤＦデータセットを用いて、ｃ（ｘ）、ｃ（ｙ）、及びＮを求める。次に、計算部８１２は、リンクｘ及びリンクｙを含む単一のＲＤＦデータセットを用いて、ｃ（ｘ，ｙ）を求める。そして、計算部８１２は、式（１）を用いてＰＭＩ（ｘ，ｙ）を計算する。
【００７２】
図１０は、ＰＭＩ（ｘ，ｙ）の計算に用いられるＲＤＦデータセットの例を示している。図１０（ａ）は、ノードｎ０１を含むＲＤＦデータセットの例を示している。このＲＤＦデータセットは、ノードｎ０１〜ノードｎ０７及びリンクＬ１〜リンクＬ３を含む。図１０（ｂ）は、ノードｎ１１を含むＲＤＦデータセットの例を示している。このＲＤＦデータセットは、ノードｎ１１〜ノードｎ１７、リンクＬ２、リンクＬ４、及びリンクＬ５を含む。
【００７３】
この場合、各リンクの出現回数と２つのリンクが同時に出現する出現回数は、次のようになる。
ｃ（Ｌ１）＝２
ｃ（Ｌ２）＝４
ｃ（Ｌ３）＝２
ｃ（Ｌ４）＝２
ｃ（Ｌ５）＝２
ｃ（Ｌ１，Ｌ２）＝４
ｃ（Ｌ１，Ｌ３）＝４
ｃ（Ｌ１，Ｌ４）＝０
ｃ（Ｌ１，Ｌ５）＝０
ｃ（Ｌ２，Ｌ３）＝４
ｃ（Ｌ２，Ｌ４）＝４
ｃ（Ｌ２，Ｌ５）＝４
ｃ（Ｌ３，Ｌ４）＝０
ｃ（Ｌ３，Ｌ５）＝０
ｃ（Ｌ４，Ｌ５）＝４
【００７４】
Ｎ＝１２であるから、式（１）のｌｏｇとして、底を１０とする対数を用いた場合、Ｐ（Ｌ１，Ｌ２）、Ｐ（Ｌ１，Ｌ３）、及びＰ（Ｌ１，Ｌ４）は、次式のように計算される。
【００７５】
【数２】
2020060981.tif 000004
【００７６】
式（４）のＮａＮは、非数を表す。他のリンクの組み合わせに対するＰＭＩ（ｘ，ｙ）も、式（２）〜式（４）と同様にして計算される。
【００７７】
各ＲＤＦデータセットにおいてリンクｘ及びリンクｙが同時に出現する出現回数が多いほど、式（１）のＰＭＩ（ｘ，ｙ）が大きくなる。このため、ＰＭＩ（ｘ，ｙ）が大きいほど、リンクｘを定義するオントロジーとリンクｙを定義するオントロジーとが、同じＲＤＦデータセットにおいて一緒に用いられる可能性が高くなる。したがって、ＰＭＩ（ｘ，ｙ）を利用して、それらのオントロジー間の関連性を判定することができる。
【００７８】
重要度統計量８２４としては、例えば、次式のｔｆｉｄｆ（ｉ，ｊ）を用いることができる。
【００７９】
【数３】
2020060981.tif 000005
【００８０】
式（１２）のｎ（ｉ，ｊ）は、リンクｄ（ｊ）における単語ｔ（ｉ）の出現回数を表し、
2020060981.tif 000006
は、リンクｄ（ｊ）におけるすべての単語の出現回数の和を表す。式（１３）の｜Ｄ｜は、ＲＤＦデータセット群８２１に含まれる、異なるリンクの個数を表し、｜｛ｄ：ｄ∋ｔ（ｉ）｝｜は、単語ｔ（ｉ）を含むリンクの個数を表す。
【００８１】
まず、計算部８１２は、ＲＤＦデータセット群８２１に含まれるすべてのＲＤＦデータセットからリンクｄ（ｊ）を抽出し、オントロジー群８２２の中から、リンクｄ（ｊ）を定義するオントロジーを選択する。次に、計算部８１２は、選択したオントロジーから、リンクｄ（ｊ）のラベル及びコメントに含まれる単語を抽出し、抽出したラベル及びコメントに出現する単語ｔ（ｉ）の出現回数を求める。そして、計算部８１２は、求めた出現回数をｎ（ｉ，ｊ）として用いて、式（１１）〜式（１３）により、ｔｆｉｄｆ（ｉ，ｊ）を計算する。
【００８２】
図１１は、ｔｆｉｄｆ（ｉ，ｊ）の計算に用いられるＲＤＦデータセットの例を示している。ｌ４ａ：１００００１１００ｘｘｘｘ、“ＡＢＣ  Ｌｉｂｒａｒｙ”、“１００００１１００ｘｘｘｘ”、及び“新規”は、ノードを表し、ｓｋｏｓ：ｐｐｐ、ｏｒｇ：ｉｉｉ、及びｏｒｇ：ｃｃｃの矢印は、リンクを表す。各リンクのラベル及びコメントとしては、例えば、次のようなテキストが抽出される。
skos:ppp
label: ppp lll
comment: skos:ppp, skos:aaa and skos:hhh are p1 d1 p2. T12 r3 of skos:ppp is t12 c4 of R5 p6 l7. A r8 h13 no m14 t15 one v9 of skos:ppp p16 l10 t11.
org:iii
label: iii
comment: G1 an iii, s28 as a c2 r3 n4, t29 c30 be u31 to u32 to u5 i6 the organization. M7 d7 n9 and i10 iii s11 are a12. The o13 o14 is n15 to w33 s16 are u36. The p17 iii s11 s37 be i18 by the d19 of the iii v20. U38 d19 to d21 the n22 s11 u39 is c23 w40 r24 b25 p25 for ‘skos:nnn’ of w34 t35 p26 is a s27.
org:ccc
label: ccc bbb
comment: I1 a c2 event w3 r4 in a c5 to t6 organization. D7 on the event the organization may or may not h12 c8 to e9 a10 the event. I11 of ‘org:ooo’.
【００８３】
ただし、これらのラベル（label）及びコメント（comment）は、実施形態を説明するための仮想的なテキストである。
【００８４】
ＲＤＦデータセット群８２１に図１１のＲＤＦデータセットのみが含まれており、リンクｄ（ｊ）がｏｒｇ：ｃｃｃであり、単語ｔ（ｉ）が“organization”である場合、ｎ（ｉ，ｊ）は２となる。また、ｏｒｇ：ｃｃｃのラベルに含まれる単語は２個であり、コメントに含まれる単語は３２個であるため、すべての単語の出現回数の和は３４である。
【００８５】
図１１のＲＤＦデータセットに含まれる異なるリンクの個数は３個であり、ラベル及びコメントに“organization”が含まれるリンクは、ｏｒｇ：ｉｉｉ及びｏｒｇ：ｃｃｃの２個である。したがって、式（１３）のｌｏｇとして自然対数を用いた場合、ｔｆｉｄｆ（ｉ，ｊ）は、次式のように計算される。
【００８６】
【数４】
2020060981.tif 000007
【００８７】
また、リンクｄ（ｊ）がｏｒｇ：ｃｃｃであり、単語ｔ（ｉ）が“event”である場合、ｎ（ｉ，ｊ）は３となり、ラベル及びコメントに“event”が含まれるリンクは、ｏｒｇ：ｃｃｃの１個のみである。この場合、ｔｆｉｄｆ（ｉ，ｊ）は、次式のように計算される。
【００８８】
【数５】
2020060981.tif 000008
【００８９】
他のリンク及び単語の組み合わせに対するｔｆｉｄｆ（ｉ，ｊ）も、式（１４）及び式（１５）と同様にして計算される。
【００９０】
式（１１）のｔｆｉｄｆ（ｉ，ｊ）が大きいほど、リンクｄ（ｊ）における単語ｔ（ｉ）の重要度が大きくなる。このため、同じ単語のｔｆｉｄｆ（ｉ，ｊ）が２つのリンクにおいて大きな値を示す場合、それらのリンクを定義する２つのオントロジーが同じＲＤＦデータセットにおいて一緒に用いられる可能性が高いと考えられる。したがって、ｔｆｉｄｆ（ｉ，ｊ）を利用して、それらのオントロジー間の関連性を判定することができる。
【００９１】
次に、図１２から図１８までを参照しながら、図８のノード探索装置８０１の動作について、より詳細に説明する。
【００９２】
図１２は、図８のノード探索装置８０１が行うノード探索処理の具体例を示すフローチャートである。まず、計算部８１２は、ＲＤＦデータセット群８２１の各ＲＤＦデータセットに含まれる２つのリンクの組み合わせについて、共起統計量８２３を計算する（ステップ１２０１）。
【００９３】
次に、計算部８１２は、ＲＤＦデータセット群８２１に含まれる各リンクのラベル及びコメントに含まれる単語を抽出し、各単語について重要度統計量８２４を計算する（ステップ１２０２）。そして、探索部８１３は、共起統計量８２３及び重要度統計量８２４を用いて、ノード検出処理を行う（ステップ１２０３）。
【００９４】
図１３は、図１２のステップ１２０３におけるノード検出処理の例を示すフローチャートである。まず、探索部８１３は、ＲＤＦデータセット８２５に含まれるノードの中から、非ＲＤＦデータセット８２６に含まれる複数のデータそれぞれに対応する対応ノードを特定する（ステップ１３０１）。
【００９５】
このとき、探索部８１３は、非ＲＤＦデータセット８２６に含まれる各データの文字列と、ＲＤＦデータセット８２５に含まれる各ノードが有するリテラルの文字列とが一致するか否かをチェックする。そして、探索部８１３は、各データの文字列と一致するリテラルを有するノードを、対応ノードとして特定し、複数の対応ノードを含む探索ノードキュー８２７を生成する（ステップ１３０２）。
【００９６】
図１４は、探索ノードキュー８２７の例を示している。図１４の探索ノードキュー８２７には、対応ノードｎ１〜対応ノードｎ４が登録されている。
【００９７】
次に、探索部８１３は、探索ノードキュー８２７が空であるか否かをチェックする（ステップ１３０３）。探索ノードキュー８２７が空でない場合（ステップ１３０３，ＮＯ）、探索部８１３は、探索ノードキュー８２７から１つのノードを移動元ノードとして抽出し（ステップ１３０４）、ノード移動処理を行う（ステップ１３０５）。
【００９８】
次に、探索部８１３は、経路リスト８２８を参照して、ステップ１３０１において特定されたすべての対応ノードを直接又は間接的に参照する、共通ノードが存在するか否かをチェックする（ステップ１３０６）。すべての対応ノードを直接又は間接的に参照する共通ノードが存在しない場合（ステップ１３０６，ＮＯ）、探索部８１３は、ステップ１３０３以降の処理を繰り返す。
【００９９】
一方、すべての対応ノードを直接又は間接的に参照する共通ノードが存在する場合（ステップ１３０６，ＹＥＳ）、探索部８１３は、それまでに検出された共通ノードを示す情報を含む探索結果８２９を生成する。そして、出力部８１４は、探索結果８２９を出力する（ステップ１３０７）。この場合、探索結果８２９には、それまでに検出されたすべての共通ノードについて、共通ノードを示す情報と、その共通ノードが直接又は間接的に参照する対応ノードを示す情報とが含まれる。
【０１００】
探索ノードキュー８２７が空である場合（ステップ１３０３，ＹＥＳ）、ノード探索装置８０１は、ステップ１３０７の処理を行う。
【０１０１】
図１５は、図１３のステップ１３０５におけるノード移動処理の例を示すフローチャートである。まず、探索部８１３は、ＲＤＦデータセット８２５において、移動元ノードを参照するリンクの両端のノードのうち、移動元ノードではない方のノードを、移動先ノードとして特定する（ステップ１５０１）。そして、探索部８１３は、移動元ノードから移動先ノードへ探索位置を移動させるか否かを判定する（ステップ１５０２）。
【０１０２】
例えば、探索部８１３は、以下の条件（Ｃ１）又は条件（Ｃ２）のうちいずれかが満たされる場合、移動元ノード及び移動先ノードのオントロジー間に関連性があると判定する。この場合、移動元ノードから移動先ノードへ探索位置を移動させると判定される。
（Ｃ１）移動元ノードを参照するリンクと移動先ノードを参照するリンクとに対する共起統計量８２３が所定値αよりも大きい。
【０１０３】
例えば、αは、ユーザにより指定される値であり、α＝０であってもよい。移動先ノードを参照するリンクが存在しない場合、共起統計量８２３は非常に大きな値に設定される。この場合、６４ビット浮動小数点数の最大値を共起統計量８２３として用いてもよい。
（Ｃ２）移動元ノードを参照するリンクのラベル及びコメントに含まれる重要単語と、移動先ノードを参照するリンクのラベル及びコメントに含まれる重要単語とが重複している。
【０１０４】
リンクのラベル及びコメントに含まれる重要単語は、そのラベル及びコメントに含まれる単語のうち、所定値βよりも大きな重要度統計量８２４を有する単語である。移動元ノードを参照するリンクの少なくとも１つの重要単語が、移動先ノードを参照するリンクの少なくとも１つの重要単語と同じである場合、それらのリンクの重要単語が重複していると判定される。例えば、βは、ユーザにより指定される値である。
【０１０５】
一方、条件（Ｃ１）又は条件（Ｃ２）のいずれも満たされない場合、探索部８１３は、移動元ノード及び移動先ノードのオントロジー間に関連性がないと判定する。この場合、移動元ノードから移動先ノードへ探索位置を移動させないと判定される。
【０１０６】
なお、ＲＤＦデータセット８２５において、複数のリンクが移動元ノードを参照している場合、探索部８１３は、それらのリンクの端点の移動先ノードそれぞれについて、探索位置を移動させるか否かを判定する。
【０１０７】
また、複数のリンクが移動先ノードを参照している場合、探索部８１３は、それらのリンクと移動元ノードを参照するリンクのすべての組み合わせについて、条件（Ｃ１）又は条件（Ｃ２）が満たされるか否かを判定する。そして、探索部８１３は、いずれかの組み合わせについて条件（Ｃ１）又は条件（Ｃ２）が満たされる場合、探索位置を移動させると判定する。
【０１０８】
探索位置を移動させる場合（ステップ１５０２，ＹＥＳ）、探索部８１３は、経路リスト８２８を更新し（ステップ１５０３）、更新された経路リスト８２８に基づいて共通ノードを検出する（ステップ１５０４）。そして、探索部８１３は、探索ノードキュー８２７に移動先ノードを追加する（ステップ１５０５）。追加された移動先ノードは、図１３のステップ１３０４において、新たな移動元ノードとして抽出される。
【０１０９】
一方、探索位置を移動させない場合（ステップ１５０２，ＮＯ）、探索部８１３は、経路リスト８２８を更新することなく、処理を終了する。
【０１１０】
経路リスト８２８には、ノード検出処理で検出された各ノードの経路を示すエントリが含まれている。ノードｍの経路を示すエントリは、ＲＤＦデータセット８２５において、いずれかの対応ノードからノードｍまでの間に存在する１つ以上のノードの識別情報を含む。ノードｍが対応ノードである場合、そのエントリはノードｍの識別情報のみを含む。ステップ１５０３において、探索部８１３は、例えば、以下のような手順で経路リスト８２８を更新する。
（Ｐ３１）探索部８１３は、経路リスト８２８から移動元ノードの経路を示すエントリＥ０を取得する。
（Ｐ３２）探索部８１３は、経路リスト８２８からエントリＥ０を削除する
（Ｐ３３）探索部８１３は、エントリＥ０に移動先ノードの識別情報を追加して、移動先ノードの経路を示すエントリＥ１を生成する。複数の移動先ノードが存在する場合、各移動先ノードについてエントリＥ１が生成される。
（Ｐ３４）探索部８１３は、エントリＥ１を経路リスト８２８に追加する。
（Ｐ３５）探索部８１３は、経路リスト８２８に含まれるエントリをチェックし、同じノードの経路を示す複数のエントリが存在する場合、経路リスト８２８からそれらのエントリを削除する。そして、探索部８１３は、削除したエントリを結合して新たなエントリＥ２を生成し、経路リスト８２８に追加する。
【０１１１】
図１６は、ＲＤＦデータセット８２５に含まれる経路の例を示している。ｎ０、ｎ１、ｎ００、ｎ１１、ｎ０００、ｎ００１、及びｎ００２はノードを表し、ノード間の矢印は、リンクを表す。ｎ０及びｎ１は、対応ノードである。
【０１１２】
図１７は、図１６の経路を示す経路リスト８２８の例を示している。図１７（ａ）は、経路リスト８２８から取得されるエントリＥ０の例を示している。エントリ１７０１は、移動元ノードｎ００の経路を示しており、ｐ（ｎ０，ｎ００）は、対応ノードｎ０から移動元ノードｎ００までの経路上に存在するノードを表す。
【０１１３】
図１７（ｂ）は、図１７（ａ）のエントリＥ０から生成されるエントリＥ１の例を示している。この場合、移動元ノードｎ００から移動可能な移動先ノードは、ノードｎ０００〜ノードｎ００２である。このうち、移動先ノードｎ００１及び移動先ノードｎ００２が探索位置の移動先に決定された場合、エントリＥ１として、これらの移動先ノードの経路を示すエントリ１７０２及びエントリ１７０３が生成される。
【０１１４】
エントリ１７０２のｐ（ｎ０，ｎ００，ｎ００１）は、対応ノードｎ０から移動先ノードｎ００１までの経路上に存在するノードを表す。また、エントリ１７０３のｐ（ｎ０，ｎ００，ｎ００２）は、対応ノードｎ０から移動先ノードｎ００２までの経路上に存在するノードを表す。
【０１１５】
図１８は、共通ノードを含む経路リスト８２８の例を示している。図１８（ａ）は、経路リスト８２８から取得されるエントリＥ０の例を示している。エントリ１８０１は、移動元ノードｎ００の経路を示し、エントリ１８０２は、移動元ノードｎ１１の経路を示している。エントリ１８０１のｐ（ｎ０，ｎ００）は、対応ノードｎ０から移動元ノードｎ００までの経路上に存在するノードを表し、エントリ１８０２のｐ（ｎ１，ｎ１１）は、対応ノードｎ１から移動元ノードｎ１１までの経路上に存在するノードを表す。
【０１１６】
図１８（ｂ）は、図１８（ａ）のエントリＥ０から生成されるエントリＥ１の例を示している。移動元ノードｎ００から移動可能な移動先ノードのうち、移動先ノードｎ０００及び移動先ノードｎ００１が探索位置の移動先に決定された場合、エントリＥ１として、これらの移動先ノードの経路を示すエントリ１８０３及びエントリ１８０４が生成される。
【０１１７】
エントリ１８０３のｐ（ｎ０，ｎ００，ｎ０００）は、対応ノードｎ０から移動先ノードｎ０００までの経路上に存在するノードを表す。また、エントリ１８０４のｐ（ｎ０，ｎ００，ｎ００１）は、対応ノードｎ０から移動先ノードｎ００１までの経路上に存在するノードを表す。
【０１１８】
さらに、移動元ノードｎ１１から移動可能な移動先ノードｎ００１が探索位置の移動先に決定された場合、エントリＥ１として、移動先ノードｎ００１の経路を示すエントリ１８０５が生成される。エントリ１８０５のｐ（ｎ１，ｎ１１，ｎ００１）は、対応ノードｎ１から移動先ノードｎ００１までの経路上に存在するノードを表す。
【０１１９】
図１８（ｃ）は、手順（Ｐ３５）において、図１８（ｂ）のエントリ１８０４及びエントリ１８０５から生成される新たなエントリＥ２の例を示している。エントリ１８０４及びエントリ１８０５は、同じノードｎ００１の経路を示しているため、経路リスト８２８から削除される。そして、エントリ１８０４及びエントリ１８０５を結合することで、エントリ１８０６が生成される。
【０１２０】
エントリ１８０６は、ノードｎ００１の識別情報と、対応ノードｎ０からノードｎ００１までの経路を示すｐ（ｎ０，ｎ００，ｎ００１）と、対応ノードｎ１からノードｎ００１までの経路を示すｐ（ｎ１，ｎ１１，ｎ００１）とを含んでいる。
【０１２１】
したがって、探索部８１３は、ステップ１５０４においてエントリ１８０６をチェックすることで、対応ノードｎ０からリンクを辿る経路と、対応ノードｎ１からリンクを辿る経路とが、ノードｎ００１において交わることを検出できる。これにより、ノードｎ００１が共通ノードとして検出される。この場合、探索部８１３は、共通ノードｎ００１、対応ノードｎ０、及び対応ノードｎ１の識別情報（ｎ００１，ｎ０，ｎ１）を含む探索結果８２９を生成する。
【０１２２】
図６のノード探索装置６０１及び図８のノード探索装置８０１の構成は一例に過ぎず、ノード探索装置の用途又は条件に応じて一部の構成要素を省略又は変更してもよい。例えば、図８のノード探索装置８０１において、共起統計量８２３及び重要度統計量８２４が外部の装置によって計算される場合、又は共起統計量８２３及び重要度統計量８２４を用いない場合は、計算部８１２を省略することができる。
【０１２３】
図７、図１２、図１３、及び図１５のフローチャートは一例に過ぎず、ノード探索装置の構成又は条件に応じて一部の処理を省略又は変更してもよい。例えば、図１２のノード探索処理において、共起統計量８２３及び重要度統計量８２４が外部の装置によって計算される場合は、ステップ１２０１及びステップ１２０２の処理を省略することができる。図１２のノード探索処理において、共起統計量８２３及び重要度統計量８２４を用いない場合も、ステップ１２０１及びステップ１２０２の処理を省略することができる。
【０１２４】
図１５のステップ１５０２において、探索部８１３は、条件（Ｃ１）又は条件（Ｃ２）の一方のみを用いて、探索位置を移動させるか否かを判定してもよく、別の条件を用いて探索位置を移動させるか否かを判定してもよい。例えば、ユーザは、オントロジー間の関連性がある２つのリンクの組み合わせを示すリストを、記憶部８１１に記憶させておくことも可能である。この場合、探索部８１３は、移動元ノードを参照するリンクと移動先ノードを参照するリンクの組み合わせが、そのリストに含まれているか否かをチェックすることで、探索位置を移動させるか否かを決定する。
【０１２５】
図１〜図３、図４（ｂ）、図５、及び図９〜図１１に示したＲＤＦデータセットは一例に過ぎず、ＲＤＦデータセットは、ＲＤＦによって記述される情報と、記述に用いられるオントロジーとに応じて変化する。図４（ａ）に示した非ＲＤＦデータセットは一例に過ぎず、非ＲＤＦデータセットは、記述される情報に応じて変化する。
【０１２６】
図１４に示した探索ノードキュー８２７は一例に過ぎず、探索ノードキュー８２７に含まれる対応ノードは、ＲＤＦデータセット８２５及び非ＲＤＦデータセット８２６に応じて変化する。図１６に示した経路と図１７及び図１８に示した経路リスト８２８は一例に過ぎず、経路及び経路リスト８２８は、ＲＤＦデータセット８２５及び非ＲＤＦデータセット８２６に応じて変化する。
【０１２７】
式（１）〜式（１５）は一例に過ぎず、探索部８１３は、別の計算式を用いて共起統計量８２３及び重要度統計量８２４を計算してもよい。
【０１２８】
図１９は、図６のノード探索装置６０１及び図８のノード探索装置８０１として用いられる情報処理装置（コンピュータ）の構成例を示している。図１９の情報処理装置は、ＣＰＵ（Central Processing Unit）１９０１、メモリ１９０２、入力装置１９０３、出力装置１９０４、補助記憶装置１９０５、媒体駆動装置１９０６、及びネットワーク接続装置１９０７を含む。これらの構成要素はバス１９０８により互いに接続されている。
【０１２９】
メモリ１９０２は、例えば、ＲＯＭ（Read Only Memory）、ＲＡＭ（Random Access Memory）、フラッシュメモリ等の半導体メモリであり、処理に用いられるプログラム及びデータを格納する。メモリ１９０２は、図６の記憶部６１１又は図８の記憶部８１１として用いることができる。
【０１３０】
ＣＰＵ１９０１（プロセッサ）は、例えば、メモリ１９０２を利用してプログラムを実行することにより、図６の探索部６１２、図８の計算部８１２、及び探索部８１３として動作する。
【０１３１】
入力装置１９０３は、例えば、キーボード、ポインティングデバイス等であり、オペレータ又はユーザからの指示又は情報の入力に用いられる。出力装置１９０４は、例えば、表示装置、プリンタ、スピーカ等であり、オペレータ又はユーザへの問い合わせ又は指示、及び処理結果の出力に用いられる。出力装置１９０４は、図６の出力部６１３又は図８の出力部８１４として用いることができる。処理結果は、探索結果８２９であってもよい。
【０１３２】
補助記憶装置１９０５は、例えば、磁気ディスク装置、光ディスク装置、光磁気ディスク装置、テープ装置等である。補助記憶装置１９０５は、ハードディスクドライブ又はフラッシュメモリであってもよい。情報処理装置は、補助記憶装置１９０５にプログラム及びデータを格納しておき、それらをメモリ１９０２にロードして使用することができる。補助記憶装置１９０５は、図６の記憶部６１１又は図８の記憶部８１１として用いることができる。
【０１３３】
媒体駆動装置１９０６は、可搬型記録媒体１９０９を駆動し、その記録内容にアクセスする。可搬型記録媒体１９０９は、メモリデバイス、フレキシブルディスク、光ディスク、光磁気ディスク等である。可搬型記録媒体１９０９は、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）、ＤＶＤ（Digital Versatile Disk）、ＵＳＢ（Universal Serial Bus）メモリ等であってもよい。オペレータ又はユーザは、この可搬型記録媒体１９０９にプログラム及びデータを格納しておき、それらをメモリ１９０２にロードして使用することができる。
【０１３４】
このように、処理に用いられるプログラム及びデータを格納するコンピュータ読み取り可能な記録媒体は、メモリ１９０２、補助記憶装置１９０５、又は可搬型記録媒体１９０９のような、物理的な（非一時的な）記録媒体である。
【０１３５】
ネットワーク接続装置１９０７は、ＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）等の通信ネットワークに接続され、通信に伴うデータ変換を行う通信インタフェース回路である。情報処理装置は、プログラム及びデータを外部の装置からネットワーク接続装置１９０７を介して受信し、それらをメモリ１９０２にロードして使用することができる。ネットワーク接続装置１９０７は、図６の出力部６１３又は図８の出力部８１４として用いることができる。
【０１３６】
情報処理装置は、ネットワーク接続装置１９０７を介して、ユーザ端末からＲＤＦデータセット８２５、非ＲＤＦデータセット８２６、及び処理要求を受信し、探索結果８２９をユーザ端末へ送信することもできる。
【０１３７】
なお、情報処理装置が図１９のすべての構成要素を含む必要はなく、用途又は条件に応じて一部の構成要素を省略することも可能である。例えば、情報処理装置がユーザ端末から処理要求を受信する場合は、入力装置１９０３及び出力装置１９０４を省略してもよい。可搬型記録媒体１９０９又は通信ネットワークを使用しない場合は、媒体駆動装置１９０６又はネットワーク接続装置１９０７を省略してもよい。
【０１３８】
開示の実施形態とその利点について詳しく説明したが、当業者は、特許請求の範囲に明確に記載した本発明の範囲から逸脱することなく、様々な変更、追加、省略をすることができるであろう。
【０１３９】
図４乃至図１９を参照しながら説明した実施形態に関し、さらに以下の付記を開示する。
（付記１）
コンピュータにより実行されるノード探索方法であって、
前記コンピュータが、
複数のオントロジーに基づいて記述された第１データセットに含まれるノードの中から、第２データセットに含まれる複数のデータそれぞれに対応するノードを特定し、
特定された複数のノードそれぞれから前記第１データセットに含まれるリンクを辿る経路上において、移動元ノードのオントロジーと移動先ノードのオントロジーとの間の関連性を判定し、
前記関連性を判定した結果に基づいて、前記移動元ノードと前記移動先ノードとの間のリンクを辿ることで、前記複数のノードのうち第１ノードからリンクを辿る第１経路と、前記複数のノードのうち第２ノードからリンクを辿る第２経路とが交わる、共通ノードを探索し、
前記共通ノードを示す情報と前記第１ノードを示す情報と前記第２ノードを示す情報とを含む、探索結果を出力する、
ことを特徴とするノード探索方法。
（付記２）
前記コンピュータは、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間に関連性があると判定した場合、前記移動元ノードと前記移動先ノードとの間のリンクを辿り、前記移動先ノードを新たな移動元ノードに設定して、前記新たな移動元ノードを含む経路上の探索を継続し、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間に関連性がないと判定した場合、前記移動元ノードを含む経路上の探索を打ち切ることを特徴とする付記１記載のノード探索方法。
（付記３）
前記コンピュータは、複数のデータセット各々に含まれる２つのリンクの組み合わせについて、前記２つのリンクが同時に出現する出現回数を求め、求めた出現回数を用いて前記２つのリンクに対する共起統計量を計算し、前記移動元ノードを参照する第１リンクと前記移動先ノードを参照する第２リンクとに対する共起統計量に基づいて、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間の関連性を判定することを特徴とする付記１又は２記載のノード探索方法。
（付記４）
前記コンピュータは、複数のデータセットに含まれる各リンクを定義したオントロジーから、各リンクのラベル及びコメントに含まれる単語を抽出し、各リンクのラベル及びコメントに出現する各単語の出現回数を求め、求めた出現回数を用いて各単語の重要度を示す重要度統計量を計算し、前記移動元ノードを参照する第１リンクのラベル及びコメントに含まれる各単語の重要度を示す第１重要度統計量と、前記移動先ノードを参照する第２リンクのラベル及びコメントに含まれる各単語の重要度を示す第２重要度統計量とを用いて、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間の関連性を判定することを特徴とする付記１又は２記載のノード探索方法。
（付記５）
複数のオントロジーに基づいて記述された第１データセットに含まれるノードの中から、第２データセットに含まれる複数のデータそれぞれに対応するノードを特定し、
特定された複数のノードそれぞれから前記第１データセットに含まれるリンクを辿る経路上において、移動元ノードのオントロジーと移動先ノードのオントロジーとの間の関連性を判定し、
前記関連性を判定した結果に基づいて、前記移動元ノードと前記移動先ノードとの間のリンクを辿ることで、前記複数のノードのうち第１ノードからリンクを辿る第１経路と、前記複数のノードのうち第２ノードからリンクを辿る第２経路とが交わる、共通ノードを探索し、
前記共通ノードを示す情報と前記第１ノードを示す情報と前記第２ノードを示す情報とを含む、探索結果を出力する、
処理をコンピュータに実行させるためのノード探索プログラム。
（付記６）
前記コンピュータは、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間に関連性があると判定した場合、前記移動元ノードと前記移動先ノードとの間のリンクを辿り、前記移動先ノードを新たな移動元ノードに設定して、前記新たな移動元ノードを含む経路上の探索を継続し、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間に関連性がないと判定した場合、前記移動元ノードを含む経路上の探索を打ち切ることを特徴とする付記５記載のノード探索プログラム。
（付記７）
前記コンピュータは、複数のデータセット各々に含まれる２つのリンクの組み合わせについて、前記２つのリンクが同時に出現する出現回数を求め、求めた出現回数を用いて前記２つのリンクに対する共起統計量を計算し、前記移動元ノードを参照する第１リンクと前記移動先ノードを参照する第２リンクとに対する共起統計量に基づいて、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間の関連性を判定することを特徴とする付記５又は６記載のノード探索プログラム。
（付記８）
前記コンピュータは、複数のデータセットに含まれる各リンクを定義したオントロジーから、各リンクのラベル及びコメントに含まれる単語を抽出し、各リンクのラベル及びコメントに出現する各単語の出現回数を求め、求めた出現回数を用いて各単語の重要度を示す重要度統計量を計算し、前記移動元ノードを参照する第１リンクのラベル及びコメントに含まれる各単語の重要度を示す第１重要度統計量と、前記移動先ノードを参照する第２リンクのラベル及びコメントに含まれる各単語の重要度を示す第２重要度統計量とを用いて、前記移動元ノードのオントロジーと前記移動先ノードのオントロジーとの間の関連性を判定することを特徴とする付記５又は６記載のノード探索プログラム。
【符号の説明】
【０１４０】
３０１、３１１、３１２  データセット
３２１〜３２６  オントロジー
６０１、８０１  ノード探索装置
６１１、８１１  記憶部
６１２、８１３  探索部
６１３、８１４  出力部
６２１  第１データセット
６２２  第２データセット
８１２  計算部
８２１  ＲＤＦデータセット群
８２２  オントロジー群
８２３  共起統計量
８２４  重要度統計量
８２５  ＲＤＦデータセット
８２６  非ＲＤＦデータセット
８２７  探索ノードキュー
８２８  経路リスト
８２９  探索結果
１７０１〜１７０３、１８０１〜１８０６  エントリ
１９０１  ＣＰＵ
１９０２  メモリ
１９０３  入力装置
１９０４  出力装置
１９０５  補助記憶装置
１９０６  媒体駆動装置
１９０７  ネットワーク接続装置
１９０８  バス
１９０９  可搬型記録媒体
【図１】
2020060981.tif 000009
【図２】
2020060981.tif 000010
【図３】
2020060981.tif 000011
【図４】
2020060981.tif 000012
【図５】
2020060981.tif 000013
【図６】
2020060981.tif 000014
【図７】
2020060981.tif 000015
【図８】
2020060981.tif 000016
【図９】
2020060981.tif 000017
【図１０】
2020060981.tif 000018
【図１１】
2020060981.tif 000019
【図１２】
2020060981.tif 000020
【図１３】
2020060981.tif 000021
【図１４】
2020060981.tif 000022
【図１５】
2020060981.tif 000023
【図１６】
2020060981.tif 000024
【図１７】
2020060981.tif 000025
【図１８】
2020060981.tif 000026
【図１９】
2020060981.tif 000027