(57)【要約】【課題】トリプル情報を効率的に検索可能にする。【解決手段】本願に係る生成装置は、取得部と、生成部とを有する。取得部は、３種類の要素に関する関係を示す複数のトリプル情報を取得する。生成部は、取得部により取得された複数のトリプル情報のうち、３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する。【選択図】図３
2018084993.tif 000002
【特許請求の範囲】
【請求項１】
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得部と、
前記取得部により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する生成部と、
を備えることを特徴とする生成装置。
【請求項２】
前記生成部は、
前記３種類の要素のうち１以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成する
ことを特徴とする請求項１に記載の生成装置。
【請求項３】
前記生成部は、
組合せごとに当該組合せに含まれる要素が対応するトリプル情報群を関連付ける前記複数の関連付情報を生成する
ことを特徴とする請求項２に記載の生成装置。
【請求項４】
前記生成部は、
トリプル情報群ごとに、当該トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する
ことを特徴とする請求項１〜３のいずれか１項に記載の生成装置。
【請求項５】
前記生成部は、
トリプル情報群ごとに、当該トリプル情報群に含まれる一のトリプル情報に当該トリプル情報群に含まれる他のトリプル情報を関連付けることにより、循環リストに関する情報を生成する
ことを特徴とする請求項１〜４のいずれか１項に記載の生成装置。
【請求項６】
前記生成部は、
トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報を生成する
ことを特徴とする請求項１〜５のいずれか１項に記載の生成装置。
【請求項７】
前記生成部は、
トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する情報を前記一覧情報として生成する
ことを特徴とする請求項６に記載の生成装置。
【請求項８】
前記生成部は、
前記３種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する前記一覧情報を生成する
ことを特徴とする請求項６または請求項７に記載の生成装置。
【請求項９】
前記生成部は、
前記複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、各トリプル情報の探索順序に関する情報を生成する
ことを特徴とする請求項１〜８のいずれか１項に記載の生成装置。
【請求項１０】
前記３種類の要素のうち１以上の要素に関する指定に基づいて、トリプル情報群を抽出する抽出部、
をさらに備えたことを特徴とする請求項１〜９のいずれか１項に記載の生成装置。
【請求項１１】
前記取得部は、
前記３種類の要素のうち１以上の要素の指定に関する情報を取得し、
前記抽出部は、
前記取得部により取得された要素の指定に関する情報に対応するトリプル情報群を抽出する
ことを特徴とする請求項１０に記載の生成装置。
【請求項１２】
コンピュータが実行する生成方法であって、
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得工程と、
前記取得工程により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する生成工程と、
を含むことを特徴とする生成方法。
【請求項１３】
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得手順と、
前記取得手順により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する生成手順と、
をコンピュータに実行させることを特徴とする生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生成装置、生成方法、及び生成プログラムに関する。
【背景技術】
【０００２】
従来、ネットワーク上のリソースを記述する枠組みとして、ＲＤＦ（Resource  Description  Framework）が知られている。また、ＲＤＦのデータモデルでは、トリプル（triple）と称される主語（subject）、述語（predicate）及び目的語（object）の３つの要素でリソースにおける関係を表現する。また、近年、トリプルとしてエンコードされ格納されたグラフデータに対するトリプルデータ（トリプル情報）の問い合わせ（検索）に関する技術が提供されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１３−１７５１８１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記の従来技術では、トリプル情報を効率的に検索可能にすることが難しい場合がある。例えば、分散型ネットワークによりトリプル情報を格納するだけでは、クエリに対応する複数のトリプル情報の要求等に対して、トリプル情報を効率的に検索可能にすることが難しい場合がある。
【０００５】
本願は、上記に鑑みてなされたものであって、トリプル情報を効率的に検索可能にする生成装置、生成方法、及び生成プログラムを提供することを目的とする。
【課題を解決するための手段】
【０００６】
本願に係る生成装置は、３種類の要素に関する関係を示す複数のトリプル情報を取得する取得部と、前記取得部により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する生成部と、を備えたことを特徴とする。
【発明の効果】
【０００７】
実施形態の一態様によれば、トリプル情報を効率的に検索可能にすることができるという効果を奏する。
【図面の簡単な説明】
【０００８】
【図１】図１は、実施形態に係る生成処理の一例を示す図である。
【図２】図２は、実施形態に係る生成システムの構成例を示す図である。
【図３】図３は、実施形態に係る生成装置の構成例を示す図である。
【図４】図４は、実施形態に係るトリプル情報記憶部の一例を示す図である。
【図５】図５は、実施形態に係る参照情報記憶部の一例を示す図である。
【図６】図６は、実施形態に係るクエリに対応する情報提供の処理の一例を示す図である。
【図７】図７は、実施形態に係るクエリに対応する情報の抽出の概念図を示す図である。
【図８】図８は、実施形態に係るクエリに対応する情報提供の処理の一例を示す図である。
【図９】図９は、実施形態に係るクエリに対応する情報の抽出の概念図を示す図である。
【図１０】図１０は、実施形態に係る生成処理の一例を示すフローチャートである。
【図１１】図１１は、実施形態に係る情報提供の処理の一例を示すフローチャートである。
【図１２】図１２は、実施形態に係る参照情報記憶部の他の構成例を示す図である。
【図１３】図１３は、実施形態に係る連想配列を用いた情報の抽出の一例を示す図である。
【図１４】図１４は、実施形態に係るトリプル情報記憶部の他の構成例を示す図である。
【図１５】図１５は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。
【発明を実施するための形態】
【０００９】
以下に、本願に係る生成装置、生成方法、及び生成プログラムを実施するための形態（以下、「実施形態」と呼ぶ）について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法、及び生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
【００１０】
（実施形態）
〔１．生成処理〕
図１を用いて、実施形態に係る生成処理の一例について説明する。図１は、実施形態に係る生成処理の一例を示す図である。図１では、生成装置１００（図３参照）がトリプル情報記憶部１２１に記憶されたトリプル情報について、３種類の要素のうち１以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成する場合を示す。図１の例では、生成装置１００は、３種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する循環リストを、関連付情報として生成するが、具体的には処理の説明の中で詳述する。なお、ここでいうトリプル情報とは、ＲＤＦ（Resource  Description  Framework）のデータモデルに基づく情報であって、主語（subject）、述語（predicate）及び目的語（object）の３つの要素（トリプル：triple）でリソースにおける関係を表現する情報である。
【００１１】
また、図１に示す例においては、トリプル情報記憶部１２１に記憶された関連付情報の更新に応じて、トリプル情報記憶部１２１をトリプル情報記憶部１２１−１〜１２１−４として説明する。なお、トリプル情報記憶部１２１−１〜１２１−４は、同一のトリプル情報記憶部１２１である。また、以下では、トリプル情報記憶部１２１−１〜１２１−４について、特に区別なく説明する場合には、トリプル情報記憶部１２１と記載する。
【００１２】
また、図１中のトリプル情報記憶部１２１−４は、図４中のトリプル情報記憶部１２１と同様である。すなわち、トリプル情報記憶部１２１には１６個のトリプル情報が記憶されており、図１の例では、生成装置１００は、トリプル情報記憶部１２１に記憶された１６個のトリプル情報を対象として、関連付情報を生成する場合を示す。
【００１３】
例えば、図１に示すトリプル情報記憶部１２１は、「ＩＤ」、「Subject（主語）」、「Predicate（述語）」、「Object（目的語）」、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」、「ｉＰＯ」といった項目が含まれる。
【００１４】
「ＩＤ」は、トリプル情報を識別するための識別情報を示す。また、「Subject（主語）」は、ＩＤにより識別されるトリプル情報の主語に対応する値を示す。また、「Predicate（述語）」は、ＩＤにより識別されるトリプル情報の述語に対応する値を示す。また、「Object（目的語）」は、ＩＤにより識別されるトリプル情報の目的語に対応する値を示す。
【００１５】
例えば、図１の例では、トリプル情報Ｔ０は、主語が「<philosopher>」、すなわち「哲学者」であることを示す。また、図１の例では、トリプル情報Ｔ０は、述語が「rdfs:subClassOf」、所定のプロパティであることを示す。例えば、述語「rdfs:subClassOf」は、主語に対応する値が目的語に対応するクラスのメンバー、つまりサブクラス（下位概念）であることを示す。また、図１の例では、トリプル情報Ｔ０は、目的語が「<person>」、すなわち「人間」であることを示す。例えば、「<」と「>」との間の文字列が所定の対象を示す。
【００１６】
図１に示す例において、トリプル情報Ｔ０は、主語「<philosopher>」がすなわち目的語が「<person>」のサブクラスであることを示す。すなわち、トリプル情報Ｔ０は、哲学者が人間のサブクラスであることを示す。
【００１７】
なお、トリプル情報記憶部１２１中の「Subject（主語）」、「Predicate（述語）」及び「Object（目的語）」に対応する情報をトリプル情報と記載する場合がある。例えば、ＩＤ「０」により識別されるトリプル情報（トリプル情報Ｔ０）は、「<philosopher>,rdfs:subClassOf,<person>」である。
【００１８】
なお、上述のように、「トリプル情報Ｔ＊（＊は任意の数値）」と記載した場合、そのトリプル情報はＩＤ「＊」により識別されるトリプル情報であることを示す。例えば、「トリプル情報Ｔ１」と記載した場合、そのトリプル情報はＩＤ「１」により識別されるトリプル情報である。例えば、トリプル情報Ｔ１は、「<scientist>,rdfs:subClassOf,<person>」である。例えば、「トリプル情報Ｔ１５」と記載した場合、そのトリプル情報はＩＤ「１５」により識別されるトリプル情報である。例えば、トリプル情報Ｔ１５は、「<Goedel>,<wasBornIn>,<Brno>」である。
【００１９】
なお、トリプル情報記憶部１２１中の「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」、「ｉＰＯ」は、各々３つの要素の組合せに対応し、各組合せに対応する関連付情報が記憶される。
【００２０】
また、「ｉＳ」は、主語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。また、「ｉＰ」は、述語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。また、「ｉＯ」は、目的語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。
【００２１】
また、「ｉＳＰ」は、主語に対応する値及び述語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。また、「ｉＳＯ」は、主語に対応する値及び目的語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。また、「ｉＰＯ」は、述語に対応する値及び目的語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。
【００２２】
図１の例では、生成装置１００は、トリプル情報記憶部１２１に記憶された１６個のトリプル情報Ｔ０〜Ｔ１５について組合せごとの関連付情報を生成する。言い換えると、生成装置１００は、トリプル情報記憶部１２１に記憶された１６個のトリプル情報Ｔ０〜Ｔ１５について、各組合せに対応する「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」、「ｉＰＯ」の６個の項目ごとの関連付情報を生成する。
【００２３】
また、図１に示す例においては、トリプル情報記憶部１２１−４以外のトリプル情報記憶部１２１−１〜１２１−３においては、処理に関連するトリプル情報部分のみを示すが、トリプル情報記憶部１２１−４と同様に１６個のトリプル情報が記憶されているものとする。すなわち、トリプル情報記憶部１２１−１〜１２１−４は、関連付情報が更新される点以外は、同じトリプル情報が記憶されているものとする。
【００２４】
まず、図１に示すように、生成装置１００は、ＩＤ「０」により識別されるトリプル情報Ｔ０の関連付情報を生成する（ステップＳ１１）。図１に示す例においては、説明を簡単にするために、生成装置１００がＩＤ「０」からＩＤ「１５」の順に、すなわちＩＤの数が小さい順に関連付情報を生成する場合を示すが、生成装置１００は、種々の手順で関連付情報を生成してもよい。
【００２５】
図１中のトリプル情報記憶部１２１−１に示すように、生成装置１００は、トリプル情報Ｔ０に対応する「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」には、「０」を格納する。ステップＳ１１の時点においては、トリプル情報Ｔ０のみが関連付情報の生成処理の対象となっているため、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」には、トリプル情報Ｔ０自身の識別情報であるＩＤ「０」を格納する。
【００２６】
このように、トリプル情報Ｔ０の「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」には、トリプル情報Ｔ０自身を参照するＩＤ「０」が格納されている。つまり、ステップＳ１１の時点においては、トリプル情報Ｔ０と各組合せが共通するトリプル情報群は、トリプル情報Ｔ０の１個のみであることを示す。例えば、トリプル情報Ｔ０の「ｉＰＯ」には、トリプル情報Ｔ０自身を参照するＩＤ「０」が格納されているため、ステップＳ１１の時点においては、トリプル情報Ｔ０と述語及び目的語が共通するトリプル情報は、トリプル情報Ｔ０の１個のみであることを示す。
【００２７】
なお、図１の例では、ステップＳ１１において、トリプル情報Ｔ１は未処理であるため、図１中のトリプル情報記憶部１２１−１に示すように、トリプル情報Ｔ１に対応する「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」は、「−（未設定）」となる。また、図１中のトリプル情報記憶部１２１−１には図示を省略するが、トリプル情報記憶部１２１−１においては、残りの１４個のトリプル情報Ｔ２〜Ｔ１５に対応する「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」についても、「−（未設定）」となる。
【００２８】
また、図１に示すように、生成装置１００は、ステップＳ１１において生成された関連付情報に対応する参照情報を生成する（ステップＳ１２）。例えば、生成装置１００は、トリプル情報記憶部１２１に追加された新たな循環リストとなる関連付情報について、トリプル情報の識別情報であるＩＤを参照情報記憶部１２２に追加する。具体的には、生成装置１００は、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の６つの組合せのうち、新たな循環リストとなる関連付情報が追加された組合せに対応付けてトリプル情報の識別情報であるＩＤを参照情報記憶部１２２に記憶する。
【００２９】
ここで、図１中の参照情報記憶部１２２について説明する。なお、図１に示す例においては、参照情報記憶部１２２に記憶された参照情報の更新に応じて、参照情報記憶部１２２を参照情報記憶部１２２−１〜１２２−４として説明する。なお、参照情報記憶部１２２−１〜１２２−４は、同一の参照情報記憶部１２２である。また、以下では、参照情報記憶部１２２−１〜１２２−４について、特に区別なく説明する場合には、参照情報記憶部１２２と記載する。
【００３０】
例えば、参照情報記憶部１２２は、主語、述語及び目的語（以下、「ＳＰＯ」と記載する場合がある）の組合せごとに対応する参照情報を各テーブルに記憶する。なお、以下では、参照情報は、各関連付情報である循環リストを特定するための情報として用いられるため、参照情報を特定情報ともいう。図１中の参照情報記憶部１２２は、図５中の参照情報記憶部１２２に対応し、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の６つの組合せごとに対応する特定情報を記憶する。
【００３１】
例えば、第１テーブルＴＢ１は、「群ＩＤ」や「ｉＳ」といった項目を有する。すなわち、第１テーブルＴＢ１は、主語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第２テーブルＴＢ２は、「群ＩＤ」や「ｉＰ」といった項目を有する。すなわち、第２テーブルＴＢ２は、述語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第３テーブルＴＢ３は、「群ＩＤ」や「ｉＯ」といった項目を有する。すなわち、第３テーブルＴＢ３は、目的語が共通するトリプル情報群に対応する特定情報を記憶する。
【００３２】
例えば、第４テーブルＴＢ４は、「群ＩＤ」や「ｉＳＰ」といった項目を有する。すなわち、第４テーブルＴＢ４は、主語及び述語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第５テーブルＴＢ５は、「群ＩＤ」や「ｉＳＯ」といった項目を有する。すなわち、第５テーブルＴＢ５は、主語及び目的語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第６テーブルＴＢ６は、「群ＩＤ」や「ｉＰＯ」といった項目を有する。すなわち、第６テーブルＴＢ６は、述語及び目的語が共通するトリプル情報群に対応する特定情報を記憶する。
【００３３】
例えば、第１テーブルＴＢ１中の「群ＩＤ」は、主語が共通するトリプル情報群に対応する特定情報を識別する識別情報を示す。なお、「群ＩＤ」は、配列の番地等の所定のインデックスであってもよい。また、例えば、第１テーブルＴＢ１中の「ｉＳ」は、対応する群ＩＤに対応付けられた特定情報を示す。図１の例では、第１テーブルＴＢ１中の「ｉＳ」は、主語が共通するトリプル情報群のうち１つのトリプル情報の識別情報である「ＩＤ」が記憶される。
【００３４】
図１に示す例においては、説明を簡単にするために、参照情報記憶部１２２に含まれる第１テーブルＴＢ１〜第６テーブルＴＢ６（図５参照）のうち、第１テーブルＴＢ１及び第２テーブルＴＢ２のみを図示する。なお、生成装置１００は、参照情報記憶部１２２中の第１テーブルＴＢ１〜第６テーブルＴＢ６に、ＩＤに対応付けてその値を格納してもよい。例えば、生成装置１００は、第１テーブルＴＢ１や第４テーブルＴＢ４や第５テーブルＴＢ５に、ＩＤ「０」に対応付けてトリプル情報Ｔ０の主語である「<philosopher>」を格納してもよい。例えば、生成装置１００は、第２テーブルＴＢ２や第４テーブルＴＢ４や第６テーブルＴＢ６に、ＩＤ「０」に対応付けてトリプル情報Ｔ０の述語である「rdfs:subClassOf」を格納してもよい。
【００３５】
なお、図１に示す例においては、第１テーブルＴＢ１の更新に応じて、第１テーブルＴＢ１を第１テーブルＴＢ１−１〜ＴＢ１−４として説明する。なお、第１テーブルＴＢ１−１〜ＴＢ１−４は、同一の第１テーブルＴＢ１である。また、以下では、第１テーブルＴＢ１−１〜ＴＢ１−４について、特に区別なく説明する場合には、第１テーブルＴＢ１と記載する。また、図１に示す例においては、第２テーブルＴＢ２の更新に応じて、第２テーブルＴＢ２を第２テーブルＴＢ２−１〜ＴＢ２−４として説明する。なお、第２テーブルＴＢ２−１〜ＴＢ２−４は、同一の第２テーブルＴＢ２である。また、以下では、第２テーブルＴＢ２−１〜ＴＢ２−４について、特に区別なく説明する場合には、第２テーブルＴＢ２と記載する。
【００３６】
図１の例では、生成装置１００は、ステップＳ１１の時点においては、トリプル情報Ｔ０のみが関連付情報の生成処理の対象となっているため、参照情報記憶部１２２に含まれる第１テーブルＴＢ１〜第６テーブルＴＢ６（図５参照）の各々には、トリプル情報Ｔ０の識別情報であるＩＤ「０」を追加する。すなわち、参照情報記憶部１２２−１は、ステップＳ１１の時点においてトリプル情報記憶部１２１−１中の「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の６つの組合せに、トリプル情報Ｔ０を含むトリプル情報群を連結する循環リストである関連付情報が追加されたことを示す。
【００３７】
図１の例では、第１テーブルＴＢ１−１に示すように、群ＩＤ「ＩＮ１−１」に対応する「ｉＳ」には、ＩＤ「０」が追加される。また、図１の例では、第２テーブルＴＢ２−１に示すように、群ＩＤ「ＩＮ２−１」に対応する「ｉＰ」には、ＩＤ「０」が追加される。また、図１では図示を省略するが、残りの第３テーブルＴＢ３〜第６テーブルＴＢ６の４つのテーブルにもＩＤ「０」が追加される。例えば、第３テーブルＴＢ３中の「ｉＯ」にはＩＤ「０」が追加され、第４テーブルＴＢ４中の「ｉＳＰ」にはＩＤ「０」が追加され、第５テーブルＴＢ５中の「ｉＳＯ」にはＩＤ「０」が追加され、第６テーブルＴＢ６中の「ｉＰＯ」にはＩＤ「０」が追加される。
【００３８】
次に、生成装置１００は、ＩＤ「１」により識別されるトリプル情報Ｔ１の関連付情報や参照情報（以下、併せて「関連付情報等」と記載する場合がある）を生成する（ステップＳ１３）。
【００３９】
まず、トリプル情報Ｔ１の関連付情報の生成について説明する。図１中のトリプル情報記憶部１２１−２に示すように、生成装置１００は、トリプル情報Ｔ１に対応する「ｉＳ」には、「１」を格納する。このように、生成装置１００は、トリプル情報Ｔ１の主語「<scientist>」と、トリプル情報Ｔ０の主語「<philosopher>」とは異なるため、組合せ「ｉＳ」については、トリプル情報Ｔ１とトリプル情報Ｔ０とは異なる循環リストに属する情報とする。例えば、生成装置１００は、トリプル情報Ｔ１に対する処理の前に関連付情報が生成されたトリプル情報に、トリプル情報Ｔ１の主語と共通する主語のトリプル情報が無い場合、トリプル情報Ｔ１を含む新たな循環リストを生成する。
【００４０】
また、生成装置１００は、トリプル情報Ｔ１の主語「<scientist>」と、トリプル情報Ｔ０の主語「<philosopher>」とは異なるため、組合せ「ｉＳＰ」及び「ｉＳＯ」についても、トリプル情報Ｔ１とトリプル情報Ｔ０とは異なる循環リストに属する情報とする。すなわち、図１中のトリプル情報記憶部１２１−２に示すように、生成装置１００は、トリプル情報Ｔ１に対応する「ｉＳＰ」及び「ｉＳＯ」には、「１」を格納する。
【００４１】
一方、生成装置１００は、トリプル情報Ｔ１の述語「rdfs:subClassOf」と、トリプル情報Ｔ０の述語「rdfs:subClassOf」とは同じであるため、組合せ「ｉＰ」については、トリプル情報Ｔ１とトリプル情報Ｔ０とは同じ循環リストに属する情報とする。このように、生成装置１００は、トリプル情報Ｔ１に対する処理の前に関連付情報が生成されたトリプル情報に、トリプル情報Ｔ１の述語と共通する述語のトリプル情報がある場合、そのトリプル情報を含むトリプル情報群の循環リストにトリプル情報Ｔ１を追加するように関連付情報を生成する。
【００４２】
例えば、生成装置１００は、トリプル情報Ｔ０に対応する「ｉＰ」に記憶されたＩＤを、トリプル情報Ｔ１に対応する「ｉＰ」に記憶し、トリプル情報Ｔ０に対応する「ｉＰ」は、トリプル情報Ｔ１の識別情報であるＩＤ「１」に更新する。具体的には、生成装置１００は、図１中のトリプル情報記憶部１２１−２に示すように、ＩＤ「０」に対応する行の「ｉＰ」の情報をＩＤ「１」に更新し、ＩＤ「１」に対応する行の「ｉＰ」にＩＤ「０」を追加する。これにより、生成装置１００は、組合せ「ｉＰ」については、トリプル情報Ｔ０とトリプル情報Ｔ１とを連結する循環リストを生成する。
【００４３】
また、生成装置１００は、トリプル情報Ｔ１の目的語「<person>」と、トリプル情報Ｔ０の目的語「<person>」とは同じであるため、組合せ「ｉＯ」については、トリプル情報Ｔ１とトリプル情報Ｔ０とは同じ循環リストに属する情報とする。具体的には、生成装置１００は、図１中のトリプル情報記憶部１２１−２に示すように、ＩＤ「０」に対応する行の「ｉＯ」の情報をＩＤ「１」に更新し、ＩＤ「１」に対応する行の「ｉＯ」にＩＤ「０」を追加する。これにより、生成装置１００は、組合せ「ｉＯ」については、トリプル情報Ｔ０とトリプル情報Ｔ１とを連結する循環リストを生成する。
【００４４】
また、生成装置１００は、トリプル情報Ｔ１と、トリプル情報Ｔ０とは、述語及び目的語が同じであるため、組合せ「ｉＰＯ」については、トリプル情報Ｔ１とトリプル情報Ｔ０とは同じ循環リストに属する情報とする。具体的には、生成装置１００は、図１中のトリプル情報記憶部１２１−２に示すように、ＩＤ「０」に対応する行の「ｉＰＯ」の情報をＩＤ「１」に更新し、ＩＤ「１」に対応する行の「ｉＯ」にＩＤ「０」を追加する。これにより、生成装置１００は、組合せ「ｉＰＯ」については、トリプル情報Ｔ０とトリプル情報Ｔ１とを連結する循環リストを生成する。
【００４５】
また、図１に示すように、生成装置１００は、ステップＳ１３において生成された関連付情報に対応する参照情報を生成する。例えば、生成装置１００は、第１テーブルＴＢ１〜第６テーブルＴＢ６のうち、トリプル情報Ｔ１を含む新たな循環リストが生成された組合せに対応するテーブルに、トリプル情報Ｔ１の識別情報であるＩＤ「１」を追加する。
【００４６】
具体的には、生成装置１００は、トリプル情報Ｔ１を含む新たな循環リストを生成された「ｉＳ」、「ｉＳＰ」及び「ｉＳＯ」の３つの組合せに対応するテーブルに、トリプル情報Ｔ１の識別情報であるＩＤ「１」を追加する。
【００４７】
図１の例では、第１テーブルＴＢ１−２に示すように、群ＩＤ「ＩＮ１−２」に対応する「ｉＳ」には、ＩＤ「１」が追加される。また、図１では図示を省略するが、「ｉＳＰ」に対応する第４テーブルＴＢ４及び「ｉＳＯ」に対応する第５テーブルＴＢ５の２つのテーブルにもＩＤ「１」が追加される。
【００４８】
一方、図１の例では、組合せ「ｉＰ」については、トリプル情報Ｔ１とトリプル情報Ｔ０とは同じ循環リストに属する情報とされるため、第２テーブルＴＢ２−２に示すように、第２テーブルＴＢ２には、ＩＤ「１」が追加されない。また、図１では図示を省略するが、残りの第３テーブルＴＢ３及び第６テーブルＴＢ６の２つのテーブルにもＩＤ「１」が追加されない。
【００４９】
上述のように生成装置１００は、述語が「rdfs:subClassOf」であるトリプル情報Ｔ０を特定する参照情報（特定情報）を第２テーブルＴＢ２に格納する。そのため、生成装置１００は、述語が「rdfs:subClassOf」であるトリプル情報を検索する場合、第２テーブルＴＢ２を参照することにより、述語が「rdfs:subClassOf」であるトリプル情報Ｔ０を特定することができる。また、生成装置１００は、トリプル情報記憶部１２１中の「ｉＰ」に述語が「rdfs:subClassOf」であるトリプル情報群を連結する循環リストに関する情報を格納しているため、特定したトリプル情報Ｔ０から循環リストを辿ることにより、述語が「rdfs:subClassOf」である全トリプル情報を特定することができる。
【００５０】
図１の例では、生成装置１００は、トリプル情報記憶部１２１中の「ｉＰ」に述語が「rdfs:subClassOf」であるトリプル情報Ｔ０及びトリプル情報Ｔ１を連結する循環リストに関する情報を格納しているため、特定したトリプル情報Ｔ０から循環リストを辿ることにより、述語が「rdfs:subClassOf」であるトリプル情報Ｔ０及びトリプル情報Ｔ１を特定することができる。なお、ここでは、説明を簡単にするために、循環リストに２つのトリプル情報が含まれる場合を示したが、循環リストには、１以上の任意の個数（例えば、２千個や１万個など）のトリプル情報が含まれる。
【００５１】
次に、生成装置１００は、ＩＤ「２」により識別されるトリプル情報Ｔ２の関連付情報等を生成する（ステップＳ１４）。図１の例では、ステップＳ１４より前に処理したトリプル情報Ｔ０及びトリプル情報Ｔ１の主語は、トリプル情報Ｔ２の主語「<Plato>」とは異なる。また、図１の例では、ステップＳ１４より前に処理したトリプル情報Ｔ０及びトリプル情報Ｔ１の述語は、トリプル情報Ｔ２の述語「rdf:type」とは異なる。図１の例では、ステップＳ１４より前に処理したトリプル情報Ｔ０及びトリプル情報Ｔ１の目的語は、トリプル情報Ｔ２の目的語「<philosopher>」とは異なる。
【００５２】
そのため、図１中のトリプル情報記憶部１２１−３に示すように、生成装置１００は、トリプル情報Ｔ０に対応する「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」には、トリプル情報Ｔ２自身の識別情報であるＩＤ「２」を格納する。なお、トリプル情報Ｔ２の目的語「<philosopher>」は、トリプル情報Ｔ０及びトリプル情報Ｔ１の主語「<philosopher>」と同じであるが、要素が目的語と主語とで異なるため、生成装置１００は、異なるものとして処理する。
【００５３】
また、上述のように、トリプル情報Ｔ２の主語、述語及び目的語の各々は、トリプル情報Ｔ０及びトリプル情報Ｔ１の主語、述語及び目的語の各々と異なるため、図１の例では、生成装置１００は、参照情報記憶部１２２に含まれる第１テーブルＴＢ１〜第６テーブルＴＢ６（図５参照）の各々には、トリプル情報Ｔ２の識別情報であるＩＤ「２」を追加する。すなわち、参照情報記憶部１２２−３は、ステップＳ１４においてトリプル情報記憶部１２１−３中の「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の６つの組合せに、トリプル情報Ｔ２を含むトリプル情報群を連結する循環リストである関連付情報が追加されたことを示す。
【００５４】
図１の例では、第１テーブルＴＢ１−３に示すように、群ＩＤ「ＩＮ１−３」に対応する「ｉＳ」には、ＩＤ「２」が追加される。また、図１の例では、第２テーブルＴＢ２−３に示すように、群ＩＤ「ＩＮ２−２」に対応する「ｉＰ」には、ＩＤ「２」が追加される。また、図１では図示を省略するが、残りの第３テーブルＴＢ３〜第６テーブルＴＢ６の４つのテーブルにもＩＤ「２」が追加される。例えば、第３テーブルＴＢ３中の「ｉＯ」にはＩＤ「２」が追加され、第４テーブルＴＢ４中の「ｉＳＰ」にはＩＤ「２」が追加され、第５テーブルＴＢ５中の「ｉＳＯ」にはＩＤ「２」が追加され、第６テーブルＴＢ６中の「ｉＰＯ」にはＩＤ「２」が追加される。
【００５５】
また、生成装置１００は、ＩＤ「３」により識別されるトリプル情報Ｔ３からＩＤ「１５」により識別されるトリプル情報Ｔ１５の１３個のトリプル情報について上述した処理を繰り返し行うことにより、トリプル情報Ｔ３〜Ｔ１５の関連付情報等を順次生成する（ステップＳ１５）。これにより、生成装置１００は、図１中のトリプル情報記憶部１２１−４に示すような関連付情報や図１中の参照情報記憶部１２２−４に示すような参照情報を生成する。
【００５６】
上述したように、生成装置１００は、３種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する循環リストを、関連付情報として生成することにより、トリプル情報を効率的に検索可能にすることができる。なお、関連付情報を用いた検索についての詳細は後述する。また、生成装置１００は、新しいトリプル情報が追加された場合、上述した処理と同様に新しいトリプル情報の関連付情報等を生成することにより、トリプル情報が追加された場合であっても適切に関連付情報等を生成することができる。
【００５７】
〔２．生成システムの構成〕
図２に示すように、生成システム１は、端末装置１０と、情報提供装置５０と、生成装置１００とが含まれる。端末装置１０と、情報提供装置５０と、生成装置１００とは所定のネットワークＮを介して、有線または無線により通信可能に接続される。図２は、実施形態に係る生成システムの構成例を示す図である。なお、図２に示した生成システム１には、複数台の端末装置１０や、複数台の情報提供装置５０や、複数台の生成装置１００が含まれてもよい。
【００５８】
端末装置１０は、ユーザによって利用される情報処理装置である。端末装置１０は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置１０をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置１０と読み替えることもできる。なお、上述した端末装置１０は、例えば、スマートフォンや、タブレット型端末や、ノート型ＰＣ（Personal  Computer）や、デスクトップＰＣや、携帯電話機や、ＰＤＡ（Personal  Digital  Assistant）等により実現される。図６及び図８に示す例においては、端末装置１０がノート型ＰＣである場合を示す。
【００５９】
情報提供装置５０は、ウェブサーバ等の種々の外部装置から収集した文字情報等に基づくトリプル情報が格納された情報処理装置である。例えば、情報提供装置５０は、ウェブサーバ等の種々の外部装置から収集したリソースに関する情報に基づいてトリプル情報を生成する。また、例えば、情報提供装置５０は、トリプル情報を生成装置１００へ提供する。
【００６０】
生成装置１００は、複数のトリプル情報のうち、３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する情報処理装置である。例えば、生成装置１００は、トリプル情報群ごとに、各トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する。また、本実施形態において生成装置１００は、クエリを取得した場合、生成した関連付情報（循環リスト）に基づいて、クエリに対応するトリプル情報を提供する。なお、生成装置１００は、ウェブサーバ等の種々の外部装置から収集したリソースに関する情報に基づいてトリプル情報を生成してもよい。
【００６１】
〔３．生成装置の構成〕
次に、図３を用いて、実施形態に係る生成装置１００の構成について説明する。図３は、実施形態に係る生成装置１００の構成例を示す図である。図３に示すように、生成装置１００は、通信部１１０と、記憶部１２０と、制御部１３０とを有する。なお、生成装置１００は、生成装置１００の管理者等から各種操作を受け付ける入力部（例えば、キーボードやマウス等）や、各種情報を表示するための表示部（例えば、液晶ディスプレイ等）を有してもよい。
【００６２】
（通信部１１０）
通信部１１０は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。そして、通信部１１０は、ネットワーク（例えば図２中のネットワークＮ）と有線または無線で接続され、端末装置１０との間で情報の送受信を行う。
【００６３】
（記憶部１２０）
記憶部１２０は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部１２０は、図３に示すように、トリプル情報記憶部１２１と、参照情報記憶部１２２とを有する。
【００６４】
（トリプル情報記憶部１２１）
実施形態に係るトリプル情報記憶部１２１は、トリプルに関する各種情報を記憶する。例えば、トリプル情報記憶部１２１は、トリプル情報や関連付情報を記憶する。図４は、実施形態に係るトリプル情報記憶部の一例を示す図である。図４に示すトリプル情報記憶部１２１は、「ＩＤ」、「Subject（主語）」、「Predicate（述語）」、「Object（目的語）」、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」、「ｉＰＯ」といった項目が含まれる。
【００６５】
「ＩＤ」は、トリプル情報を識別するための識別情報を示す。また、「Subject（主語）」は、ＩＤにより識別されるトリプル情報の主語に対応する値を示す。また、「Predicate（述語）」は、ＩＤにより識別されるトリプル情報の述語に対応する値を示す。また、「Object（目的語）」は、ＩＤにより識別されるトリプル情報の目的語に対応する値を示す。
【００６６】
また、「ｉＳ」は、主語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。また、「ｉＰ」は、述語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。また、「ｉＯ」は、目的語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。
【００６７】
また、「ｉＳＰ」は、主語に対応する値及び述語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。また、「ｉＳＯ」は、主語に対応する値及び目的語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。また、「ｉＰＯ」は、述語に対応する値及び目的語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。
【００６８】
例えば、図４に示す例においては、トリプル情報記憶部１２１には、ＩＤ「０」により識別されるトリプル情報Ｔ０からＩＤ「１５」により識別されるトリプル情報Ｔ１５までの１６個のトリプル情報Ｔ０〜Ｔ１５が記憶される。
【００６９】
例えば、図４に示す例において、ＩＤ「０」により識別されるトリプル情報Ｔ０は、主語が「<philosopher>」、すなわち「哲学者」であることを示す。また、例えば、図４に示す例において、トリプル情報Ｔ０は、述語が「rdfs:subClassOf」、所定のプロパティであることを示す。例えば、述語「rdfs:subClassOf」は、主語に対応する値が目的語に対応するクラスのメンバー、つまりサブクラスであることを示す。また、例えば、図４に示す例において、トリプル情報Ｔ０は、目的語が「<person>」、すなわち「人間」であることを示す。また、例えば、図４に示す例において、トリプル情報Ｔ１１の目的語「２５００」やトリプル情報Ｔ１４の目的語「５００」は、数値を示す。
【００７０】
図４に示す例において、トリプル情報Ｔ０は、主語「<philosopher>」がすなわち目的語が「<person>」のサブクラスであることを示す。すなわち、トリプル情報Ｔ０は、哲学者が人間のサブクラスであることを示す。
【００７１】
また、図４に示す例において、トリプル情報Ｔ０の「ｉＳ」には、「０」が格納されており、トリプル情報Ｔ０と主語が共通するトリプル情報群の循環リストにおいて、トリプル情報Ｔ０が指す次のトリプル情報を識別するＩＤは「０」であることを示す。このように、トリプル情報Ｔ０の「ｉＳ」には、トリプル情報Ｔ０自身を参照するＩＤ「０」が格納されているため、トリプル情報Ｔ０と主語が共通するトリプル情報群は、トリプル情報Ｔ０の１個のみであることを示す。
【００７２】
すなわち、図４に示す例において、トリプル情報記憶部１２１に記憶されたトリプル情報Ｔ０〜Ｔ１５のうち、主語が「<philosopher>」であるトリプル情報はトリプル情報Ｔ０の１個のみであり、他にトリプル情報Ｔ０の主語「<philosopher>」と同じ主語であるトリプル情報は含まれないことを示す。
【００７３】
また、図４に示す例において、トリプル情報Ｔ０の「ｉＰ」には、「１」が格納されており、トリプル情報Ｔ０と述語が共通するトリプル情報群の循環リストにおいて、トリプル情報Ｔ０が指す次のトリプル情報を識別するＩＤは「１」であることを示す。このように、トリプル情報Ｔ０の「ｉＰ」には、トリプル情報Ｔ１を参照するＩＤ「１」が格納されているため、トリプル情報Ｔ０と述語が共通するトリプル情報群には、トリプル情報Ｔ１が含まれることを示す。
【００７４】
また、図４に示す例において、トリプル情報Ｔ１の「ｉＰ」には、「０」が格納されており、トリプル情報Ｔ１と述語が共通するトリプル情報群の循環リストにおいて、トリプル情報Ｔ１が指す次のトリプル情報を識別するＩＤは「０」であることを示す。このように、トリプル情報Ｔ１の「ｉＰ」には、トリプル情報Ｔ０を参照するＩＤ「０」が格納されているため、トリプル情報Ｔ１と述語が共通するトリプル情報群には、トリプル情報Ｔ０が含まれることを示す。トリプル情報Ｔ１が指す次のトリプル情報が上述したトリプル情報Ｔ０であるため、トリプル情報Ｔ０と述語が共通するトリプル情報群の循環リストには、トリプル情報Ｔ０とトリプル情報Ｔ１の２個が含まれることを示す。
【００７５】
すなわち、図４に示す例において、トリプル情報記憶部１２１に記憶されたトリプル情報Ｔ０〜Ｔ１５のうち、述語が「rdfs:subClassOf」であるトリプル情報はトリプル情報Ｔ０とトリプル情報Ｔ１の２個であることを示す。
【００７６】
また、図４に示す例において、トリプル情報Ｔ０の「ｉＳＯ」には、「０」が格納されており、トリプル情報Ｔ０と主語及び目的語が共通するトリプル情報群の循環リストにおいて、トリプル情報Ｔ０が指す次のトリプル情報を識別するＩＤは「０」であることを示す。このように、トリプル情報Ｔ０の「ｉＳＯ」には、トリプル情報Ｔ０自身を参照するＩＤ「０」が格納されているため、トリプル情報Ｔ０と主語及び目的語が共通するトリプル情報群は、トリプル情報Ｔ０の１個のみであることを示す。
【００７７】
すなわち、図４に示す例において、トリプル情報記憶部１２１に記憶されたトリプル情報Ｔ０〜Ｔ１５のうち、主語が「<philosopher>」であり、目的語が「<person>」であるトリプル情報はトリプル情報Ｔ０の１個のみであり、他にトリプル情報Ｔ０の主語「<philosopher>」と同じ主語であり、トリプル情報Ｔ０の目的語「<person>」と同じ目的語であるトリプル情報は含まれないことを示す。
【００７８】
なお、トリプル情報記憶部１２１は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
【００７９】
（参照情報記憶部１２２）
実施形態に係る参照情報記憶部１２２は、トリプル情報記憶部１２１に記憶されたトリプル情報の参照に用いる各種情報を記憶する。図５は、実施形態に係る参照情報記憶部の一例を示す図である。例えば、参照情報記憶部１２２は、主語、述語及び目的語の組合せごとに対応する特定情報を各テーブルに記憶する。図５の例では、参照情報記憶部１２２は、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の６つの組合せごとに対応する特定情報を記憶する。図５に示す例においては、参照情報記憶部１２２は、第１テーブルＴＢ１〜第６テーブルＴＢ６といった組合せごとに対応する特定情報を記憶する。
【００８０】
例えば、第１テーブルＴＢ１は、「群ＩＤ」や「ｉＳ」といった項目を有する。すなわち、第１テーブルＴＢ１は、主語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第２テーブルＴＢ２は、「群ＩＤ」や「ｉＰ」といった項目を有する。すなわち、第２テーブルＴＢ２は、述語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第３テーブルＴＢ３は、「群ＩＤ」や「ｉＯ」といった項目を有する。すなわち、第３テーブルＴＢ３は、目的語が共通するトリプル情報群に対応する特定情報を記憶する。
【００８１】
例えば、第４テーブルＴＢ４は、「群ＩＤ」や「ｉＳＰ」といった項目を有する。すなわち、第４テーブルＴＢ４は、主語及び述語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第５テーブルＴＢ５は、「群ＩＤ」や「ｉＳＯ」といった項目を有する。すなわち、第５テーブルＴＢ５は、主語及び目的語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第６テーブルＴＢ６は、「群ＩＤ」や「ｉＰＯ」といった項目を有する。すなわち、第６テーブルＴＢ６は、述語及び目的語が共通するトリプル情報群に対応する特定情報を記憶する。
【００８２】
例えば、第１テーブルＴＢ１中の「群ＩＤ」は、主語が共通するトリプル情報群に対応する特定情報を識別する識別情報を示す。なお、「群ＩＤ」は、配列の番地等の所定のインデックスであってもよい。また、例えば、第１テーブルＴＢ１中の「ｉＳ」は、対応する群ＩＤに対応付けられた特定情報を示す。図５の例では、第１テーブルＴＢ１中の「ｉＳ」は、主語が共通するトリプル情報群のうち１つのトリプル情報の識別情報である「ＩＤ」が記憶される。
【００８３】
図５に示す例において、群ＩＤ「ＩＮ１−１」に対応する「ｉＳ」には、ＩＤ「０」が記憶される。このように、図５に示す例において、トリプル情報記憶部１２１（図４参照）に記憶されたトリプル情報Ｔ０〜Ｔ１５のうち、主語が共通するトリプル情報群には、ＩＤ「０」により識別されるトリプル情報（トリプル情報Ｔ０）が含まれるトリプル情報群が含まれることを示す。
【００８４】
また、図５に示す例において、群ＩＤ「ＩＮ１−２」に対応する「ｉＳ」には、ＩＤ「１」が記憶される。このように、図５に示す例において、トリプル情報記憶部１２１（図４参照）に記憶されたトリプル情報Ｔ０〜Ｔ１５のうち、主語が共通するトリプル情報群には、ＩＤ「１」により識別されるトリプル情報（トリプル情報Ｔ１）が含まれるトリプル情報群が含まれることを示す。
【００８５】
また、図５に示す例において、群ＩＤ「ＩＮ１−３」に対応する「ｉＳ」には、ＩＤ「２」が記憶される。このように、図５に示す例において、トリプル情報記憶部１２１（図４参照）に記憶されたトリプル情報Ｔ０〜Ｔ１５のうち、主語が共通するトリプル情報群には、ＩＤ「２」により識別されるトリプル情報（トリプル情報Ｔ２）が含まれるトリプル情報群が含まれることを示す。
【００８６】
なお、参照情報記憶部１２２は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、参照情報記憶部１２２は、連結配列の構造により構成されてもよい。この点についての詳細は後述する。
【００８７】
（制御部１３０）
図３の説明に戻って、制御部１３０は、コントローラ（controller）であり、例えば、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）等によって、生成装置１００内部の記憶装置に記憶されている各種プログラム（生成プログラムの一例に相当）がＲＡＭを作業領域として実行されることにより実現される。また、制御部１３０は、コントローラであり、例えば、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）等の集積回路により実現される。
【００８８】
図３に示すように、制御部１３０は、取得部１３１と、生成部１３２と、抽出部１３３と、提供部１３４とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部１３０の内部構成は、図３に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
【００８９】
（取得部１３１）
取得部１３１は、各種情報を取得する。例えば、取得部１３１は、トリプル情報記憶部１２１、参照情報記憶部１２２等から各種情報を取得する。また、取得部１３１は、各種情報を外部の情報処理装置から取得してもよい。また、取得部１３１は、各トリプル情報に関する情報を情報提供装置５０から取得してもよい。
【００９０】
例えば、取得部１３１は、３種類の要素に関する関係を示す複数のトリプル情報を取得する。例えば、取得部１３１は、トリプル情報記憶部１２１から３種類の要素に関する関係を示す複数のトリプル情報を取得する。
【００９１】
例えば、取得部１３１は、３種類の要素のうち１以上の要素の指定に関する情報を取得する。図６の例では、取得部１３１は、ユーザＵ１が利用する端末装置１０からクエリ情報ＱＥ２１を取得する。
【００９２】
（生成部１３２）
生成部１３２は、各種情報を生成する。例えば、生成部１３２は、取得部１３１により取得された複数のトリプル情報のうち、３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する。
【００９３】
例えば、生成部１３２は、３種類の要素のうち１以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成する。また、例えば、生成部１３２は、組合せごとに当該組合せに含まれる要素が対応するトリプル情報群を関連付ける複数の関連付情報を生成する。また、例えば、生成部１３２は、トリプル情報群ごとに、各トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する。また、例えば、生成部１３２は、トリプル情報群ごとに、各トリプル情報群に含まれる一のトリプル情報に当該トリプル情報群に含まれる他のトリプル情報を関連付けることにより、循環リストに関する情報を生成する。
【００９４】
例えば、生成部１３２は、トリプル情報Ｔ１に対する処理の前に関連付情報が生成されたトリプル情報に、トリプル情報Ｔ１の主語と共通する主語のトリプル情報が無い場合、トリプル情報Ｔ１を含む新たな循環リストを生成する。例えば、生成部１３２は、トリプル情報Ｔ１に対する処理の前に関連付情報が生成されたトリプル情報に、トリプル情報Ｔ１の述語と共通する述語のトリプル情報がある場合、そのトリプル情報を含むトリプル情報群の循環リストにトリプル情報Ｔ１を追加するように関連付情報を生成する。図１の例では、生成部１３２は、組合せ「ｉＰ」については、トリプル情報Ｔ０とトリプル情報Ｔ１とを連結する循環リストを生成する。図１の例では、生成部１３２は、組合せ「ｉＯ」については、トリプル情報Ｔ０とトリプル情報Ｔ１とを連結する循環リストを生成する。図１の例では、生成部１３２は、組合せ「ｉＰＯ」については、トリプル情報Ｔ０とトリプル情報Ｔ１とを連結する循環リストを生成する。
【００９５】
図１の例では、生成部１３２は、図１中のトリプル情報記憶部１２１−４に示すような関連付情報や図１中の参照情報記憶部１２２−４に示すような参照情報を生成する。例えば、生成部１３２は、図１中のトリプル情報記憶部１２１−４に示すようなトリプル情報Ｔ１からトリプル情報Ｔ１５の１６個のトリプル情報について関連付情報等の生成を繰り返し行うことにより、トリプル情報Ｔ０〜Ｔ１５の関連付情報等を順次生成する。
【００９６】
例えば、生成部１３２は、トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報を生成する。例えば、生成部１３２は、３種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する一覧情報を生成する。
【００９７】
図１の例では、生成部１３２は、図１中のトリプル情報記憶部１２１−４に示すような関連付情報や図１中の参照情報記憶部１２２−４に示すような参照情報を生成する。
【００９８】
また、例えば、生成部１３２は、トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する情報を一覧情報として生成する。また、例えば、生成部１３２は、複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、各トリプル情報の探索順序に関する情報を生成する。なお、これらの点についての詳細は後述する。
【００９９】
（抽出部１３３）
抽出部１３３は、各種情報を抽出する。例えば、抽出部１３３は、トリプル情報を抽出する。例えば、抽出部１３３は、取得部１３１により取得された要素の指定に関する情報に対応するトリプル情報群を抽出する。例えば、抽出部１３３は、３種類の要素のうち１以上の要素に関する指定に基づいて、トリプル情報群を抽出する。
【０１００】
図６の例では、抽出部１３３は、端末装置１０から取得したクエリ情報ＱＥ２１に対応する特定情報を参照情報記憶部１２２から抽出する。図６の例では、抽出部１３３は、検索対象となる要素が主語であるため、参照情報記憶部１２２のうち、組合せ「ｉＳ」に対応する第１テーブルＴＢ１からクエリ情報ＱＥ２１に対応する特定情報を抽出する。例えば、抽出部１３３は、第１テーブルＴＢ１から主語が「<Leibniz>」であるトリプル情報を識別するＩＤを特定情報として抽出する。具体的には、抽出部１３３は、第１テーブルＴＢ１から主語が「<Leibniz>」であるトリプル情報Ｔ３を識別するＩＤ「３」を特定情報として抽出する。例えば、抽出部１３３は、第１テーブルＴＢ１に格納されたＩＤに対応するトリプル情報の主語とクエリ情報ＱＥ２１に含まれる「<Leibniz>」を比較することにより、特定情報を抽出する。
【０１０１】
また、図６の例では、抽出部１３３は、ステップＳ２２において抽出した特定情報を用いて、トリプル情報記憶部１２１からクエリに対応するトリプル情報群を抽出する。例えば、抽出部１３３は、抽出した特定情報であるＩＤ「３」を用いて、トリプル情報記憶部１２１からクエリ情報ＱＥ２１に対応するトリプル情報群を抽出する。
【０１０２】
図６の例では、抽出部１３３は、特定情報であるＩＤ「３」により特定したトリプル情報Ｔ３から循環リストを辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。例えば、抽出部１３３は、ＩＤ「３」に対応する「ｉＳ」に記憶されたＩＤ「１４」により識別されるトリプル情報Ｔ１４から順に辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。
【０１０３】
図７の例では、抽出部１３３は、トリプル情報Ｔ３から連結情報ＣＮ１〜ＣＮ５により辿ったトリプル情報Ｔ４、Ｔ１２〜Ｔ１４をクエリ情報ＱＥ２１に対応するトリプル情報群として抽出する。例えば、抽出部１３３は、ＩＤ「３」、「４」、「１２」、「１３」及び「１４」の各々により識別されるトリプル情報Ｔ３、Ｔ４、Ｔ１２〜Ｔ１４をクエリ情報ＱＥ２１に対応するトリプル情報群として抽出する。
【０１０４】
図８の例では、抽出部１３３は、端末装置１０から取得したクエリ情報ＱＥ３１に対応する特定情報を参照情報記憶部１２２から抽出する。図８の例では、抽出部１３３は、検索対象となる要素が述語及び目的語であるため、参照情報記憶部１２２のうち組合せ「ｉＰＯ」に対応する第６テーブルＴＢ６からクエリ情報ＱＥ３１に対応する特定情報を抽出する。例えば、抽出部１３３は、第６テーブルＴＢ６から、述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報を識別するＩＤを特定情報として抽出する。
【０１０５】
具体的には、抽出部１３３は、第６テーブルＴＢ６から述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報Ｔ４を識別するＩＤ「４」を特定情報として抽出する。例えば、抽出部１３３は、第６テーブルＴＢ６に格納されたＩＤに対応するトリプル情報の述語とクエリ情報ＱＥ３１に含まれる「rdf:type」を比較し、第６テーブルＴＢ６に格納されたＩＤに対応するトリプル情報の目的語とクエリ情報ＱＥ３１に含まれる「<scientist>」を比較することにより、特定情報を抽出する。
【０１０６】
また、図８の例では、抽出部１３３は、ステップＳ３２において抽出した特定情報を用いて、トリプル情報記憶部１２１からクエリに対応するトリプル情報群を抽出する。例えば、抽出部１３３は、抽出した特定情報であるＩＤ「４」を用いて、トリプル情報記憶部１２１からクエリ情報ＱＥ３１に対応するトリプル情報群を抽出する。
【０１０７】
図８の例では、抽出部１３３は、特定情報であるＩＤ「４」により特定したトリプル情報Ｔ３から循環リストを辿ることにより、述語の値が「rdf:type」であり、目的語の値が「<scientist>」である全トリプル情報を抽出する。例えば、抽出部１３３は、ＩＤ「４」に対応する「ｉＰＯ」に記憶されたＩＤ「５」により識別されるトリプル情報Ｔ５から順に辿ることにより、述語の値が「rdf:type」であり、目的語の値が「<scientist>」である全トリプル情報を抽出する。
【０１０８】
図９の例では、抽出部１３３は、トリプル情報Ｔ４から連結情報ＣＮ１１、ＣＮ１２により辿ったトリプル情報Ｔ４、Ｔ５をクエリ情報ＱＥ３１に対応するトリプル情報群として抽出する。例えば、抽出部１３３は、ＩＤ「４」及び「５」の各々により識別されるトリプル情報Ｔ４、Ｔ５をクエリ情報ＱＥ３１に対応するトリプル情報群として抽出する。
【０１０９】
（提供部１３４）
提供部１３４は、各種情報を提供する。例えば、提供部１３４は、端末装置１０に各種情報を提供する。例えば、提供部１３４は、クエリに対応するトリプル情報を検索結果として提供する。例えば、提供部１３４は、抽出部１３３により関連付情報に基づいてトリプル情報記憶部１２１から抽出されたトリプル情報群に含まれるトリプル情報を端末装置１０へ提供する。図６の例では、提供部１３４は、抽出部１３３により抽出されたトリプル情報を検索結果として端末装置１０へ提供する。図６の例では、提供部１３４は、トリプル情報群ＲＳ２１に示すようなトリプル情報Ｔ３、Ｔ４、Ｔ１２〜Ｔ１４を検索結果として端末装置１０へ提供する。また、図８の例では、提供部１３４は、トリプル情報群ＲＳ３１に示すようなトリプル情報Ｔ４、Ｔ５を検索結果として端末装置１０へ提供する。
【０１１０】
〔４．情報提供について〕
次に、図６〜図９を用いて、実施形態に係る生成システム１による情報提供について説明する。図６及び図８は、実施形態に係るクエリに対応する情報提供の処理の一例を示す図である。図７及び図９は、実施形態に係るクエリに対応する情報の抽出の概念図を示す図である。
【０１１１】
まず、図６及び図７を用いて、主語に関するクエリを取得した場合の例を示す。
【０１１２】
まず、生成装置１００は、ユーザＵ１が利用する端末装置１０からクエリを取得する（ステップＳ２１）。図６の例では、生成装置１００は、端末装置１０からクエリ情報ＱＥ２１を取得する。図６に示す例において、クエリ情報ＱＥ２１は、「Key  of  ring  iS  =  <Leibniz>」という文字列情報が含まれており、検索対象となる要素が「Ｓ」、すなわち主語（Subject）であり、その値が「<Leibniz>」であることを示す。なお、本明細書中の全角スペースは半角スペースに置き換えてもよい。
【０１１３】
端末装置１０からクエリ情報ＱＥ２１を取得した生成装置１００は、クエリ情報ＱＥ２１に対応する特定情報を参照情報記憶部１２２から抽出する（ステップＳ２２）。図６の例では、生成装置１００は、検索対象となる要素が主語であるため、参照情報記憶部１２２のうち、組合せ「ｉＳ」に対応する第１テーブルＴＢ１からクエリ情報ＱＥ２１に対応する特定情報を抽出する。例えば、生成装置１００は、第１テーブルＴＢ１から主語が「<Leibniz>」であるトリプル情報を識別するＩＤを特定情報として抽出する。具体的には、生成装置１００は、第１テーブルＴＢ１から主語が「<Leibniz>」であるトリプル情報Ｔ３を識別するＩＤ「３」を特定情報として抽出する。例えば、生成装置１００は、第１テーブルＴＢ１に格納されたＩＤに対応するトリプル情報の主語とクエリ情報ＱＥ２１に含まれる「<Leibniz>」を比較することにより、特定情報を抽出する。
【０１１４】
なお、生成装置１００は、参照情報記憶部１２２中の第１テーブルＴＢ１〜第６テーブルＴＢ６に、ＩＤに対応付けてその値を格納してもよい。例えば、生成装置１００は、第１テーブルＴＢ１や第４テーブルＴＢ４や第５テーブルＴＢ５に、ＩＤ「３」に対応付けてトリプル情報Ｔ３の主語である「<Leibniz>」を格納してもよい。例えば、生成装置１００は、第３テーブルＴＢ３や第５テーブルＴＢ５や第６テーブルＴＢ６に、ＩＤ「４」に対応付けてトリプル情報Ｔ４の目的語である「<scientist>」を格納してもよい。
【０１１５】
その後、生成装置１００は、ステップＳ２２において抽出した特定情報を用いて、トリプル情報記憶部１２１からクエリに対応するトリプル情報群を抽出する（ステップＳ２３）。例えば、生成装置１００は、抽出した特定情報であるＩＤ「３」を用いて、トリプル情報記憶部１２１からクエリ情報ＱＥ２１に対応するトリプル情報群を抽出する。
【０１１６】
図６の例では、生成装置１００は、特定情報であるＩＤ「３」により特定したトリプル情報Ｔ３から循環リストを辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。例えば、生成装置１００は、ＩＤ「３」に対応する「ｉＳ」に記憶されたＩＤ「１４」により識別されるトリプル情報Ｔ１４から順に辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。この点について図７を用いて説明する。
【０１１７】
図７に示すように、クエリ情報ＱＥ２１に応じて、第１テーブルＴＢ１のうち、ＩＤ「３」を特定情報として抽出し、図７中のエントリポイントＥＰ２１に示すようにＩＤ「３」に対応するトリプル情報Ｔ３を特定する。これにより、図７中の循環リスト情報ＩＮＦ２１に示すような、主語が「<Leibniz>」であるトリプル情報群のうち１つのトリプル情報Ｔ３を特定する。上述したように、図６中のトリプル情報記憶部１２１において、ＩＤ「３」に対応する「ｉＳ」にはＩＤ「１４」が記憶されているため、図７中の連結情報ＣＮ１に示すようにトリプル情報Ｔ３からトリプル情報Ｔ１４に辿ることができる。
【０１１８】
また、図６中のトリプル情報記憶部１２１において、ＩＤ「１４」に対応する「ｉＳ」にはＩＤ「１３」が記憶されているため、図７中の連結情報ＣＮ２に示すようにトリプル情報Ｔ１４からトリプル情報Ｔ１３に辿ることができる。また、図６中のトリプル情報記憶部１２１において、ＩＤ「１３」に対応する「ｉＳ」にはＩＤ「１２」が記憶されているため、図７中の連結情報ＣＮ３に示すようにトリプル情報Ｔ１３からトリプル情報Ｔ１２に辿ることができる。また、図６中のトリプル情報記憶部１２１において、ＩＤ「１２」に対応する「ｉＳ」にはＩＤ「４」が記憶されているため、図７中の連結情報ＣＮ４に示すようにトリプル情報Ｔ１２からトリプル情報Ｔ４に辿ることができる。
【０１１９】
また、図６中のトリプル情報記憶部１２１において、ＩＤ「４」に対応する「ｉＳ」にはＩＤ「３」が記憶されているため、図７中の連結情報ＣＮ５に示すようにトリプル情報Ｔ４からトリプル情報Ｔ３に辿ることができる。ここで、図７中の連結情報ＣＮ５に示すようにトリプル情報Ｔ４からトリプル情報Ｔ３に辿ることにより、第１テーブルＴＢ１から抽出した特定情報に基づくエントリポイントＥＰ２１により特定されたトリプル情報Ｔ３に戻ったため、循環リストを一周したこととなる。
【０１２０】
そのため、生成装置１００は、トリプル情報Ｔ３から連結情報ＣＮ１〜ＣＮ５により辿ったトリプル情報Ｔ４、Ｔ１２〜Ｔ１４をクエリ情報ＱＥ２１に対応するトリプル情報群として抽出する。このように、図６の例では、生成装置１００は、ＩＤ「３」、「４」、「１２」、「１３」及び「１４」の各々により識別されるトリプル情報Ｔ３、Ｔ４、Ｔ１２〜Ｔ１４をクエリ情報ＱＥ２１に対応するトリプル情報群として抽出する。
【０１２１】
その後、生成装置１００は、ステップＳ２３において抽出したトリプル情報を検索結果として端末装置１０へ提供する（ステップＳ２４）。図６の例では、生成装置１００は、トリプル情報群ＲＳ２１に示すようなトリプル情報Ｔ３、Ｔ４、Ｔ１２〜Ｔ１４を検索結果として端末装置１０へ提供する。このように、生成装置１００は、参照情報を用いて、クエリに対応する循環リストに属する１つのトリプル情報を特定し、特定したトリプル情報から循環リストを辿ることにより、処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。
【０１２２】
まず、図８及び図９を用いて、主語に関するクエリを取得した場合の例を示す。
【０１２３】
まず、生成装置１００は、ユーザＵ１が利用する端末装置１０からクエリを取得する（ステップＳ３１）。図８の例では、生成装置１００は、端末装置１０からクエリ情報ＱＥ３１を取得する。図８に示す例において、クエリ情報ＱＥ３１は、「Key  of  ring  iPO  =  rdf:type,<scientist>」という文字列情報が含まれており、検索対象となる要素が「ＰＯ」、すなわち述語（Predicate）及び目的語（Object）であり、述語の値が「rdf:type」であり、目的語の値が「<scientist>」であることを示す。
【０１２４】
端末装置１０からクエリ情報ＱＥ３１を取得した生成装置１００は、クエリ情報ＱＥ３１に対応する特定情報を参照情報記憶部１２２から抽出する（ステップＳ３２）。図８の例では、生成装置１００は、検索対象となる要素が述語及び目的語であるため、参照情報記憶部１２２のうち組合せ「ｉＰＯ」に対応する第６テーブルＴＢ６からクエリ情報ＱＥ３１に対応する特定情報を抽出する。例えば、生成装置１００は、第６テーブルＴＢ６から、述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報を識別するＩＤを特定情報として抽出する。
【０１２５】
具体的には、生成装置１００は、第６テーブルＴＢ６から述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報Ｔ４を識別するＩＤ「４」を特定情報として抽出する。例えば、生成装置１００は、第６テーブルＴＢ６に格納されたＩＤに対応するトリプル情報の述語とクエリ情報ＱＥ３１に含まれる「rdf:type」を比較し、第６テーブルＴＢ６に格納されたＩＤに対応するトリプル情報の目的語とクエリ情報ＱＥ３１に含まれる「<scientist>」を比較することにより、特定情報を抽出する。
【０１２６】
その後、生成装置１００は、ステップＳ３２において抽出した特定情報を用いて、トリプル情報記憶部１２１からクエリに対応するトリプル情報群を抽出する（ステップＳ３３）。例えば、生成装置１００は、抽出した特定情報であるＩＤ「４」を用いて、トリプル情報記憶部１２１からクエリ情報ＱＥ３１に対応するトリプル情報群を抽出する。
【０１２７】
図８の例では、生成装置１００は、特定情報であるＩＤ「４」により特定したトリプル情報Ｔ４から循環リストを辿ることにより、述語の値が「rdf:type」であり、目的語の値が「<scientist>」である全トリプル情報を抽出する。例えば、生成装置１００は、ＩＤ「４」に対応する「ｉＰＯ」に記憶されたＩＤ「５」により識別されるトリプル情報Ｔ５から順に辿ることにより、述語の値が「rdf:type」であり、目的語の値が「<scientist>」である全トリプル情報を抽出する。この点について図９を用いて説明する。
【０１２８】
図９に示すように、クエリ情報ＱＥ３１に応じて、第６テーブルＴＢ６のうち、ＩＤ「４」を特定情報として抽出し、図９中のエントリポイントＥＰ３１に示すようにＩＤ「４」に対応するトリプル情報Ｔ４を特定する。これにより、図９中の循環リスト情報ＩＮＦ３１に示すような、述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報群のうち１つのトリプル情報Ｔ４を特定する。上述したように、図８中のトリプル情報記憶部１２１において、ＩＤ「４」に対応する「ｉＰＯ」にはＩＤ「５」が記憶されているため、図９中の連結情報ＣＮ１１に示すようにトリプル情報Ｔ４からトリプル情報Ｔ５に辿ることができる。
【０１２９】
また、図８中のトリプル情報記憶部１２１において、ＩＤ「５」に対応する「ｉＰＯ」にはＩＤ「４」が記憶されているため、図９中の連結情報ＣＮ１２に示すようにトリプル情報Ｔ５からトリプル情報Ｔ４に辿ることができる。ここで、図９中の連結情報ＣＮ１２に示すようにトリプル情報Ｔ５からトリプル情報Ｔ４に辿ることにより、第６テーブルＴＢ６から抽出した特定情報に基づくエントリポイントＥＰ３１により特定されたトリプル情報Ｔ４に戻ったため、循環リストを一周したこととなる。
【０１３０】
そのため、生成装置１００は、トリプル情報Ｔ４から連結情報ＣＮ１１、ＣＮ１２により辿ったトリプル情報Ｔ４、Ｔ５をクエリ情報ＱＥ３１に対応するトリプル情報群として抽出する。このように、図８の例では、生成装置１００は、ＩＤ「４」及び「５」の各々により識別されるトリプル情報Ｔ４、Ｔ５をクエリ情報ＱＥ３１に対応するトリプル情報群として抽出する。
【０１３１】
その後、生成装置１００は、ステップＳ３３において抽出したトリプル情報を検索結果として端末装置１０へ提供する（ステップＳ３４）。図８の例では、生成装置１００は、トリプル情報群ＲＳ３１に示すようなトリプル情報Ｔ４、Ｔ５を検索結果として端末装置１０へ提供する。このように、生成装置１００は、参照情報を用いて、クエリに対応する循環リストに属する１つのトリプル情報を特定し、特定したトリプル情報から循環リストを辿ることにより、処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。
【０１３２】
〔５．生成処理のフロー〕
次に、図１０を用いて、実施形態に係る生成システム１による生成処理の手順について説明する。図１０は、実施形態に係る生成処理の一例を示すフローチャートである。
【０１３３】
図１０に示すように、生成装置１００は、複数のトリプル情報を取得する（ステップＳ１０１）。図１の例では、生成装置１００は、トリプル情報記憶部１２１に示すようにトリプル情報Ｔ０〜Ｔ１５に各々対応する１６個のトリプル情報を取得する。
【０１３４】
その後、生成装置１００は、３種類の要素に関する所定の関係を有するトリプル情報を関連付ける関連付情報を生成する（ステップＳ１０２）。例えば、生成装置１００は、循環リストを関連付情報として生成する。図１の例では、生成装置１００は、図１中のトリプル情報記憶部１２１−４に示すような関連付情報や図１中の参照情報記憶部１２２−４に示すような参照情報を生成する。
【０１３５】
〔６．情報提供の処理のフロー〕
次に、図１１を用いて、実施形態に係る生成システム１による情報提供の処理の手順について説明する。図１１は、実施形態に係る情報提供の処理の一例を示すフローチャートである。
【０１３６】
図１１に示すように、生成装置１００は、クエリ情報を取得する（ステップＳ２０１）。図６の例では、生成装置１００は、ユーザＵ１が利用する端末装置１０からクエリ情報ＱＥ２１を取得する。
【０１３７】
その後、生成装置１００は、クエリ情報に対応する特定情報を参照情報から抽出する（ステップＳ２０２）。図６の例では、生成装置１００は、端末装置１０から取得したクエリ情報ＱＥ２１に対応する特定情報を参照情報記憶部１２２から抽出する。
【０１３８】
その後、生成装置１００は、抽出した特定情報によりトリプル情報群に含まれるトリプル情報を抽出する（ステップＳ２０３）。図６の例では、生成装置１００は、ＩＤ「３」、「４」、「１２」、「１３」及び「１４」の各々により識別されるトリプル情報Ｔ３、Ｔ４、Ｔ１２〜Ｔ１４をクエリ情報ＱＥ２１に対応するトリプル情報群として抽出する。
【０１３９】
その後、生成装置１００は、抽出したトリプル情報を提供する（ステップＳ２０４）。図６の例では、生成装置１００は、トリプル情報群ＲＳ２１に示すようなトリプル情報Ｔ３、Ｔ４、Ｔ１２〜Ｔ１４を検索結果として端末装置１０へ提供する。
【０１４０】
〔７．参照情報記憶部の他の構成例〕
上記の実施形態に限らず、生成装置１００は種々の構成により各種情報を格納してもよい。この点について、図１２及び図１３を基に説明する。なお、実施形態と同様の構成については、同一の符号を付して説明を省略する。
【０１４１】
例えば、生成装置１００は、ハッシュ等の種々の連想配列を用いて参照情報を格納してもよい。すなわち、生成装置１００は、図５に示すような参照情報記憶部１２２に替えて、図１３に示すような参照情報記憶部１２２Ａを有してもよい。この点について、図１２及び図１３を用いて説明する。図１２は、実施形態に係る参照情報記憶部の他の構成例を示す図である。図１３は、実施形態に係る連想配列を用いた情報の抽出の一例を示す図である。なお、図１２中のトリプル情報記憶部１２１−１やトリプル情報記憶部１２１−２は、図１中のトリプル情報記憶部１２１−１やトリプル情報記憶部１２１−２と同様である。
【０１４２】
また、図１２に示す例においては、参照情報記憶部１２２Ａに記憶された参照情報の更新に応じて、参照情報記憶部１２２Ａを参照情報記憶部１２２Ａ−１、１２２Ａ−２として説明する。なお、参照情報記憶部１２２Ａ−１、１２２Ａ−２は、同一の参照情報記憶部１２２である。また、以下では、参照情報記憶部１２２Ａ−１、１２２Ａ−２について、特に区別なく説明する場合には、参照情報記憶部１２２Ａと記載する。
【０１４３】
図１２及び図１３の例では、生成装置１００は、所定のハッシュ関数ＨＦ１０を用いる。例えば、生成装置１００は、所定のキーを入力した場合にハッシュ関数ＨＦ１０が出力するハッシュ値をインデックスとして、参照情報記憶部１２２Ａにキーに対応付けたＩＤを格納する。なお、ここでいうインデックスとは、配列の添え字やメモリの番地等であってもよい。
【０１４４】
図１２では、生成装置１００は、図１２中のトリプル情報記憶部１２１−１に示すように、トリプル情報Ｔ０に対応する「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」には、トリプル情報Ｔ０自身の識別情報であるＩＤ「０」を格納する。生成装置１００は、トリプル情報Ｔ０のみが関連付情報の生成処理の対象となっているため、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」に、トリプル情報Ｔ０自身の識別情報であるＩＤ「０」を格納する。
【０１４５】
また、図１２に示すように、生成装置１００は、トリプル情報記憶部１２１に追加された新たな循環リストとなる関連付情報について、トリプル情報の識別情報であるＩＤを参照情報記憶部１２２Ａ−１に追加する。具体的には、生成装置１００は、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の６つの組合せのうち、新たな循環リストとなる関連付情報が追加された組合せに対応するキーに対応付けてトリプル情報の識別情報であるＩＤを参照情報記憶部１２２Ａ−１に格納する。
【０１４６】
図１２の例では、生成装置１００は、参照情報記憶部１２２Ａ−１に示すように、トリプル情報Ｔ０について組合せ「ｉＳ」に対応するキー、すなわち主語がトリプル情報Ｔ０の主語と同じであるキーを参照情報記憶部１２２Ａ−１に格納する。具体的には、生成装置１００は、主語がトリプル情報Ｔ０の主語と同じであるキー「<philosopher>,*,*」を参照情報記憶部１２２Ａ−１に格納する。なお、キーは「,（カンマ）」を区切り文字として、主語、述語、目的語の順に配置される。例えば、キーが「Ｘ,Ｙ,Ｚ」である場合、主語が「Ｘ」、述語が「Ｙ」、目的語が「Ｚ」であることを示す。また、図１２及び図１３中の「＊」は、任意の情報（文字列）を示す。すなわち、キー「<philosopher>,*,*」は、主語が「<philosopher>」であれば、述語や目的語はどのような情報であってもよいことを示す。
【０１４７】
図１２の例では、生成装置１００は、キー「<philosopher>,*,*」をハッシュ関数ＨＦ１０に入力することによりハッシュ値「１１１５４」を取得する。そのため、生成装置１００は、参照情報記憶部１２２Ａ−１中のインデックス「１１１５４」にキー「<philosopher>,*,*」とＩＤ「０」を対応付けた情報を格納する。
【０１４８】
また、図１２の例では、生成装置１００は、キー「*,rdfs:subClassOf,*」をハッシュ関数ＨＦ１０に入力することによりハッシュ値「１５２４」を取得する。そのため、生成装置１００は、参照情報記憶部１２２Ａ−１中のインデックス「１５２４」にキー「*,rdfs:subClassOf,*」とＩＤ「０」を対応付けた情報を格納する。また、図１２の例では、生成装置１００は、キー「*,*,<person>」をハッシュ関数ＨＦ１０に入力することによりハッシュ値「２０８３２」を取得する。そのため、生成装置１００は、参照情報記憶部１２２Ａ中のインデックス「２０８３２」にキー「*,*,<person>」とＩＤ「０」を対応付けた情報を格納する。
【０１４９】
また、図１２の例では、生成装置１００は、キー「<philosopher>,rdfs:subClassOf,*」をハッシュ関数ＨＦ１０に入力することによりハッシュ値「５８４５」を取得する。そのため、生成装置１００は、参照情報記憶部１２２Ａ−１中のインデックス「５８４５」にキー「<philosopher>,rdfs:subClassOf,*」とＩＤ「０」を対応付けた情報を格納する。
【０１５０】
また、図１２の例では、生成装置１００は、キー「<philosopher>,*,<person>」をハッシュ関数ＨＦ１０に入力することによりハッシュ値「９６１７」を取得する。そのため、生成装置１００は、参照情報記憶部１２２Ａ−１中のインデックス「９６１７」にキー「<philosopher>,*,<person>」とＩＤ「０」を対応付けた情報を格納する。
【０１５１】
また、図１２の例では、生成装置１００は、キー「*,rdfs:subClassOf,<person>」をハッシュ関数ＨＦ１０に入力することによりハッシュ値「３１１」を取得する。そのため、生成装置１００は、参照情報記憶部１２２Ａ−１中のインデックス「３１１」にキー「*,rdfs:subClassOf,<person>」とＩＤ「０」を対応付けた情報を格納する。
【０１５２】
また、図１２では、生成装置１００は、トリプル情報Ｔ０とトリプル情報Ｔ１の述語及び目的語は同一であるため、図１２中のトリプル情報記憶部１２１−２に示すように、組合せ「ｉＰ」、「ｉＯ」及び「ｉＰＯ」については、トリプル情報Ｔ０とトリプル情報Ｔ１とを連結する循環リストを生成する。
【０１５３】
一方、生成装置１００は、トリプル情報Ｔ１の主語「<scientist>」と、トリプル情報Ｔ０の主語「<philosopher>」とは異なるため、組合せ「ｉＳ」、「ｉＳＰ」及び「ｉＳＯ」については、トリプル情報Ｔ１とトリプル情報Ｔ０とは異なる循環リストに属する情報とする。例えば、生成装置１００は、図１２中のトリプル情報記憶部１２１−２に示すように、トリプル情報Ｔ１に対応する「ｉＳ」、「ｉＳＰ」及び「ｉＳＯ」には、「１」を格納する。
【０１５４】
また、図１２に示すように、生成装置１００は、トリプル情報記憶部１２１に追加された新たな循環リストとなる関連付情報について、トリプル情報の識別情報であるＩＤを参照情報記憶部１２２Ａ−２に追加する。具体的には、生成装置１００は、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の６つの組合せのうち、新たな循環リストとなる関連付情報が追加された組合せに対応するキーに対応付けてトリプル情報の識別情報であるＩＤを参照情報記憶部１２２Ａ−２に格納する。
【０１５５】
図１２の例では、生成装置１００は、参照情報記憶部１２２Ａ−２に示すように、トリプル情報Ｔ１について組合せ「ｉＳ」に対応するキー、すなわち主語がトリプル情報Ｔ１の主語と同じであるキーを参照情報記憶部１２２Ａ−２に格納する。具体的には、生成装置１００は、主語がトリプル情報Ｔ１の主語と同じであるキー「<scientist>,*,*」を参照情報記憶部１２２Ａ−２に格納する。
【０１５６】
図１２の例では、生成装置１００は、キー「<scientist>,*,*」をハッシュ関数ＨＦ１０に入力することによりハッシュ値「７６９１」を取得する。そのため、生成装置１００は、参照情報記憶部１２２Ａ−２中のインデックス「７６９１」にキー「<scientist>,*,*」とＩＤ「１」を対応付けた情報を格納する。
【０１５７】
また、図１２の例では、生成装置１００は、キー「<scientist>,rdfs:subClassOf,*」をハッシュ関数ＨＦ１０に入力することによりハッシュ値「１８３５４」を取得する。そのため、生成装置１００は、参照情報記憶部１２２Ａ−２中のインデックス「１８３５４」にキー「<scientist>,rdfs:subClassOf,*」とＩＤ「１」を対応付けた情報を格納する。
【０１５８】
また、図１２の例では、生成装置１００は、キー「<scientist>,*,<person>」をハッシュ関数ＨＦ１０に入力することによりハッシュ値「１２４２」を取得する。そのため、生成装置１００は、参照情報記憶部１２２Ａ−２中のインデックス「１２４２」にキー「<scientist>,*,<person>」とＩＤ「１」を対応付けた情報を格納する。このように、生成装置１００は、新たな循環リストとなる関連付情報が追加された組合せに対応するキーに対応付けてトリプル情報の識別情報であるＩＤを参照情報記憶部１２２Ａ−２に格納することにより、連想配列を生成する。例えば、生成装置１００は、所定のハッシュ関数を用いて、図５中の第１テーブルＴＢ１〜第６テーブルＴＢ６に示すようなＩＤに関してキーと対応付けることにより、連想配列を生成してもよい。
【０１５９】
なお、上述した例では、キーの組合せに関わらず１つの連想配列にキーに対応付けたＩＤを格納する場合を示したが、生成装置１００は、６つの組合せごとにキーに対応付けたＩＤを格納してもよい。この場合、生成装置１００は、キーとなる要素の組合せごとに個別に連想配列を生成してもよい。例えば、生成装置１００は、図５中の第１テーブルＴＢ１〜第６テーブルＴＢ６に示すように、主語、述語及び目的語の組合せに応じて「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」、「ｉＰＯ」のように、個別に連想配列を構成してもよい。
【０１６０】
ここから、図１３を用いて、連想配列を用いた情報の抽出について説明する。なお、図１３に示すステップＳ４１、４２の処理は、図６中のステップＳ２２、Ｓ２３の処理に対応する。図１３に示すステップＳ４１、４２の処理は、参照情報を用いて、クエリに対応する循環リストに属する１つのトリプル情報を特定し、特定したトリプル情報から循環リストを辿る処理に対応する。なお、実施形態と同様の構成については、同一の符号を付して説明を省略する。
【０１６１】
図１３の例では、生成装置１００は、端末装置１０からクエリ情報ＱＥ２１を取得する。図１３に示す例において、クエリ情報ＱＥ２１は、「Key  of  ring  iS  =  <Leibniz>」という文字列情報が含まれており、検索対象となる要素が「Ｓ」、すなわち主語（Subject）であり、その値が「<Leibniz>」であることを示す。
【０１６２】
端末装置１０からクエリ情報ＱＥ２１を取得した生成装置１００は、クエリ情報ＱＥ２１に対応する特定情報を参照情報記憶部１２２Ａから抽出する（ステップＳ４１）。図１３の例では、生成装置１００は、クエリ情報ＱＥ２１が検索対象とする要素が主語であるため、キーＫ４１のようなキー「<Leibniz>,*,*」を生成する。例えば、生成装置１００は、構文解析等の字句解析の種々の従来技術を適宜用いて、クエリ情報ＱＥ２１を解析することにより、「Key  of  ring  iS  =  <Leibniz>」は、検索対象となる要素が主語であり、その値が「<Leibniz>」と特定する。これにより、生成装置１００は、図１３中のキーＫ４１のようなキー「<Leibniz>,*,*」を生成する。そして、生成装置１００は、キーＫ４１をハッシュ関数ＨＦ１０に入力することにより、ハッシュ値「６１５３」を取得する。
【０１６３】
その後、生成装置１００は、参照情報記憶部１２２Ａから、インデックス「６１５３」に格納されたＩＤを抽出する。具体的には、生成装置１００は、参照情報記憶部１２２Ａからキー「<Leibniz>,*,*」に対応付けて格納されたＩＤ「３」を特定情報として抽出する。
【０１６４】
その後、生成装置１００は、ステップＳ４１において抽出した特定情報を用いて、トリプル情報記憶部１２１からクエリに対応するトリプル情報群を抽出する（ステップＳ４２）。例えば、生成装置１００は、抽出した特定情報であるＩＤ「３」を用いて、トリプル情報記憶部１２１からクエリ情報ＱＥ２１に対応するトリプル情報群を抽出する。
【０１６５】
図１３の例では、生成装置１００は、特定情報であるＩＤ「３」により特定したトリプル情報Ｔ３から循環リストを辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。例えば、生成装置１００は、ＩＤ「３」に対応する「ｉＳ」に記憶されたＩＤ「１４」により識別されるトリプル情報Ｔ１４から順に辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。なお、この点に関する処理は、図６及び図７に示す例と同様であるため、説明を省略する。
【０１６６】
図１３の例では、生成装置１００は、トリプル情報Ｔ３から循環リストを辿ることによりトリプル情報Ｔ４、Ｔ１２〜Ｔ１４をクエリ情報ＱＥ２１に対応するトリプル情報群として抽出する。このように、図１３の例では、生成装置１００は、ＩＤ「３」、「４」、「１２」、「１３」及び「１４」の各々により識別されるトリプル情報Ｔ３、Ｔ４、Ｔ１２〜Ｔ１４をクエリ情報ＱＥ２１に対応するトリプル情報群として抽出する。このように、生成装置１００は、連想配列を用いて参照情報を格納することにより、クエリに対応する循環リストに属する１つのトリプル情報の特定に要する処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。
【０１６７】
〔８．参照情報を用いない構成〕
上記した例では、生成装置１００が種々の参照情報を用いて循環リストに属する１つのトリプル情報を特定する場合を示したが、生成装置１００は、参照情報を用いなくてもよい。この場合、生成装置１００は、参照情報記憶部１２２や参照情報記憶部１２２Ａを有しなくてもよい。この点について、図１４を基に説明する。図１４は、実施形態に係るトリプル情報記憶部の他の構成例を示す図である。なお、実施形態と同様の構成については、同一の符号を付して説明を省略する。
【０１６８】
図１４に示す生成装置１００は、図４に示すようなトリプル情報記憶部１２１に替えて、トリプル情報記憶部１２１Ａを有する。トリプル情報記憶部１２１Ａは、探索順を示す項目「次ＩＤ（探索順）」を有する点で実施形態に係るトリプル情報記憶部１２１と相違する。
【０１６９】
例えば、生成装置１００は、複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、各トリプル情報の探索順序に関する情報を生成する。生成装置１００は、トリプル情報記憶部１２１Ａに記憶される関連付情報や探索順に関する情報を生成する。
【０１７０】
例えば、生成装置１００は、ＩＤ「０」からＩＤ「１５」の順に、すなわちＩＤの数が小さい順に関連付情報や探索順に関する情報を生成する。例えば、生成装置１００は、ＩＤ「０」からＩＤ「１５」の順に関連付情報の生成を行い、新たな循環リストが生成されないトリプル情報の探索順を遅くすることにより探索順に関する情報を生成する。
【０１７１】
図１４の例では、生成装置１００は、トリプル情報Ｔ０の関連付情報を生成する処理において、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の組合せについて新たな循環リストが生成されるため、トリプル情報Ｔ０の探索順を１位にする。
【０１７２】
また、図１４の例では、生成装置１００は、トリプル情報Ｔ１の関連付情報を生成する処理において、「ｉＳ」、「ｉＳＰ」及び「ｉＳＯ」の組合せについて新たな循環リストが生成されるため、トリプル情報Ｔ１の探索順を２位にする。また、生成装置１００は、トリプル情報Ｔ０に対応するＩＤ「０」の次ＩＤに「１」を格納する。
【０１７３】
また、図１４の例では、生成装置１００は、トリプル情報Ｔ２の関連付情報を生成する処理において、「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の組合せについて新たな循環リストが生成されるため、トリプル情報Ｔ２の探索順を３位にする。また、生成装置１００は、トリプル情報Ｔ１に対応するＩＤ「１」の次ＩＤに「２」を格納する。
【０１７４】
また、図１４の例では、生成装置１００は、トリプル情報Ｔ３の関連付情報を生成する処理において、「ｉＳ」、「ｉＳＰ」及び「ｉＳＯ」の組合せについて新たな循環リストが生成されるため、トリプル情報Ｔ３の探索順を４位にする。また、生成装置１００は、トリプル情報Ｔ２に対応するＩＤ「２」の次ＩＤに「３」を格納する。
【０１７５】
また、図１４の例では、生成装置１００は、トリプル情報Ｔ４の関連付情報を生成する処理において、「ｉＳ」、「ｉＳＰ」及び「ｉＳＯ」の組合せについて新たな循環リストが生成されるため、トリプル情報Ｔ４の探索順を５位にする。また、生成装置１００は、トリプル情報Ｔ３に対応するＩＤ「３」の次ＩＤに「４」を格納する。
【０１７６】
また、図１４の例では、生成装置１００は、トリプル情報Ｔ５の関連付情報を生成する処理において、トリプル情報Ｔ５の「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の組合せは、トリプル情報Ｔ３またはトリプル情報Ｔ４のいずれかの「ｉＳ」、「ｉＰ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の組合せと一致するため、トリプル情報Ｔ５については探索順を遅くする。なお、図１４の例では、トリプル情報Ｔ５の探索順を１６個のトリプル情報のうち最後の探索順である１６位にする場合を示すが、生成装置１００は、トリプル情報Ｔ５については探索順を付さなくてもよい。
【０１７７】
また、図１４の例では、生成装置１００は、トリプル情報Ｔ６の関連付情報を生成する処理において、「ｉＳ」、「ｉＯ」、「ｉＳＰ」、「ｉＳＯ」及び「ｉＰＯ」の組合せについて新たな循環リストが生成されるため、トリプル情報Ｔ６の探索順を６位にする。また、生成装置１００は、トリプル情報Ｔ４に対応するＩＤ「４」の次ＩＤに「６」を格納する。
【０１７８】
また、図１４の例では、生成装置１００は、残りのトリプル情報Ｔ７〜Ｔ１５についても同様に処理を行うことにより、トリプル情報記憶部１２１Ａに示すような関連付情報や探索順に関する情報を生成する。
【０１７９】
上述のように生成したトリプル情報記憶部１２１Ａの情報を用いることにより、生成装置１００は、探索順が１位であるトリプル情報Ｔ０から探索を開始して、トリプル情報Ｔ４を処理した後、トリプル情報Ｔ５を処理せずにトリプル情報Ｔ６の処理に移る。これにより、生成装置１００は、検索に要する処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。
【０１８０】
このように、生成装置１００は、トリプル情報記憶部１２１Ａ内の探索順に関する情報を生成し、用いることにより、参照情報記憶部１２２や参照情報記憶部１２２Ａ等の参照情報を用いることなく、クエリに対応する循環リストに属する１つのトリプル情報の特定に要する処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。なお、上記は一例であり生成装置１００は、種々の情報を適宜用いて探索順に関する情報を生成する。
【０１８１】
〔９．効果〕
上述してきたように、実施形態に係る生成装置１００は、取得部１３１と、生成部１３２とを有する。取得部１３１は、３種類の要素に関する関係を示す複数のトリプル情報を取得する。生成部１３２は、取得部１３１により取得された複数のトリプル情報のうち、３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する。
【０１８２】
これにより、実施形態に係る生成装置１００は、複数のトリプル情報のうち、３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
【０１８３】
また、実施形態に係る生成装置１００において、生成部１３２は、３種類の要素のうち１以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成する。
【０１８４】
これにより、実施形態に係る生成装置１００は、３種類の要素のうち１以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
【０１８５】
また、実施形態に係る生成装置１００において、生成部１３２は、組合せごとに当該組合せに含まれる要素が対応するトリプル情報群を関連付ける複数の関連付情報を生成する。
【０１８６】
これにより、実施形態に係る生成装置１００は、組合せごとに当該組合せに含まれる要素が対応するトリプル情報群を関連付ける複数の関連付情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
【０１８７】
また、実施形態に係る生成装置１００において、生成部１３２は、トリプル情報群ごとに、当該トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する。
【０１８８】
これにより、実施形態に係る生成装置１００は、トリプル情報群ごとに、当該トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
【０１８９】
また、実施形態に係る生成装置１００において、生成部１３２は、トリプル情報群ごとに、当該トリプル情報群に含まれる一のトリプル情報に当該トリプル情報群に含まれる他のトリプル情報を関連付けることにより、循環リストに関する情報を生成する。
【０１９０】
これにより、実施形態に係る生成装置１００は、トリプル情報群ごとに、当該トリプル情報群に含まれる一のトリプル情報に当該トリプル情報群に含まれる他のトリプル情報を関連付けることにより、トリプル情報を効率的に検索可能にすることができる。
【０１９１】
また、実施形態に係る生成装置１００において、生成部１３２は、トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報を生成する。
【０１９２】
これにより、実施形態に係る生成装置１００は、トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
【０１９３】
また、実施形態に係る生成装置１００において、生成部１３２は、トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する情報を一覧情報として生成する。
【０１９４】
これにより、実施形態に係る生成装置１００は、トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する情報を一覧情報として生成することにより、トリプル情報を効率的に検索可能にすることができる。
【０１９５】
また、実施形態に係る生成装置１００において、生成部１３２は、３種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する一覧情報を生成する。
【０１９６】
これにより、実施形態に係る生成装置１００は、３種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する一覧情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
【０１９７】
また、実施形態に係る生成装置１００において、生成部１３２は、複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、各トリプル情報の探索順序に関する情報を生成する。
【０１９８】
これにより、実施形態に係る生成装置１００は、複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、トリプル情報を効率的に検索可能にすることができる。
【０１９９】
また、実施形態に係る生成装置１００は、抽出部１３３を有する。抽出部１３３は、３種類の要素のうち１以上の要素に関する指定に基づいて、トリプル情報群を抽出する。
【０２００】
これにより、実施形態に係る生成装置１００は、３種類の要素のうち１以上の要素に関する指定に基づいて、トリプル情報群を抽出することにより、トリプル情報を効率的に提供可能にすることができる。
【０２０１】
また、実施形態に係る生成装置１００において、取得部１３１は、３種類の要素のうち１以上の要素の指定に関する情報を取得する。抽出部１３３は、取得部１３１により取得された要素の指定に関する情報に対応するトリプル情報群を抽出する。
【０２０２】
これにより、実施形態に係る生成装置１００は、取得した要素の指定に関する情報に対応するトリプル情報群を抽出することにより、トリプル情報を効率的に提供可能にすることができる。
【０２０３】
〔１０．ハードウェア構成〕
上述してきた実施形態に係る生成装置１００は、例えば図１５に示すような構成のコンピュータ１０００によって実現される。図１５は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ１０００は、ＣＰＵ１１００、ＲＡＭ１２００、ＲＯＭ（Read  Only  Memory）１３００、ＨＤＤ（Hard  Disk  Drive）１４００、通信インターフェイス（Ｉ／Ｆ）１５００、入出力インターフェイス（Ｉ／Ｆ）１６００、及びメディアインターフェイス（Ｉ／Ｆ）１７００を有する。
【０２０４】
ＣＰＵ１１００は、ＲＯＭ１３００またはＨＤＤ１４００に格納されたプログラムに基づいて動作し、各部の制御を行う。ＲＯＭ１３００は、コンピュータ１０００の起動時にＣＰＵ１１００によって実行されるブートプログラムや、コンピュータ１０００のハードウェアに依存するプログラム等を格納する。
【０２０５】
ＨＤＤ１４００は、ＣＰＵ１１００によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス１５００は、ネットワークＮを介して他の機器からデータを受信してＣＰＵ１１００へ送り、ＣＰＵ１１００が生成したデータをネットワークＮを介して他の機器へ送信する。
【０２０６】
ＣＰＵ１１００は、入出力インターフェイス１６００を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。ＣＰＵ１１００は、入出力インターフェイス１６００を介して、入力装置からデータを取得する。また、ＣＰＵ１１００は、生成したデータを入出力インターフェイス１６００を介して出力装置へ出力する。
【０２０７】
メディアインターフェイス１７００は、記録媒体１８００に格納されたプログラムまたはデータを読み取り、ＲＡＭ１２００を介してＣＰＵ１１００に提供する。ＣＰＵ１１００は、かかるプログラムを、メディアインターフェイス１７００を介して記録媒体１８００からＲＡＭ１２００上にロードし、ロードしたプログラムを実行する。記録媒体１８００は、例えばＤＶＤ（Digital  Versatile  Disc）、ＰＤ（Phase  change  rewritable  Disk）等の光学記録媒体、ＭＯ（Magneto-Optical  disk）等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
【０２０８】
例えば、コンピュータ１０００が実施形態に係る生成装置１００として機能する場合、コンピュータ１０００のＣＰＵ１１００は、ＲＡＭ１２００上にロードされたプログラムを実行することにより、制御部１３０の機能を実現する。コンピュータ１０００のＣＰＵ１１００は、これらのプログラムを記録媒体１８００から読み取って実行するが、他の例として、他の装置からネットワークＮを介してこれらのプログラムを取得してもよい。
【０２０９】
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
【０２１０】
〔１１．その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
【０２１１】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０２１２】
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【０２１３】
また、上述してきた「部（section、module、unit）」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。
【符号の説明】
【０２１４】
１  生成システム
１００  生成装置
１２１  トリプル情報記憶部
１２２  参照情報記憶部
１３０  制御部
１３１  取得部
１３２  生成部
１３３  抽出部
１３４  提供部
１０  端末装置
５０  情報提供装置
Ｎ  ネットワーク
【図１】
2018084993.tif 000003
【図２】
2018084993.tif 000004
【図３】
2018084993.tif 000005
【図４】
2018084993.tif 000006
【図５】
2018084993.tif 000007
【図６】
2018084993.tif 000008
【図７】
2018084993.tif 000009
【図８】
2018084993.tif 000010
【図９】
2018084993.tif 000011
【図１０】
2018084993.tif 000012
【図１１】
2018084993.tif 000013
【図１２】
2018084993.tif 000014
【図１３】
2018084993.tif 000015
【図１４】
2018084993.tif 000016
【図１５】
2018084993.tif 000017
【手続補正書】
【提出日】平成30年2月8日(2018.2.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得部と、
前記取得部により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成し、トリプル情報群ごとに、当該トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する生成部と、
を備えることを特徴とする生成装置。
【請求項２】
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得部と、
前記取得部により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成し、トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報であって、トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する一覧情報を生成する生成部と、
を備えることを特徴とする生成装置。
【請求項３】
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得部と、
前記取得部により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成し、前記複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、各トリプル情報の探索順序に関する情報を生成し、前記複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、各トリプル情報の探索順序に関する情報を生成する生成部と、
を備えることを特徴とする生成装置。
【請求項４】
前記生成部は、
前記３種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する前記一覧情報を生成する
ことを特徴とする請求項２に記載の生成装置。
【請求項５】
前記生成部は、
前記３種類の要素のうち１以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成する
ことを特徴とする請求項１〜４のいずれか１項に記載の生成装置。
【請求項６】
前記生成部は、
組合せごとに当該組合せに含まれる要素が対応するトリプル情報群を関連付ける前記複数の関連付情報を生成する
ことを特徴とする請求項５に記載の生成装置。
【請求項７】
前記生成部は、
トリプル情報群ごとに、当該トリプル情報群に含まれる一のトリプル情報に当該トリプル情報群に含まれる他のトリプル情報を関連付けることにより、循環リストに関する情報を生成する
ことを特徴とする請求項１〜６のいずれか１項に記載の生成装置。
【請求項８】
前記３種類の要素のうち１以上の要素に関する指定に基づいて、トリプル情報群を抽出する抽出部、
をさらに備えたことを特徴とする請求項１〜７のいずれか１項に記載の生成装置。
【請求項９】
前記取得部は、
前記３種類の要素のうち１以上の要素の指定に関する情報を取得し、
前記抽出部は、
前記取得部により取得された要素の指定に関する情報に対応するトリプル情報群を抽出する
ことを特徴とする請求項８に記載の生成装置。
【請求項１０】
コンピュータが実行する生成方法であって、
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得工程と、
前記取得工程により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成し、トリプル情報群ごとに、当該トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する生成工程と、
を含むことを特徴とする生成方法。
【請求項１１】
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得手順と、
前記取得手順により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成し、トリプル情報群ごとに、当該トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する生成手順と、
をコンピュータに実行させることを特徴とする生成プログラム。
【請求項１２】
コンピュータが実行する生成方法であって、
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得工程と、
前記取得工程により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成し、トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報であって、トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する一覧情報を生成する生成工程と、
を含むことを特徴とする生成方法。
【請求項１３】
３種類の要素に関する関係を示す複数のトリプル情報を取得する取得手順と、
前記取得手順により取得された複数のトリプル情報のうち、前記３種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成し、トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報であって、トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する一覧情報を生成する生成手順と、
をコンピュータに実行させることを特徴とする生成プログラム。