(57)【要約】  規則推論器及びこれを含むワイルドパターン規則の動的な具体化方法を開示する。本発明の規則推論器は、入力された推論規則にワイルドパターンが含まれているか否かによって、オントロジースキーマー（Ｏｎｔｏｌｏｇｙ  ｓｃｈｅｍａ）を参照してリートネットワークを構築するリートネットワーク構築部と、構築されたリートネットワークにオントロジー（Ｏｎｔｏｌｏｇｙ）を入力して実行することにより、推論されたトリプルを生成してワイルドパターンが動的に具体化された新たな規則を生成するリートネットワーク実行部と、生成された新たな規則をリートネットワークに追加してリートネットワークを拡張するリートネットワーク拡張部と、を備え、リートネットワークから不要なパターン整合を除去して規則に基づく推論性能を改善することができる。【選択図】図４
2013512496.tif 000002
【特許請求の範囲】
【請求項１】
入力された推論規則にワイルドパターンが含まれているか否かによって、オントロジースキーマーを参照してリートネットワークを構築するリートネットワーク構築部と、
前記構築されたリートネットワークにオントロジーを入力して実行することにより、推論されたトリプルを生成してワイルドパターンが動的に具体化された新たな規則を生成するリートネットワーク実行部と、
前記生成された新たな規則を前記リートネットワークに追加して前記リートネットワークを拡張するリートネットワーク拡張部と、を備えることを特徴とする規則推論器。
【請求項２】
前記リートネットワーク構築部は、
推論規則が入力される入力部と、
前記入力された推論規則がワイルドパターンを有するか否かを判断する判断部と、
前記入力された推論規則がワイルドパターンを有するワイルドパターン規則である場合に、前記入力されたワイルドパターン規則に対応する手掛かりパターンを選定する選定部と、
前記手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直し、該書き直した規則によって、テストノード、アルファメモリーノード、及びワイルド規則ノードをリートネットワークに追加する構築部と、を備えることを特徴とする請求項１に記載の規則推論器。
【請求項３】
前記リートネットワーク実行部は、
オントロジーが入力される受信部を更に備え、
前記受信部から入力されたオントロジーによって、前記テストノード、前記アルファメモリーノード、及び前記ワイルド規則ノードをこの順に実行して新たな規則を生成することを特徴とする請求項２に記載の規則推論器。
【請求項４】
前記リートネットワーク構築部は、
前記入力された推論規則がワイルドパターンを有さない場合に、前記入力部から入力された推論規則によって、テストノード、アルファメモリーノード、ジョインノード、ベーターメモリーノード、及び規則ノードをリートネットワークに追加することを特徴とする請求項２に記載の規則推論器。
【請求項５】
前記リートネットワーク実行部は、
前記入力部から入力されたオントロジーによって、前記テストノード、前記アルファメモリーノード、前記ジョインノード、前記ベーターメモリーノード、及び前記規則ノードをこの順に実行して新たなトリプルを生成することを特徴とする請求項４に記載の規則推論器。
【請求項６】
（ａ）リートネットワーク構築部が、入力された推論規則にワイルドパターンが含まれているか否かによって、オントロジースキーマーを参照してリートネットワークを構築するステップと、
（ｂ）リートネットワーク実行部が、前記構築されたリートネットワークにオントロジーを入力して実行することにより、推論されたトリプルを生成してワイルドパターンが動的に具体化された新たな規則を生成するステップと、
（ｃ）リートネットワーク拡張部が、前記生成された新たな規則を前記リートネットワークに追加して前記リートネットワークを拡張するステップと、を有することを特徴とする規則推論器を含むワイルドパターンの動的な具体化方法。
【請求項７】
前記ステップ（ａ）は、
前記リートネットワーク構築部に前記推論規則が入力されるステップと、
前記リートネットワーク構築部が、前記入力された推論規則がワイルドパターンを有するワイルドパターン規則であるか否かを判断するステップと、
前記入力された推論規則がワイルドパターン規則である場合に、前記リートネットワーク構築部が、前記入力されたワイルドパターン規則に対応する手掛かりパターンを選定するステップと、
前記リートネットワーク構築部が、前記手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直すステップと、
前記リートネットワーク構築部が、前記書き直した規則によって、テストノード、アルファメモリーノード、及びワイルド規則ノードをリートネットワークに追加するステップと、を含むことを特徴とする請求項６に記載の規則推論器を含むワイルドパターンの動的な具体化方法。
【請求項８】
前記ステップ（ｂ）において、
前記リートネットワーク実行部が、追加されたオントロジーによって、前記テストノード、前記アルファメモリーノード、及び前記ワイルド規則ノードをこの順に実行して新たな規則を生成することを特徴とする請求項７に記載の規則推論器を含むワイルドパターンの動的な具体化方法。
【請求項９】
前記オントロジーは、オントロジースキーマー又はオントロジーインスタンスであることを特徴とする請求項８に記載の規則推論器を含むワイルドパターンの動的な具体化方法。
【請求項１０】
前記ステップ（ｂ）において、
前記入力された推論規則がワイルドパターンを有さない場合に、前記リートネットワーク構築部が、追加された推論規則によって、テストノード、アルファメモリーノード、ジョインノード、ベーターメモリーノード、及び規則ノードをリートネットワークに追加するステップと、
前記リートネットワーク実行部が、追加されたオントロジーによって、前記テストノード、前記アルファメモリーノード、前記ジョインノード、前記ベーターメモリーノード、及び前記規則ノードをこの順に実行して新たなトリプルを生成するステップと、を更に含むことを特徴とする請求項６に記載の規則推論器を含むワイルドパターンの動的な具体化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、規則推論器及びこれを含むワイルドパターン規則の動的な具体化方法に係り、より詳細には、オントロジースキーマーを参照して、ワイルドパターン規則を動的に具体化させる規則推論器及びこれを含むワイルドパターン規則の動的な具体化方法に関する。
【背景技術】
【０００２】
一般的に、推論機能は、多くのセマンティックウェブツールの必須機能であり、１９７９年にリート（Ｒｅｔｅ）アルゴリズムが開発されて以来、規則に基づく推論方式は最も汎用化された推論技法の一つとなっている。リートアルゴリズムは、そもそも生成規則システムの効率性のために講じられたものであるが、規則に基づくオントロジー推論に適用しても好適なアルゴリズムである。ここで、規則は、ｉｆ−ｔｈｅｎ規則をいい、これは、左側（ＬＨＳ）と右側（ＲＨＳ）とによって構成される。ＬＨＳは、更に１以上の条件から構成されるが、これらの条件が満たされてはじめてＲＨＳが実行される。
【０００３】
オントロジー（Ｏｎｔｏｌｏｇｙ）において、一つの事実は、主語（ｓｕｂｊｅｃｔ）、述語（ｐｒｅｄｉｃａｔｅ）、目的語（ｏｂｊｅｃｔ）により構成されるため、各条件は、一般に、トリプルパターンで表される。
【０００４】
ここで、トリプルパターンとは、主語、述語、目的語のトリプルのうちの１以上が変数であってもよいことを言う。ＲＨＳは、結論的に、同じく１以上のトリプルパターンにより構成されるが、ＲＨＳの全ての変数は必ずＬＨＳに１回以上出現する必要がある。ＬＨＳがオントロジーの事実に一致し、これらの変数が或る値に割り当てられると、ＲＨＳは同じ変数−値の割り当てを適用して新たな事実を生成する。
【０００５】
規則に基づくオントロジー推論において、リートアルゴリズムは、パターン整合の効率性が良好であるという理由から幅広く用いられている。その効率性は、幾つかの規則の間に共有されたパターンを繰り返し一致させることが避けられることに起因する。このアルゴリズムは、トリプルを取り扱えるように作業メモリー要素（ＷＭＥ）を修正することにより、規則に基づくオントロジー推論にも使用できる。
【０００６】
オントロジーは、主としてＲＤＦ（Ｒｅｓｏｕｒｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ）とＲＤＦ／Ｓ（Ｒｅｓｏｕｒｃｅ  Ｄｅｓｃｒｉｐｔｉｏｎ  Ｆｒａｍｅｗｏｒｋ  Ｓｃｈｅｍａ）、ＯＷＬ言語により書かれる。これらの言語は、予め定義された幾つかの語彙からなるが、これらの語彙の意味から幾つかの伴意規則（ｅｎｔａｉｌｍｅｎｔ  ｒｕｌｅｓ）が導かれ得る。これらの語彙は、オントロジーそのものを記述するために定義されたものであり、これらの伴意規則は包括的であり、ある特定のオントロジーに対しても常に有効なものであるため、ワイルドパターンを有する場合が珍しくない。
【０００７】
ワイルドパターンを有する伴意規則、即ちワイルドパターン規則は、大規模オントロジーに対する推論の場合には非効率性を更に悪化させることもある。幾つかの大規模オントロジーシステムがＭＳＳＱＬサーバーやオラクル、ＭｙＳＱＬなどのデータベースエンジンを基本的な格納先として活用するが、ここで、トリプルは、概ね効率性のためにクラス毎及び属性毎に分けられて格納される。推論のためにリートアルゴリズムが使用されることがあるが、リートのアルファメモリーとベーターメモリーをそれ以上主メモリーに保持することはできない。一つの解決策として、アルファメモリー及びベーターメモリーが、データベースビュー技法によって、対応するテーブルを参照するようにすることが挙げられる。この場合に、任意のトリプルパターンに対応するアルファメモリーは、結果的に全てのトリプルテーブルを参照する必要があり、これは、続くジョインノードにおいてジョインを行う際に、不要なテーブルへのアクセスを誘導する非効率性を来たすことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は、上記従来の問題点に鑑みてなされたものであって、本発明の目的は、伴意規則に含まれるワイルドパターンが対象オントロジーの全てのトリプルに一致し得るために規則に基づく推論において非効率性が誘起されるという問題を解消することにあり、オントロジースキーマーを参照して、入力されたワイルドパターン規則を動的に具体化させる規則推論器及びこれを含むワイルドパターン規則の動的な具体化方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は、入力された推論規則にワイルドパターンが含まれているか否かによって、オントロジースキーマー（Ｏｎｔｏｌｏｇｙ  ｓｃｈｅｍａ）を参照してリートネットワークを構築するリートネットワーク構築部と、前記構築されたリートネットワークにオントロジー（Ｏｎｔｏｌｏｇｙ）を入力して実行することにより、推論されたトリプルを生成してワイルドパターンが動的に具体化された新たな規則を生成するリートネットワーク実行部と、前記生成された新たな規則を前記リートネットワークに追加して前記リートネットワークを拡張するリートネットワーク拡張部と、を備える規則推論器を提供する。
【００１０】
前記リートネットワーク構築部は、推論規則が入力される入力部と、前記入力された推論規則がワイルドパターンを有するか否かを判断する判断部と、前記入力された推論規則がワイルドパターンを有するワイルドパターン規則である場合に、前記入力されたワイルドパターン規則に対応する手掛かりパターンを選定する選定部と、前記手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直し、該書き直した規則によって、テストノード、アルファメモリーノード、及びワイルド規則ノードをリートネットワークに追加する構築部と、を備えていてもよい。
【００１１】
また、上記目的を達成するために、本発明は、（ａ）リートネットワーク構築部が、入力された推論規則にワイルドパターンが含まれているか否かによって、オントロジースキーマーを参照してリートネットワークを構築するステップと、（ｂ）リートネットワーク実行部が、前記構築されたリートネットワークにオントロジーを入力して実行することにより、推論されたトリプルを生成してワイルドパターンが動的に具体化された新たな規則を生成するステップと、（ｃ）リートネットワーク拡張部が、前記生成された新たな規則を前記リートネットワークに追加して前記リートネットワークを拡張するステップと、を有する規則推論器を含むワイルドパターンの動的な具体化方法を提供する。
【発明の効果】
【００１２】
本発明の規則推論器及びこれを含むワイルドパターン規則の動的な具体化方法によれば、ＲＤＦ又はＯＷＬ意味論をはじめとする多くの伴意規則に含まれるワイルドパターンが対象オントロジーの全てのトリプルに一致し得るために規則に基づく推論において非効率性が誘起されていた従来の技術に比べて、本発明は、リートフレームワーク内においてリートネットワークの初期の構築ステップ、オントロジーを入力してワイルドパターン規則を動的に具体化させるリートネットワーク実行ステップ及びリートネットワークの拡張ステップを含む具体化技法を用いることで非効率性を解消することができるという効果がある。
【００１３】
また、本発明の規則推論器及びこれを含むワイルドパターン規則の動的な具体化方法によれば、具体化技法の適用後にリートネットワークにおいてジョインノードの数とジョイン演算の試みが低減されていることが確認できるので、規則に基づく推論性能及びその効率性が向上するという効果がある。
【図面の簡単な説明】
【００１４】
【図１】本発明の一実施形態による規則推論器を示すブロック図である。
【図２】図１のリートネットワーク構築部を具体的に示すブロック図である。
【図３】図１のリートネットワーク実行部を具体的に示すブロック図である。
【図４】本発明の一実施形態によるワイルドパターン規則の動的な具体化方法を示す概略的なフローチャートである。
【図５】本発明の一実施形態によるワイルドパターン規則の動的な具体化方法を示す具体的なフローチャートである。
【図６】本発明の一実施形態による推論規則がワイルドパターン規則でない場合を示すフローチャートである。
【図７】図４〜図６によるワイルドパターン規則の動的な具体化方法を示す例示図である。
【発明を実施するための形態】
【００１５】
本明細書及び請求範囲に用いられている用語や単語は、通常的又は辞書的な意味に限定されて解釈されず、発明者は、自分の発明を最良の方法により説明するために用語の概念を適切に定義することができるという原則を踏まえて、本発明の技術的思想に見合う意味と概念として解釈さるべきである。
【００１６】
以下、本発明を実施するための形態の具体例を、図面を参照しながら詳細に説明する。
【００１７】
図１は、本発明の一実施形態による規則推論器を示すブロック図であり、図１に示すように、本実施形態による規則推論器１００は、リートネットワーク構築部１１０、リートネットワーク実行部１２０、及びリートネットワーク拡張部１３０を備えてなる。
【００１８】
リートネットワーク構築部１１０は、入力された推論規則にワイルドパターンが含まれているか否かによって、オントロジースキーマーを参照して、適切なリートネットワークを構築する。
【００１９】
リートネットワーク実行部１２０は、リートネットワークにオントロジーを入力して実行することにより、ワイルドパターンが動的に具体化された新たな規則を生成する。即ち、リートネットワーク実行部１２０は、リートネットワーク構築部１１０が構築したリートネットワークを実行する。
【００２０】
リートネットワーク拡張部１３０は、リートネットワーク実行部１２０において生成された新たな規則をリートネットワークに追加して、リートネットワークを拡張する。
【００２１】
図２及び図３は、図１のリートネットワーク構築部及びリートネットワーク実行部を具体的に示すブロック図であり、図１〜図３に基づいて詳述する。
【００２２】
リートネットワーク構築部１１０は、入力部１１１、判断部１１３、選定部１１５、及び構築部１１７を備えてなる。
【００２３】
入力部１１１には、推論を行う推論規則が入力される。このとき、図示していないが、推論規則は、メモリーにファイル形式で格納されていてもよい。
【００２４】
判断部１１３は、入力部１１１から入力された推論規則がワイルドパターンを有するか否かを判断する。このとき、推論規則がワイルドパターンを有する場合に、ワイルドパターン規則と呼ぶ。
【００２５】
選定部１１５は、判断部１１３における判断の結果、入力された推論規則がワイルドパターン規則である場合に、入力されたワイルドパターン規則に対応する手掛かりパターンを選定する。
【００２６】
選定部１１５は、手掛かりパターンを選定する際に、メモリーに別途に格納されたオントロジースキーマーをロードして、手掛かりパターンを選定することができ、この詳細については、後述する。
【００２７】
構築部１１７は、入力部１１１を介して入力されたワイルドパターン規則を、選定部１１５において選定した手掛かりパターンを参照して書き直す。なお、構築部１１７は、書き直した規則によって、テストノード、アルファメモリーノード、及びワイルド規則ノードをリートネットワークに追加する。
【００２８】
また、リートネットワーク実行部１２０は、推論されたトリプルの生成及び動的に具体化された推論規則の生成を司るものであり、受信部１２１及び実行部１２３を備えてなる。
【００２９】
受信部１２１には、別途に格納されたオントロジーが入力される。このとき、オントロジーは、オントロジースキーマーやオントロジーインスタンスであってもよい。
【００３０】
実行部１２３は、受信部１２１から入力されたオントロジーによって、テストノード、アルファメモリーノード、ジョインノード、ベーターメモリーノード、及び規則ノードなどをこの順に実行して推論されたトリプルを生成するか、或いは、テストノード、アルファメモリーノード、及びワイルド規則ノードをこの順に実行して新たな規則を生成する。
【００３１】
このように、リートネットワーク構築部１１０及びリートネットワーク実行部１２０を介して入力された推論規則に対応するリートネットワークが構築及び実行された後には、リートネットワーク拡張部１３０が、生成された新たな規則をリートネットワークに追加してリートネットワークを拡張する。
【００３２】
本発明の一実施形態によるワイルドパターン規則の動的な具体化方法について詳述する前に、ワイルドパターン及びリートアルゴリズムについて説明する。
【００３３】
リートアルゴリズムは、規則に基づくオントロジー推論に適したアルゴリズムであり、規則とは、Ｗ３Ｃ（Ｗｏｒｌｄ  Ｗｉｄｅ  Ｗｅｂ  Ｃｏｎｓｏｒｔｉｕｍ）のＲＤＦＳ及びＯＷＬ文書に記述されている伴意規則のことをいう。表１は、ＲＤＦ及びＯＷＬ意味論に記述されているワイルドパターンを有する伴意規則の例を示す。
【００３４】
【表１】
2013512496.tif 000003
【００３５】
オントロジーにおいて、一つの事実は、主語（ｓｕｂｊｅｃｔ）、述語（ｐｒｅｄｉｃａｔｅ）、目的語（ｏｂｊｅｃｔ）によって構成されるため、各条件は、一般に、トリプルパターンで表される。ここで、トリプルパターンとは、主語、述語、目的語のトリプルのうちの一つ以上が変数であることをいう。
【００３６】
ワイルドパターンは、表１のパターンのうちの下線が引かれたパターンであり、トリプルパターンのうち、述語部（ｐｒｅｄｉｃａｔｅ）が変数であるか、或いは述語部が「ｒｄｆ：ｔｙｐｅ」であり、且つ目的語が変数である場合を言う。
【００３７】
より具体的に、述語部が変数である場合にはワイルド属性パターンと呼ばれ、述語部が「ｒｄｆ：ｔｙｐｅ」であり、且つ目的語が変数である場合にはワイルドクラスパターンと呼ばれる。例えば、（？ｘ？ａ？ｙ）などのパターンがワイルド属性パターンに相当し、（？ｚｒｄｆ：ｔｙｐｅ？ｘ）などのパターンがワイルドクラスパターンに相当する。
【００３８】
ワイルドパターンを有する規則のうち、ジョイン演算を必要としないものもあるが、表１に示す例は、一回以上のジョイン演算を必要とする規則である。
【００３９】
ワイルドパターンは、対象オントロジーの全てのトリプル若しくは全てのクラスインスタンストリプルに一致し得るので、ワイルドパターンを含むジョイン演算には非常に長時間がかかる。このため、ワイルドパターンは、オントロジースキーマーを参照して具体化させる過程を経ることで具体化された規則に変換する必要がある。
【００４０】
実は、述語変数はオントロジーに定義された全ての述語に一致し得、ワイルドクラスパターンの目的語変数（換言すると、クラス変数）はオントロジーに定義された全てのクラスに一致し得る。このような述語及びクラスは、オントロジーのスキーマーとして定義され、このスキーマーは、推論規則やオントロジーインスタンス（即ち、個別トリプル）に先駆けて入力されることが想定し得る。このため、述語変数とクラス変数は、オントロジースキーマーを用いて推論を行う前に具体化できる。
【００４１】
ワイルドパターン規則、特にジョイン演算を必要とするワイルドパターン規則は、ワイルドパターンの述語変数やクラス変数を制約するもう一つのトリプルパターンを有する場合が珍しくない。このようなトリプルパターンは手掛かりパターンと呼ばれるが、ｒｄｆ２の場合（？ａｒｄｆｓ：ｄｏｍａｉｎ？ｚ）が手掛かりパターンであり、ワイルドパターンである（？ｘ？ａ？ｙ）の述語変数「？ａ」を制約する。
【００４２】
即ち、「？ａ」は、属性（ｐｒｏｐｅｒｔｙ）であり、且つ「ｒｄｆｓ：ｄｏｍａｉｎ」の主語である必要がある。或いは、ｒｄｆｓ９の場合（？ｘｒｄｆｓ：ｓｕｂＣｌａｓｓＯｆ？ｙ）が手掛かりパターンに相当するが、ワイルドパターンである（？ｚｒｄｆ：ｔｙｐｅ？ｘ）のクラス変数「？ｘ」を制約する。即ち、「？ｘ」はクラスであり、且つ「ｒｄｆｓ：ｓｕｂＣｌａｓｓＯｆ」の主語である必要がある。
【００４３】
以下、ワイルドパターン規則がオントロジースキーマーを参照して具体化される過程を説明する。ここで、具体化とは、ワイルドパターン規則を幾つかの特定の規則に変換することをいう。表２は、定義された対象オントロジースキーマーの例である。
【００４４】
【表２】
2013512496.tif 000004
【００４５】
表２に記載のオントロジースキーマーが与えられる場合、規則ｒｄｆｓ２は、手掛かりパターンに含まれる変数に対する制約を用いて、次の２種類の特定の規則に具体化できる。
【００４６】
ｒｄｆｓ２−１：（？ｘｅｘ：ｔａｋｅｓＣｏｕｒｓｅ？ｙ）（ｅｘ：ｔａｋｅｓＣｏｕｒｓｅｒｄｆｓ：ｄｏｍａｉｎｅｘ：Ｓｔｕｄｅｎｔ）→（？ｘｒｄｆ：ｔｙｐｅｅｘ：Ｓｔｕｄｅｎｔ）
ｒｄｆｓ２−２：（？ｘｅｘ：ｔｅａｃｈｅｒＯｆ？ｙ）（ｅｘ：ｔｅａｃｈｅｒＯｆｒｄｆｓ：ｄｏｍａｉｎｅｘ：Ｐｒｏｆｅｓｓｏｒ）→（？ｘｒｄｆ：ｔｙｐｅｅｘ：Ｐｒｏｆｅｓｓｏｒ）
【００４７】
加えて、これらの具体化されたそれぞれの規則において、２番目のトリプルパターンはそれ以上変数を有さず、与えられたオントロジーにおいて常に満足するパターンである。このため、一般化が失われることなく、これらを具体化された規則から除去することができ、下記の結果が得られる。
【００４８】
ｒｄｆｓ２−１：（？ｘｅｘ：ｔａｋｅｓＣｏｕｒｓｅ？ｙ）→（？ｘｒｄｆ：ｔｙｐｅｅｘ：Ｓｔｕｄｅｎｔ）
ｒｄｆｓ２−２：（？ｘｅｘ：ｔｅａｃｈｅｒＯｆ？ｙ）→（？ｘｒｄｆ：ｔｙｐｅｅｘ：Ｐｒｏｆｅｓｓｏｒ）
【００４９】
このようにして得られた２種類の規則は、それ以上のジョイン演算を必要としない。これに対し、本来のワイルドパターン規則は、一つのジョイン演算を必要としていた。結果的に、ワイルドパターンの具体化過程を通じて規則に基づく推論の効率性が向上したわけである。
【００５０】
規則ｒｄｆｓ９も同様の方式によって具体化でき、このようにして得られた具体化された規則は、下記の２種類の規則となる。
【００５１】
ｒｄｆｓ９−１：（？ｚｒｄｆ：ｔｙｐｅｅｘ：Ｓｔｕｄｅｎｔ）→（？ｚｒｄｆ：ｔｙｐｅｅｘ：Ｐｅｒｓｏｎ）
ｒｄｆｓ９−２：（？ｚｒｄｆ：ｔｙｐｅｅｘ：Ｐｒｏｆｅｓｓｏｒ）→（？ｚｒｄｆ：ｔｙｐｅｅｘ：Ｐｅｒｓｏｎ）
【００５２】
本来のワイルドパターン規則は、一つのジョイン演算を必要としていたが、上記の具体化過程を経た規則は、それ以上のジョイン演算を必要としない。
【００５３】
図４は、本発明の一実施形態によるワイルドパターン規則の動的な具体化方法を示す概略的なフローチャートである。図４を参照すると、先ず、ステップＳ４１において、リートネットワーク構築部１１０は、入力された推論規則にワイルドパターンが含まれているか否かによって、オントロジースキーマーを参照して適切なリートネットワークを構築する。
【００５４】
次に、ステップＳ４３において、リートネットワーク実行部１２０は、リートネットワークにオントロジーを入力してリートネットワークを実行することにより、推論されたトリプルを生成するか、或いはワイルドパターンが動的に具体化された新たな規則を生成する。これは、リートネットワークを実行する過程であるといえる。
【００５５】
最後に、ステップＳ４５において、リートネットワーク拡張部１３０は、ステップＳ４３において動的に具体化させて生成された推論規則をリートネットワークに追加してリートネットワークを拡張する。
【００５６】
図５及び図６は、本発明の一実施形態によるワイルドパターン規則の動的な具体化方法を示す具体的なフローチャートであり、図７は、図４〜図６によるワイルドパターン規則の動的な具体化方法を示す例示図である。
【００５７】
図１〜図７を参照すると、まず、ステップＳ４１１において、リートネットワーク構築部１１０には入力部１１１を介して推論規則が入力される。
【００５８】
次いで、ステップＳ４１３において、判断部１１３は、入力された推論規則がワイルドパターンを有するワイルドパターン規則であるか否かを判断する。
【００５９】
次いで、ステップＳ４１５において、選定部１１５は、入力された推論規則がワイルドパターン規則である場合に、入力されたワイルドパターン規則に対応する手掛かりパターンを選定する。
【００６０】
例えば、図７を参照すると、リートネットワーク構築部１１０は、入力されたワイルドパターン規則の手掛かりパターンを選定する。最初に、リートネットワークは、与えられた規則から生成されるが、全ての非ワイルドパターン規則に対しては、規則の左側（ＬＨＳ）の各トリプルパターンは、普通のリートアルゴリズムでのように、ルートノードから途中の幾つかのテストノードを経てアルファメモリーノードまでの単一の経路を経て変換される。これに対し、全てのワイルドパターン規則に対しては、先ず、規則の条件節において、ワイルドパターンの変数を制約し得る手掛かりパターンを探し出す。
【００６１】
しかし、規則に手掛かりパターンがない場合が稀にあるが、このときには、デフォルトの手掛かりパターンを用いる。より具体的に、ワイルド属性パターンの場合には、（？ａｒｄｆ：ｔｙｐｅｒｄｆ：Ｐｒｏｐｅｒｔｙ）をデフォルトの手掛かりパターンとして用いるが、ここで、変数「？ａ」は、ワイルド属性パターンの述語変数に対応する必要がある。同様に、ワイルドクラスパターンの場合には、（？ｘｒｄｆ：ｔｙｐｅｒｄｆｓ：Ｃｌａｓｓ）をデフォルトの手掛かりパターンとして用いるが、ここで、変数「？ｘ」は、ワイルドクラスパターンのクラス変数に対応する必要がある。
【００６２】
手掛かりパターンを選定した後、ステップＳ４１７において、リートネットワーク構築部１１０は、ワイルドパターン規則を、規則の左側（ＬＨＳ）に手掛かりパターンのみ有し、右側（ＲＨＳ）に本来の規則から手掛かりパターンを除去した規則を有する新たな規則に書き直す。
【００６３】
例えば、図７に示すように、規則ｒｄｆｓ２は、手掛かりパターン（？ａｒｄｆｓ：ｄｏｍａｉｎ？ｚ）を用いてｒｄｆｓ２′規則に書き直される。
【００６４】
次いで、ステップＳ４１９において、リートネットワーク構築部１１０は、書き直した規則をリートネットワークに追加して、通常のリートネットワークにおける方式により、適切なテストノードｔ１とアルファメモリーノードα１を構成し、その下にワイルド規則ノード（ｗｉｌｄ  ｒｕｌｅ  ｎｏｄｅ）を続ける。このワイルド規則ノードは、規則の右側（ＲＨＳ）に対応するという点で、本来のリートアルゴリズムの規則ノードに類似しているが、規則ノードが推論に拡張されたトリプルを生成するのに対し、ワイルド規則ノードは、具体化された規則を生成するという点で明らかな相違点を有する。
【００６５】
図７に示すように、ワイルド規則ノードｒｄｆｓ２′は、具体化のための規則テンプレートとして［（？ｘα．ｓｙ）→（？ｘｒｄｆ：ｔｙｐｅα．ｏ）］を有する。ここで、α．ｓ及びα．ｏは、それぞれ対応するアルファメモリーの主語及び目的語をいう。
【００６６】
次いで、ステップＳ４３１において、リートネットワーク実行部１２０は、ファイル形式で与えられたオントロジーをリートネットワークに入力して、リートネットワークを実行する。
【００６７】
即ち、リートネットワーク実行部１２０は、テストノード及びアルファメモリーノードをこの順に実行させて活性化させ、次いで、ワイルド規則ノードを活性化させて具体化された推論規則を動的に生成する。
【００６８】
具体的に、ワイルド規則ノードが活性化されると、そのワイルド規則ノードに含まれている規則テンプレートによって、特定の推論規則、即ち具体化された推論規則が動的に生成される。図７を参照すると、ｒｄｆｓ２−１及びｒｄｆｓ２−２が、ステップＳ４３１を経て具体化された規則である。
【００６９】
最後に、ステップＳ４５１において、リートネットワーク拡張部１３０は、ステップＳ４３１において生成された新たな規則をリートネットワークに追加して、リートネットワークを拡張する。
【００７０】
このとき、具体化された規則が依然としてワイルドパターン規則を有している場合に、それ以上ワイルドパターンを有さなくなるまで、図５に示すステップＳ４１５〜ステップＳ４３１を繰り返し行う。
【００７１】
ステップＳ４１３において、判断部１１３における判断の結果、生成された規則又は入力された推論規則がワイルドパターンを有さない場合、図６に示すように、ステップＳ４２１において、リートネットワーク構築部１１０は、追加された規則によって、テストノード、アルファメモリーノード、ジョインノード、ベーターメモリーノード、及び規則ノードをリートネットワークに追加する。
【００７２】
次いで、ステップＳ４３３において、リートネットワーク実行部１２０は、追加されたオントロジーによって、リートネットワークのテストノード、アルファメモリーノード、ジョインノード、ベーターメモリーノード、及び規則ノードをこの順に実行して新たなトリプルを生成する。
【００７３】
次いで、ステップＳ４３５において、図示していないが、リートネットワーク実行部１２０は、推論されたトリプルを再びリートネットワークに入力して、リートネットワーク実行をそれ以上新たなトリプルが推論されなくなるまで繰り返し行った後、推論されたトリプルを出力する。
【００７４】
具体的に、図７に示すように、ｔ２及びｔ３などのテストノードと、α２及びα３などのアルファメモリーと、ｒｄｆｓ２−１及びｒｄｆｓ２−２などの規則ノードといったように多数のノードが生成される。
【００７５】
最後に、本発明の一実施形態によるワイルドパターン規則の動的な具体化方法の有効性を調べるために、表３の伴意規則とＬＵＢＭのオントロジースキーマーを用いて作成するリートネットワークにおける幾つかの統計数値を調査した。
【００７６】
【表３】
2013512496.tif 000005
【００７７】
先ず、本実施形態による具体化技法を適用しなかった状態におけるリートネットワークを構成したときのテストノードの数、アルファメモリーノードの数、ジョインノードの数、試みられたジョイン演算の数を数えた。これらの数値は、表３の左列に示す。
【００７８】
また、本実施形態による具体化技法を適用した状態におけるリートネットワークを構成したときのテストノードの数、アルファメモリーノードの数、ジョインノードの数、試みられたジョイン演算の数を数えた。これらの数値は、表３の右列に示す。ここで、計算を容易にするために、推論されたトリプルがリートネットワークに更に及ぼす影響は排除した。
【００７９】
表３に示すように、本実施形態による具体化技法を適用した場合に、テストノード及びアルファメモリーノードの数が相当増えるものの、ジョインノードの数は有効に低減されていることが確認できる。即ち、本実施形態による具体化技法によって８８個のテストノード（８６個のアルファメモリーノード）が追加されたが、これらのうち２５個は互いに共有できるものであった。結果的に、７１個のテストノードと６９個のアルファメモリーノードに増えたわけである。しかしながら、ジョイン演算の場合には、本来の規則においては７個のジョインノードを有するが、具体化を適用した後には単一のジョインノード（ｔｒａｎｓｐｒｏｐ規則の場合である）しか残らない。
【００８０】
ジョインノードが活性化されるときに試みられるジョイン演算の数を数えるために、ＬＵＢＭ（１，０）のオントロジーインスタンスを使用した。これは、概ね１０万トリプルにより構成されている。具体化技法を適用しなかったときには、ワイルド属性パターンが全てのトリプルに一致し得るので、少なくとも１００億回のジョイン演算（ｔｒａｎｓｐｒｏｐ規則の場合である）が試みられる。しかしながら、具体化技法を適用したときには、ＬＵＢＭ（１，０）が２３９個のｕｂ：ｓｕｂＯｒｇａｎｉｚａｔｉｏｎＯｆトリプルを有するため、単に５万７千回程度のジョイン演算が試みられる。この結果から、ワイルドパターン規則の具体化過程を通じて規則に基づく推論の性能（速度面）がかなり改善できるということが分かる。
【００８１】
即ち、ＲＤＦとＯＷＬ意味論の多くの伴意規則が条件部にワイルドパターンを有する。ワイルドパターンは、対象オントロジーの全てのトリプルに一致し得るので、規則に基づく推論においてかなりの非効率性を来たすことがある。更に、このような非効率性は、対象オントロジーの規模が大きくなるにつれて低下する。
【００８２】
しかしながら、本実施形態による規則推論器及びこれを含むワイルドパターン規則の動的な具体化方法によってこのような非効率性が回避でき、また規則に基づく推論のために汎用となる効率よいアルゴリズムであるリートフレームワーク内においてこの具体化技法を実現することができる。動的な具体化方法の効果を測定するために、リートネットワークにおいてジョインノードの数がどれほど減ったか、そしてジョイン演算の試みがどれほど減ったかを測って、具体化技法を適用する前と比較した。その結果、ワイルドパターン規則の具体化過程によって規則に基づく推論の性能（速度面）がかなり改善できることが分かった。
【００８３】
以上、本発明の好適な実施形態について説明したが、本発明は、上述の実施形態に何ら限定されるものではなく、特許請求の範囲において請求する本発明の要旨を逸脱することなく、当該発明が属する技術分野において通常の知識を持った者であれば誰でも種々の変更実施が可能な範囲で、本発明の方法的な精神があるといえる。
【符号の説明】
【００８４】
１００    規則推論器
１１０    リートネットワーク構築部
１１１    入力部
１１３    判断部
１１５    選定部
１１７    構築部
１２０    リートネットワーク実行部
１２１    受信部
１２３    実行部
１３０    リートネットワーク拡張部
【図１】
2013512496.tif 000006
【図２】
2013512496.tif 000007
【図３】
2013512496.tif 000008
【図４】
2013512496.tif 000009
【図５】
2013512496.tif 000010
【図６】
2013512496.tif 000011
【図７】
2013512496.tif 000012
【手続補正書】
【提出日】平成24年5月30日(2012.5.30)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
トリプルで表されるオントロジーインスタンスと、前記トリプルの属性及びクラスを定義するオントロジースキーマーと、から構成されるオントロジー及び推論規則を入力して該入力されたオントロジー及び推論規則に対応するリートネットワークを構築し、ワイルドパターンを有するワイルドパターン規則である推論規則が入力された場合に、前記オントロジースキーマーを参照してワイルドパターン規則に対応する手掛かりパターンを選定し、該選定された手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直し、該書き直されたワイルドパターン規則を反映するように、テストノード、アルファメモリーノード、及びワイルド規則ノードを追加するリートネットワーク構築部と、
前記リートネットワーク構築部によって構築されたリートネットワークを実行して推論されたトリプルを生成するか、或いは前記ワイルドパターン規則が動的に具体化された新たな推論規則を生成するリートネットワーク実行部と、
前記リートネットワーク実行部によって生成された新たな推論規則を前記リートネットワーク構築部に入力して前記リートネットワークを拡張するリートネットワーク拡張部と、を備えることを特徴とする規則推論器。
【請求項２】
前記リートネットワーク構築部は、
推論規則が入力される入力部と、
前記入力された推論規則がワイルドパターンを有するか否かを判断する判断部と、
前記入力された推論規則がワイルドパターンを有するワイルドパターン規則である場合に、前記オントロジースキーマーを参照して前記入力されたワイルドパターン規則に対応する前記手掛かりパターンを選定する選定部と、
前記手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直し、該書き直したワイルドパターン規則によって、テストノード、アルファメモリーノード、及びワイルド規則ノードを前記リートネットワークに追加する構築部と、を備えることを特徴とする請求項１に記載の規則推論器。
【請求項３】
前記書き直されたワイルドパターン規則は、左側（ＬＨＳ）に手掛かりパターンのみを有し、右側（ＲＨＳ）に元のワイルドパターン規則から前記手掛かりパターンを除いたものを有することを特徴とする請求項２に記載の規則推論器。
【請求項４】
前記ワイルド規則ノードは、前記ワイルドパターン規則が動的に具体化された推論規則を生成するものであることを特徴とする請求項１に記載の規則推論器。
【請求項５】
前記リートネットワーク構築部は、
前記リートネットワーク実行部によって生成された新たな推論規則に対応するテストノード、アルファメモリーノード、ジョインノード、ベーターメモリーノード、規則ノード、及びワイルド規則ノードを前記リートネットワークに追加することを特徴とする請求項１に記載の規則推論器。
【請求項６】
（ａ）リートネットワーク構築部が、トリプルで表されるオントロジーインスタンスと、前記トリプルの属性及びクラスを定義するオントロジースキーマーと、から構成されるオントロジー及び推論規則を入力して該入力されたオントロジー及び推論規則に対応するリートネットワークを構築し、ワイルドパターンを有するワイルドパターン規則である推論規則が入力された場合に、前記オントロジースキーマーを参照してワイルドパターン規則に対応する手掛かりパターンを選定し、該選定された手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直し、該書き直されたワイルドパターン規則を反映するように、テストノード、アルファメモリーノード、及びワイルド規則ノードを追加するステップと、
（ｂ）リートネットワーク実行部が、前記構築されたリートネットワークにオントロジーを入力して実行することにより、推論されたトリプルを生成するか、或いは前記ワイルドパターン規則が動的に具体化された新たな推論規則を生成するステップと、
（ｃ）リートネットワーク拡張部が、前記生成された新たな推論規則を前記リートネットワークに追加して前記リートネットワークを拡張するステップと、を有することを特徴とする規則推論器を含むワイルドパターン規則の動的な具体化方法。
【請求項７】
前記ステップ（ａ）は、
前記リートネットワーク構築部に前記推論規則が入力されるステップと、
前記リートネットワーク構築部が、前記入力された推論規則がワイルドパターンを有するワイルドパターン規則であるか否かを判断するステップと、
前記入力された推論規則がワイルドパターン規則である場合に、前記リートネットワーク構築部が、前記オントロジースキーマーを参照して前記入力されたワイルドパターン規則に対応する前記手掛かりパターンを選定するステップと、
前記リートネットワーク構築部が、前記手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直すステップと、
前記リートネットワーク構築部が、前記書き直したワイルドパターン規則に対応するテストノード、アルファメモリーノード、及びワイルド規則ノードを前記リートネットワークに追加するステップと、を含むことを特徴とする請求項６に記載の規則推論器を含むワイルドパターン規則の動的な具体化方法。
【請求項８】
前記ステップ（ｂ）において、
前記リートネットワーク実行部が、追加されたオントロジーによって、前記テストノード、前記アルファメモリーノード、及び前記ワイルド規則ノードをこの順に実行して新たな規則を生成することを特徴とする請求項６に記載の規則推論器を含むワイルドパターン規則の動的な具体化方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００９
【補正方法】変更
【補正の内容】
【０００９】
上記目的を達成するために、本発明は、トリプルで表されるオントロジーインスタンスと、前記トリプルの属性及びクラスを定義するオントロジースキーマー（Ｏｎｔｏｌｏｇｙ  ｓｃｈｅｍａ）と、から構成されるオントロジー（Ｏｎｔｏｌｏｇｙ）及び推論規則を入力して該入力されたオントロジー及び推論規則に対応するリートネットワークを構築し、ワイルドパターンを有するワイルドパターン規則である推論規則が入力された場合に、前記オントロジースキーマーを参照してワイルドパターン規則に対応する手掛かりパターンを選定し、該選定された手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直し、該書き直されたワイルドパターン規則を反映するように、テストノード、アルファメモリーノード、及びワイルド規則ノードを追加するリートネットワーク構築部と、前記リートネットワーク構築部によって構築されたリートネットワークを実行して推論されたトリプルを生成するか、或いは前記ワイルドパターン規則が動的に具体化された新たな推論規則を生成するリートネットワーク実行部と、前記リートネットワーク実行部によって生成された新たな推論規則を前記リートネットワーク構築部に入力して前記リートネットワークを拡張するリートネットワーク拡張部と、を備える規則推論器を提供する。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１０
【補正方法】変更
【補正の内容】
【００１０】
前記リートネットワーク構築部は、推論規則が入力される入力部と、前記入力された推論規則がワイルドパターンを有するか否かを判断する判断部と、前記入力された推論規則がワイルドパターンを有するワイルドパターン規則である場合に、前記オントロジースキーマーを参照して前記入力されたワイルドパターン規則に対応する前記手掛かりパターンを選定する選定部と、前記手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直し、該書き直したワイルドパターン規則によって、テストノード、アルファメモリーノード、及びワイルド規則ノードを前記リートネットワークに追加する構築部と、を備えていてもよい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１１
【補正方法】変更
【補正の内容】
【００１１】
また、上記目的を達成するために、本発明は、（ａ）リートネットワーク構築部が、トリプルで表されるオントロジーインスタンスと、前記トリプルの属性及びクラスを定義するオントロジースキーマーと、から構成されるオントロジー及び推論規則を入力して該入力されたオントロジー及び推論規則に対応するリートネットワークを構築し、ワイルドパターンを有するワイルドパターン規則である推論規則が入力された場合に、前記オントロジースキーマーを参照してワイルドパターン規則に対応する手掛かりパターンを選定し、該選定された手掛かりパターンを参照して前記入力されたワイルドパターン規則を書き直し、該書き直されたワイルドパターン規則を反映するように、テストノード、アルファメモリーノード、及びワイルド規則ノードを追加するステップと、（ｂ）リートネットワーク実行部が、前記構築されたリートネットワークにオントロジーを入力して実行することにより、推論されたトリプルを生成するか、或いは前記ワイルドパターン規則が動的に具体化された新たな推論規則を生成するステップと、（ｃ）リートネットワーク拡張部が、前記生成された新たな推論規則を前記リートネットワークに追加して前記リートネットワークを拡張するステップと、を有する規則推論器を含むワイルドパターン規則の動的な具体化方法を提供する。
【国際調査報告】
2013512496.tif 000013
2013512496.tif 000014
2013512496.tif 000015
2013512496.tif 000016