以下に、本願に係る生成装置、生成方法、及び生成プログラムを実施するための形態(以下、「実施形態」と呼ぶ)について図面を参照しつつ詳細に説明する。なお、この実施形態により本願に係る生成装置、生成方法、及び生成プログラムが限定されるものではない。また、以下の各実施形態において同一の部位には同一の符号を付し、重複する説明は省略される。
(実施形態)
〔1.生成処理〕
図1を用いて、実施形態に係る生成処理の一例について説明する。図1は、実施形態に係る生成処理の一例を示す図である。図1では、生成装置100(図3参照)がトリプル情報記憶部121に記憶されたトリプル情報について、3種類の要素のうち1以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成する場合を示す。図1の例では、生成装置100は、3種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する循環リストを、関連付情報として生成するが、具体的には処理の説明の中で詳述する。なお、ここでいうトリプル情報とは、RDF(Resource Description Framework)のデータモデルに基づく情報であって、主語(subject)、述語(predicate)及び目的語(object)の3つの要素(トリプル:triple)でリソースにおける関係を表現する情報である。
また、図1に示す例においては、トリプル情報記憶部121に記憶された関連付情報の更新に応じて、トリプル情報記憶部121をトリプル情報記憶部121−1〜121−4として説明する。なお、トリプル情報記憶部121−1〜121−4は、同一のトリプル情報記憶部121である。また、以下では、トリプル情報記憶部121−1〜121−4について、特に区別なく説明する場合には、トリプル情報記憶部121と記載する。
また、図1中のトリプル情報記憶部121−4は、図4中のトリプル情報記憶部121と同様である。すなわち、トリプル情報記憶部121には16個のトリプル情報が記憶されており、図1の例では、生成装置100は、トリプル情報記憶部121に記憶された16個のトリプル情報を対象として、関連付情報を生成する場合を示す。
例えば、図1に示すトリプル情報記憶部121は、「ID」、「Subject(主語)」、「Predicate(述語)」、「Object(目的語)」、「iS」、「iP」、「iO」、「iSP」、「iSO」、「iPO」といった項目が含まれる。
「ID」は、トリプル情報を識別するための識別情報を示す。また、「Subject(主語)」は、IDにより識別されるトリプル情報の主語に対応する値を示す。また、「Predicate(述語)」は、IDにより識別されるトリプル情報の述語に対応する値を示す。また、「Object(目的語)」は、IDにより識別されるトリプル情報の目的語に対応する値を示す。
例えば、図1の例では、トリプル情報T0は、主語が「<philosopher>」、すなわち「哲学者」であることを示す。また、図1の例では、トリプル情報T0は、述語が「rdfs:subClassOf」、所定のプロパティであることを示す。例えば、述語「rdfs:subClassOf」は、主語に対応する値が目的語に対応するクラスのメンバー、つまりサブクラス(下位概念)であることを示す。また、図1の例では、トリプル情報T0は、目的語が「<person>」、すなわち「人間」であることを示す。例えば、「<」と「>」との間の文字列が所定の対象を示す。
図1に示す例において、トリプル情報T0は、主語「<philosopher>」がすなわち目的語が「<person>」のサブクラスであることを示す。すなわち、トリプル情報T0は、哲学者が人間のサブクラスであることを示す。
なお、トリプル情報記憶部121中の「Subject(主語)」、「Predicate(述語)」及び「Object(目的語)」に対応する情報をトリプル情報と記載する場合がある。例えば、ID「0」により識別されるトリプル情報(トリプル情報T0)は、「<philosopher>,rdfs:subClassOf,<person>」である。
なお、上述のように、「トリプル情報T*(*は任意の数値)」と記載した場合、そのトリプル情報はID「*」により識別されるトリプル情報であることを示す。例えば、「トリプル情報T1」と記載した場合、そのトリプル情報はID「1」により識別されるトリプル情報である。例えば、トリプル情報T1は、「<scientist>,rdfs:subClassOf,<person>」である。例えば、「トリプル情報T15」と記載した場合、そのトリプル情報はID「15」により識別されるトリプル情報である。例えば、トリプル情報T15は、「<Goedel>,<wasBornIn>,<Brno>」である。
なお、トリプル情報記憶部121中の「iS」、「iP」、「iO」、「iSP」、「iSO」、「iPO」は、各々3つの要素の組合せに対応し、各組合せに対応する関連付情報が記憶される。
また、「iS」は、主語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。また、「iP」は、述語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。また、「iO」は、目的語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。
また、「iSP」は、主語に対応する値及び述語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。また、「iSO」は、主語に対応する値及び目的語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。また、「iPO」は、述語に対応する値及び目的語に対応する値が共通するトリプル情報を連結する循環リストである関連付情報が記憶される。
図1の例では、生成装置100は、トリプル情報記憶部121に記憶された16個のトリプル情報T0〜T15について組合せごとの関連付情報を生成する。言い換えると、生成装置100は、トリプル情報記憶部121に記憶された16個のトリプル情報T0〜T15について、各組合せに対応する「iS」、「iP」、「iO」、「iSP」、「iSO」、「iPO」の6個の項目ごとの関連付情報を生成する。
また、図1に示す例においては、トリプル情報記憶部121−4以外のトリプル情報記憶部121−1〜121−3においては、処理に関連するトリプル情報部分のみを示すが、トリプル情報記憶部121−4と同様に16個のトリプル情報が記憶されているものとする。すなわち、トリプル情報記憶部121−1〜121−4は、関連付情報が更新される点以外は、同じトリプル情報が記憶されているものとする。
まず、図1に示すように、生成装置100は、ID「0」により識別されるトリプル情報T0の関連付情報を生成する(ステップS11)。図1に示す例においては、説明を簡単にするために、生成装置100がID「0」からID「15」の順に、すなわちIDの数が小さい順に関連付情報を生成する場合を示すが、生成装置100は、種々の手順で関連付情報を生成してもよい。
図1中のトリプル情報記憶部121−1に示すように、生成装置100は、トリプル情報T0に対応する「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」には、「0」を格納する。ステップS11の時点においては、トリプル情報T0のみが関連付情報の生成処理の対象となっているため、「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」には、トリプル情報T0自身の識別情報であるID「0」を格納する。
このように、トリプル情報T0の「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」には、トリプル情報T0自身を参照するID「0」が格納されている。つまり、ステップS11の時点においては、トリプル情報T0と各組合せが共通するトリプル情報群は、トリプル情報T0の1個のみであることを示す。例えば、トリプル情報T0の「iPO」には、トリプル情報T0自身を参照するID「0」が格納されているため、ステップS11の時点においては、トリプル情報T0と述語及び目的語が共通するトリプル情報は、トリプル情報T0の1個のみであることを示す。
なお、図1の例では、ステップS11において、トリプル情報T1は未処理であるため、図1中のトリプル情報記憶部121−1に示すように、トリプル情報T1に対応する「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」は、「−(未設定)」となる。また、図1中のトリプル情報記憶部121−1には図示を省略するが、トリプル情報記憶部121−1においては、残りの14個のトリプル情報T2〜T15に対応する「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」についても、「−(未設定)」となる。
また、図1に示すように、生成装置100は、ステップS11において生成された関連付情報に対応する参照情報を生成する(ステップS12)。例えば、生成装置100は、トリプル情報記憶部121に追加された新たな循環リストとなる関連付情報について、トリプル情報の識別情報であるIDを参照情報記憶部122に追加する。具体的には、生成装置100は、「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の6つの組合せのうち、新たな循環リストとなる関連付情報が追加された組合せに対応付けてトリプル情報の識別情報であるIDを参照情報記憶部122に記憶する。
ここで、図1中の参照情報記憶部122について説明する。なお、図1に示す例においては、参照情報記憶部122に記憶された参照情報の更新に応じて、参照情報記憶部122を参照情報記憶部122−1〜122−4として説明する。なお、参照情報記憶部122−1〜122−4は、同一の参照情報記憶部122である。また、以下では、参照情報記憶部122−1〜122−4について、特に区別なく説明する場合には、参照情報記憶部122と記載する。
例えば、参照情報記憶部122は、主語、述語及び目的語(以下、「SPO」と記載する場合がある)の組合せごとに対応する参照情報を各テーブルに記憶する。なお、以下では、参照情報は、各関連付情報である循環リストを特定するための情報として用いられるため、参照情報を特定情報ともいう。図1中の参照情報記憶部122は、図5中の参照情報記憶部122に対応し、「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の6つの組合せごとに対応する特定情報を記憶する。
例えば、第1テーブルTB1は、「群ID」や「iS」といった項目を有する。すなわち、第1テーブルTB1は、主語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第2テーブルTB2は、「群ID」や「iP」といった項目を有する。すなわち、第2テーブルTB2は、述語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第3テーブルTB3は、「群ID」や「iO」といった項目を有する。すなわち、第3テーブルTB3は、目的語が共通するトリプル情報群に対応する特定情報を記憶する。
例えば、第4テーブルTB4は、「群ID」や「iSP」といった項目を有する。すなわち、第4テーブルTB4は、主語及び述語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第5テーブルTB5は、「群ID」や「iSO」といった項目を有する。すなわち、第5テーブルTB5は、主語及び目的語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第6テーブルTB6は、「群ID」や「iPO」といった項目を有する。すなわち、第6テーブルTB6は、述語及び目的語が共通するトリプル情報群に対応する特定情報を記憶する。
例えば、第1テーブルTB1中の「群ID」は、主語が共通するトリプル情報群に対応する特定情報を識別する識別情報を示す。なお、「群ID」は、配列の番地等の所定のインデックスであってもよい。また、例えば、第1テーブルTB1中の「iS」は、対応する群IDに対応付けられた特定情報を示す。図1の例では、第1テーブルTB1中の「iS」は、主語が共通するトリプル情報群のうち1つのトリプル情報の識別情報である「ID」が記憶される。
図1に示す例においては、説明を簡単にするために、参照情報記憶部122に含まれる第1テーブルTB1〜第6テーブルTB6(図5参照)のうち、第1テーブルTB1及び第2テーブルTB2のみを図示する。なお、生成装置100は、参照情報記憶部122中の第1テーブルTB1〜第6テーブルTB6に、IDに対応付けてその値を格納してもよい。例えば、生成装置100は、第1テーブルTB1や第4テーブルTB4や第5テーブルTB5に、ID「0」に対応付けてトリプル情報T0の主語である「<philosopher>」を格納してもよい。例えば、生成装置100は、第2テーブルTB2や第4テーブルTB4や第6テーブルTB6に、ID「0」に対応付けてトリプル情報T0の述語である「rdfs:subClassOf」を格納してもよい。
なお、図1に示す例においては、第1テーブルTB1の更新に応じて、第1テーブルTB1を第1テーブルTB1−1〜TB1−4として説明する。なお、第1テーブルTB1−1〜TB1−4は、同一の第1テーブルTB1である。また、以下では、第1テーブルTB1−1〜TB1−4について、特に区別なく説明する場合には、第1テーブルTB1と記載する。また、図1に示す例においては、第2テーブルTB2の更新に応じて、第2テーブルTB2を第2テーブルTB2−1〜TB2−4として説明する。なお、第2テーブルTB2−1〜TB2−4は、同一の第2テーブルTB2である。また、以下では、第2テーブルTB2−1〜TB2−4について、特に区別なく説明する場合には、第2テーブルTB2と記載する。
図1の例では、生成装置100は、ステップS11の時点においては、トリプル情報T0のみが関連付情報の生成処理の対象となっているため、参照情報記憶部122に含まれる第1テーブルTB1〜第6テーブルTB6(図5参照)の各々には、トリプル情報T0の識別情報であるID「0」を追加する。すなわち、参照情報記憶部122−1は、ステップS11の時点においてトリプル情報記憶部121−1中の「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の6つの組合せに、トリプル情報T0を含むトリプル情報群を連結する循環リストである関連付情報が追加されたことを示す。
図1の例では、第1テーブルTB1−1に示すように、群ID「IN1−1」に対応する「iS」には、ID「0」が追加される。また、図1の例では、第2テーブルTB2−1に示すように、群ID「IN2−1」に対応する「iP」には、ID「0」が追加される。また、図1では図示を省略するが、残りの第3テーブルTB3〜第6テーブルTB6の4つのテーブルにもID「0」が追加される。例えば、第3テーブルTB3中の「iO」にはID「0」が追加され、第4テーブルTB4中の「iSP」にはID「0」が追加され、第5テーブルTB5中の「iSO」にはID「0」が追加され、第6テーブルTB6中の「iPO」にはID「0」が追加される。
次に、生成装置100は、ID「1」により識別されるトリプル情報T1の関連付情報や参照情報(以下、併せて「関連付情報等」と記載する場合がある)を生成する(ステップS13)。
まず、トリプル情報T1の関連付情報の生成について説明する。図1中のトリプル情報記憶部121−2に示すように、生成装置100は、トリプル情報T1に対応する「iS」には、「1」を格納する。このように、生成装置100は、トリプル情報T1の主語「<scientist>」と、トリプル情報T0の主語「<philosopher>」とは異なるため、組合せ「iS」については、トリプル情報T1とトリプル情報T0とは異なる循環リストに属する情報とする。例えば、生成装置100は、トリプル情報T1に対する処理の前に関連付情報が生成されたトリプル情報に、トリプル情報T1の主語と共通する主語のトリプル情報が無い場合、トリプル情報T1を含む新たな循環リストを生成する。
また、生成装置100は、トリプル情報T1の主語「<scientist>」と、トリプル情報T0の主語「<philosopher>」とは異なるため、組合せ「iSP」及び「iSO」についても、トリプル情報T1とトリプル情報T0とは異なる循環リストに属する情報とする。すなわち、図1中のトリプル情報記憶部121−2に示すように、生成装置100は、トリプル情報T1に対応する「iSP」及び「iSO」には、「1」を格納する。
一方、生成装置100は、トリプル情報T1の述語「rdfs:subClassOf」と、トリプル情報T0の述語「rdfs:subClassOf」とは同じであるため、組合せ「iP」については、トリプル情報T1とトリプル情報T0とは同じ循環リストに属する情報とする。このように、生成装置100は、トリプル情報T1に対する処理の前に関連付情報が生成されたトリプル情報に、トリプル情報T1の述語と共通する述語のトリプル情報がある場合、そのトリプル情報を含むトリプル情報群の循環リストにトリプル情報T1を追加するように関連付情報を生成する。
例えば、生成装置100は、トリプル情報T0に対応する「iP」に記憶されたIDを、トリプル情報T1に対応する「iP」に記憶し、トリプル情報T0に対応する「iP」は、トリプル情報T1の識別情報であるID「1」に更新する。具体的には、生成装置100は、図1中のトリプル情報記憶部121−2に示すように、ID「0」に対応する行の「iP」の情報をID「1」に更新し、ID「1」に対応する行の「iP」にID「0」を追加する。これにより、生成装置100は、組合せ「iP」については、トリプル情報T0とトリプル情報T1とを連結する循環リストを生成する。
また、生成装置100は、トリプル情報T1の目的語「<person>」と、トリプル情報T0の目的語「<person>」とは同じであるため、組合せ「iO」については、トリプル情報T1とトリプル情報T0とは同じ循環リストに属する情報とする。具体的には、生成装置100は、図1中のトリプル情報記憶部121−2に示すように、ID「0」に対応する行の「iO」の情報をID「1」に更新し、ID「1」に対応する行の「iO」にID「0」を追加する。これにより、生成装置100は、組合せ「iO」については、トリプル情報T0とトリプル情報T1とを連結する循環リストを生成する。
また、生成装置100は、トリプル情報T1と、トリプル情報T0とは、述語及び目的語が同じであるため、組合せ「iPO」については、トリプル情報T1とトリプル情報T0とは同じ循環リストに属する情報とする。具体的には、生成装置100は、図1中のトリプル情報記憶部121−2に示すように、ID「0」に対応する行の「iPO」の情報をID「1」に更新し、ID「1」に対応する行の「iO」にID「0」を追加する。これにより、生成装置100は、組合せ「iPO」については、トリプル情報T0とトリプル情報T1とを連結する循環リストを生成する。
また、図1に示すように、生成装置100は、ステップS13において生成された関連付情報に対応する参照情報を生成する。例えば、生成装置100は、第1テーブルTB1〜第6テーブルTB6のうち、トリプル情報T1を含む新たな循環リストが生成された組合せに対応するテーブルに、トリプル情報T1の識別情報であるID「1」を追加する。
具体的には、生成装置100は、トリプル情報T1を含む新たな循環リストを生成された「iS」、「iSP」及び「iSO」の3つの組合せに対応するテーブルに、トリプル情報T1の識別情報であるID「1」を追加する。
図1の例では、第1テーブルTB1−2に示すように、群ID「IN1−2」に対応する「iS」には、ID「1」が追加される。また、図1では図示を省略するが、「iSP」に対応する第4テーブルTB4及び「iSO」に対応する第5テーブルTB5の2つのテーブルにもID「1」が追加される。
一方、図1の例では、組合せ「iP」については、トリプル情報T1とトリプル情報T0とは同じ循環リストに属する情報とされるため、第2テーブルTB2−2に示すように、第2テーブルTB2には、ID「1」が追加されない。また、図1では図示を省略するが、残りの第3テーブルTB3及び第6テーブルTB6の2つのテーブルにもID「1」が追加されない。
上述のように生成装置100は、述語が「rdfs:subClassOf」であるトリプル情報T0を特定する参照情報(特定情報)を第2テーブルTB2に格納する。そのため、生成装置100は、述語が「rdfs:subClassOf」であるトリプル情報を検索する場合、第2テーブルTB2を参照することにより、述語が「rdfs:subClassOf」であるトリプル情報T0を特定することができる。また、生成装置100は、トリプル情報記憶部121中の「iP」に述語が「rdfs:subClassOf」であるトリプル情報群を連結する循環リストに関する情報を格納しているため、特定したトリプル情報T0から循環リストを辿ることにより、述語が「rdfs:subClassOf」である全トリプル情報を特定することができる。
図1の例では、生成装置100は、トリプル情報記憶部121中の「iP」に述語が「rdfs:subClassOf」であるトリプル情報T0及びトリプル情報T1を連結する循環リストに関する情報を格納しているため、特定したトリプル情報T0から循環リストを辿ることにより、述語が「rdfs:subClassOf」であるトリプル情報T0及びトリプル情報T1を特定することができる。なお、ここでは、説明を簡単にするために、循環リストに2つのトリプル情報が含まれる場合を示したが、循環リストには、1以上の任意の個数(例えば、2千個や1万個など)のトリプル情報が含まれる。
次に、生成装置100は、ID「2」により識別されるトリプル情報T2の関連付情報等を生成する(ステップS14)。図1の例では、ステップS14より前に処理したトリプル情報T0及びトリプル情報T1の主語は、トリプル情報T2の主語「<Plato>」とは異なる。また、図1の例では、ステップS14より前に処理したトリプル情報T0及びトリプル情報T1の述語は、トリプル情報T2の述語「rdf:type」とは異なる。図1の例では、ステップS14より前に処理したトリプル情報T0及びトリプル情報T1の目的語は、トリプル情報T2の目的語「<philosopher>」とは異なる。
そのため、図1中のトリプル情報記憶部121−3に示すように、生成装置100は、トリプル情報T0に対応する「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」には、トリプル情報T2自身の識別情報であるID「2」を格納する。なお、トリプル情報T2の目的語「<philosopher>」は、トリプル情報T0及びトリプル情報T1の主語「<philosopher>」と同じであるが、要素が目的語と主語とで異なるため、生成装置100は、異なるものとして処理する。
また、上述のように、トリプル情報T2の主語、述語及び目的語の各々は、トリプル情報T0及びトリプル情報T1の主語、述語及び目的語の各々と異なるため、図1の例では、生成装置100は、参照情報記憶部122に含まれる第1テーブルTB1〜第6テーブルTB6(図5参照)の各々には、トリプル情報T2の識別情報であるID「2」を追加する。すなわち、参照情報記憶部122−3は、ステップS14においてトリプル情報記憶部121−3中の「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の6つの組合せに、トリプル情報T2を含むトリプル情報群を連結する循環リストである関連付情報が追加されたことを示す。
図1の例では、第1テーブルTB1−3に示すように、群ID「IN1−3」に対応する「iS」には、ID「2」が追加される。また、図1の例では、第2テーブルTB2−3に示すように、群ID「IN2−2」に対応する「iP」には、ID「2」が追加される。また、図1では図示を省略するが、残りの第3テーブルTB3〜第6テーブルTB6の4つのテーブルにもID「2」が追加される。例えば、第3テーブルTB3中の「iO」にはID「2」が追加され、第4テーブルTB4中の「iSP」にはID「2」が追加され、第5テーブルTB5中の「iSO」にはID「2」が追加され、第6テーブルTB6中の「iPO」にはID「2」が追加される。
また、生成装置100は、ID「3」により識別されるトリプル情報T3からID「15」により識別されるトリプル情報T15の13個のトリプル情報について上述した処理を繰り返し行うことにより、トリプル情報T3〜T15の関連付情報等を順次生成する(ステップS15)。これにより、生成装置100は、図1中のトリプル情報記憶部121−4に示すような関連付情報や図1中の参照情報記憶部122−4に示すような参照情報を生成する。
上述したように、生成装置100は、3種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する循環リストを、関連付情報として生成することにより、トリプル情報を効率的に検索可能にすることができる。なお、関連付情報を用いた検索についての詳細は後述する。また、生成装置100は、新しいトリプル情報が追加された場合、上述した処理と同様に新しいトリプル情報の関連付情報等を生成することにより、トリプル情報が追加された場合であっても適切に関連付情報等を生成することができる。
〔2.生成システムの構成〕
図2に示すように、生成システム1は、端末装置10と、情報提供装置50と、生成装置100とが含まれる。端末装置10と、情報提供装置50と、生成装置100とは所定のネットワークNを介して、有線または無線により通信可能に接続される。図2は、実施形態に係る生成システムの構成例を示す図である。なお、図2に示した生成システム1には、複数台の端末装置10や、複数台の情報提供装置50や、複数台の生成装置100が含まれてもよい。
端末装置10は、ユーザによって利用される情報処理装置である。端末装置10は、ユーザによる種々の操作を受け付ける。なお、以下では、端末装置10をユーザと表記する場合がある。すなわち、以下では、ユーザを端末装置10と読み替えることもできる。なお、上述した端末装置10は、例えば、スマートフォンや、タブレット型端末や、ノート型PC(Personal Computer)や、デスクトップPCや、携帯電話機や、PDA(Personal Digital Assistant)等により実現される。図6及び図8に示す例においては、端末装置10がノート型PCである場合を示す。
情報提供装置50は、ウェブサーバ等の種々の外部装置から収集した文字情報等に基づくトリプル情報が格納された情報処理装置である。例えば、情報提供装置50は、ウェブサーバ等の種々の外部装置から収集したリソースに関する情報に基づいてトリプル情報を生成する。また、例えば、情報提供装置50は、トリプル情報を生成装置100へ提供する。
生成装置100は、複数のトリプル情報のうち、3種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する情報処理装置である。例えば、生成装置100は、トリプル情報群ごとに、各トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する。また、本実施形態において生成装置100は、クエリを取得した場合、生成した関連付情報(循環リスト)に基づいて、クエリに対応するトリプル情報を提供する。なお、生成装置100は、ウェブサーバ等の種々の外部装置から収集したリソースに関する情報に基づいてトリプル情報を生成してもよい。
〔3.生成装置の構成〕
次に、図3を用いて、実施形態に係る生成装置100の構成について説明する。図3は、実施形態に係る生成装置100の構成例を示す図である。図3に示すように、生成装置100は、通信部110と、記憶部120と、制御部130とを有する。なお、生成装置100は、生成装置100の管理者等から各種操作を受け付ける入力部(例えば、キーボードやマウス等)や、各種情報を表示するための表示部(例えば、液晶ディスプレイ等)を有してもよい。
(通信部110)
通信部110は、例えば、NIC(Network Interface Card)等によって実現される。そして、通信部110は、ネットワーク(例えば図2中のネットワークN)と有線または無線で接続され、端末装置10との間で情報の送受信を行う。
(記憶部120)
記憶部120は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。実施形態に係る記憶部120は、図3に示すように、トリプル情報記憶部121と、参照情報記憶部122とを有する。
(トリプル情報記憶部121)
実施形態に係るトリプル情報記憶部121は、トリプルに関する各種情報を記憶する。例えば、トリプル情報記憶部121は、トリプル情報や関連付情報を記憶する。図4は、実施形態に係るトリプル情報記憶部の一例を示す図である。図4に示すトリプル情報記憶部121は、「ID」、「Subject(主語)」、「Predicate(述語)」、「Object(目的語)」、「iS」、「iP」、「iO」、「iSP」、「iSO」、「iPO」といった項目が含まれる。
「ID」は、トリプル情報を識別するための識別情報を示す。また、「Subject(主語)」は、IDにより識別されるトリプル情報の主語に対応する値を示す。また、「Predicate(述語)」は、IDにより識別されるトリプル情報の述語に対応する値を示す。また、「Object(目的語)」は、IDにより識別されるトリプル情報の目的語に対応する値を示す。
また、「iS」は、主語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。また、「iP」は、述語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。また、「iO」は、目的語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。
また、「iSP」は、主語に対応する値及び述語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。また、「iSO」は、主語に対応する値及び目的語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。また、「iPO」は、述語に対応する値及び目的語に対応する値が共通するトリプル情報を連結する循環リストに関する情報が記憶される。
例えば、図4に示す例においては、トリプル情報記憶部121には、ID「0」により識別されるトリプル情報T0からID「15」により識別されるトリプル情報T15までの16個のトリプル情報T0〜T15が記憶される。
例えば、図4に示す例において、ID「0」により識別されるトリプル情報T0は、主語が「<philosopher>」、すなわち「哲学者」であることを示す。また、例えば、図4に示す例において、トリプル情報T0は、述語が「rdfs:subClassOf」、所定のプロパティであることを示す。例えば、述語「rdfs:subClassOf」は、主語に対応する値が目的語に対応するクラスのメンバー、つまりサブクラスであることを示す。また、例えば、図4に示す例において、トリプル情報T0は、目的語が「<person>」、すなわち「人間」であることを示す。また、例えば、図4に示す例において、トリプル情報T11の目的語「2500」やトリプル情報T14の目的語「500」は、数値を示す。
図4に示す例において、トリプル情報T0は、主語「<philosopher>」がすなわち目的語が「<person>」のサブクラスであることを示す。すなわち、トリプル情報T0は、哲学者が人間のサブクラスであることを示す。
また、図4に示す例において、トリプル情報T0の「iS」には、「0」が格納されており、トリプル情報T0と主語が共通するトリプル情報群の循環リストにおいて、トリプル情報T0が指す次のトリプル情報を識別するIDは「0」であることを示す。このように、トリプル情報T0の「iS」には、トリプル情報T0自身を参照するID「0」が格納されているため、トリプル情報T0と主語が共通するトリプル情報群は、トリプル情報T0の1個のみであることを示す。
すなわち、図4に示す例において、トリプル情報記憶部121に記憶されたトリプル情報T0〜T15のうち、主語が「<philosopher>」であるトリプル情報はトリプル情報T0の1個のみであり、他にトリプル情報T0の主語「<philosopher>」と同じ主語であるトリプル情報は含まれないことを示す。
また、図4に示す例において、トリプル情報T0の「iP」には、「1」が格納されており、トリプル情報T0と述語が共通するトリプル情報群の循環リストにおいて、トリプル情報T0が指す次のトリプル情報を識別するIDは「1」であることを示す。このように、トリプル情報T0の「iP」には、トリプル情報T1を参照するID「1」が格納されているため、トリプル情報T0と述語が共通するトリプル情報群には、トリプル情報T1が含まれることを示す。
また、図4に示す例において、トリプル情報T1の「iP」には、「0」が格納されており、トリプル情報T1と述語が共通するトリプル情報群の循環リストにおいて、トリプル情報T1が指す次のトリプル情報を識別するIDは「0」であることを示す。このように、トリプル情報T1の「iP」には、トリプル情報T0を参照するID「0」が格納されているため、トリプル情報T1と述語が共通するトリプル情報群には、トリプル情報T0が含まれることを示す。トリプル情報T1が指す次のトリプル情報が上述したトリプル情報T0であるため、トリプル情報T0と述語が共通するトリプル情報群の循環リストには、トリプル情報T0とトリプル情報T1の2個が含まれることを示す。
すなわち、図4に示す例において、トリプル情報記憶部121に記憶されたトリプル情報T0〜T15のうち、述語が「rdfs:subClassOf」であるトリプル情報はトリプル情報T0とトリプル情報T1の2個であることを示す。
また、図4に示す例において、トリプル情報T0の「iSO」には、「0」が格納されており、トリプル情報T0と主語及び目的語が共通するトリプル情報群の循環リストにおいて、トリプル情報T0が指す次のトリプル情報を識別するIDは「0」であることを示す。このように、トリプル情報T0の「iSO」には、トリプル情報T0自身を参照するID「0」が格納されているため、トリプル情報T0と主語及び目的語が共通するトリプル情報群は、トリプル情報T0の1個のみであることを示す。
すなわち、図4に示す例において、トリプル情報記憶部121に記憶されたトリプル情報T0〜T15のうち、主語が「<philosopher>」であり、目的語が「<person>」であるトリプル情報はトリプル情報T0の1個のみであり、他にトリプル情報T0の主語「<philosopher>」と同じ主語であり、トリプル情報T0の目的語「<person>」と同じ目的語であるトリプル情報は含まれないことを示す。
なお、トリプル情報記憶部121は、上記に限らず、目的に応じて種々の情報を記憶してもよい。
(参照情報記憶部122)
実施形態に係る参照情報記憶部122は、トリプル情報記憶部121に記憶されたトリプル情報の参照に用いる各種情報を記憶する。図5は、実施形態に係る参照情報記憶部の一例を示す図である。例えば、参照情報記憶部122は、主語、述語及び目的語の組合せごとに対応する特定情報を各テーブルに記憶する。図5の例では、参照情報記憶部122は、「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の6つの組合せごとに対応する特定情報を記憶する。図5に示す例においては、参照情報記憶部122は、第1テーブルTB1〜第6テーブルTB6といった組合せごとに対応する特定情報を記憶する。
例えば、第1テーブルTB1は、「群ID」や「iS」といった項目を有する。すなわち、第1テーブルTB1は、主語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第2テーブルTB2は、「群ID」や「iP」といった項目を有する。すなわち、第2テーブルTB2は、述語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第3テーブルTB3は、「群ID」や「iO」といった項目を有する。すなわち、第3テーブルTB3は、目的語が共通するトリプル情報群に対応する特定情報を記憶する。
例えば、第4テーブルTB4は、「群ID」や「iSP」といった項目を有する。すなわち、第4テーブルTB4は、主語及び述語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第5テーブルTB5は、「群ID」や「iSO」といった項目を有する。すなわち、第5テーブルTB5は、主語及び目的語が共通するトリプル情報群に対応する特定情報を記憶する。また、例えば、第6テーブルTB6は、「群ID」や「iPO」といった項目を有する。すなわち、第6テーブルTB6は、述語及び目的語が共通するトリプル情報群に対応する特定情報を記憶する。
例えば、第1テーブルTB1中の「群ID」は、主語が共通するトリプル情報群に対応する特定情報を識別する識別情報を示す。なお、「群ID」は、配列の番地等の所定のインデックスであってもよい。また、例えば、第1テーブルTB1中の「iS」は、対応する群IDに対応付けられた特定情報を示す。図5の例では、第1テーブルTB1中の「iS」は、主語が共通するトリプル情報群のうち1つのトリプル情報の識別情報である「ID」が記憶される。
図5に示す例において、群ID「IN1−1」に対応する「iS」には、ID「0」が記憶される。このように、図5に示す例において、トリプル情報記憶部121(図4参照)に記憶されたトリプル情報T0〜T15のうち、主語が共通するトリプル情報群には、ID「0」により識別されるトリプル情報(トリプル情報T0)が含まれるトリプル情報群が含まれることを示す。
また、図5に示す例において、群ID「IN1−2」に対応する「iS」には、ID「1」が記憶される。このように、図5に示す例において、トリプル情報記憶部121(図4参照)に記憶されたトリプル情報T0〜T15のうち、主語が共通するトリプル情報群には、ID「1」により識別されるトリプル情報(トリプル情報T1)が含まれるトリプル情報群が含まれることを示す。
また、図5に示す例において、群ID「IN1−3」に対応する「iS」には、ID「2」が記憶される。このように、図5に示す例において、トリプル情報記憶部121(図4参照)に記憶されたトリプル情報T0〜T15のうち、主語が共通するトリプル情報群には、ID「2」により識別されるトリプル情報(トリプル情報T2)が含まれるトリプル情報群が含まれることを示す。
なお、参照情報記憶部122は、上記に限らず、目的に応じて種々の情報を記憶してもよい。例えば、参照情報記憶部122は、連結配列の構造により構成されてもよい。この点についての詳細は後述する。
(制御部130)
図3の説明に戻って、制御部130は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)やMPU(Micro Processing Unit)等によって、生成装置100内部の記憶装置に記憶されている各種プログラム(生成プログラムの一例に相当)がRAMを作業領域として実行されることにより実現される。また、制御部130は、コントローラであり、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)等の集積回路により実現される。
図3に示すように、制御部130は、取得部131と、生成部132と、抽出部133と、提供部134とを有し、以下に説明する情報処理の機能や作用を実現または実行する。なお、制御部130の内部構成は、図3に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。
(取得部131)
取得部131は、各種情報を取得する。例えば、取得部131は、トリプル情報記憶部121、参照情報記憶部122等から各種情報を取得する。また、取得部131は、各種情報を外部の情報処理装置から取得してもよい。また、取得部131は、各トリプル情報に関する情報を情報提供装置50から取得してもよい。
例えば、取得部131は、3種類の要素に関する関係を示す複数のトリプル情報を取得する。例えば、取得部131は、トリプル情報記憶部121から3種類の要素に関する関係を示す複数のトリプル情報を取得する。
例えば、取得部131は、3種類の要素のうち1以上の要素の指定に関する情報を取得する。図6の例では、取得部131は、ユーザU1が利用する端末装置10からクエリ情報QE21を取得する。
(生成部132)
生成部132は、各種情報を生成する。例えば、生成部132は、取得部131により取得された複数のトリプル情報のうち、3種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する。
例えば、生成部132は、3種類の要素のうち1以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成する。また、例えば、生成部132は、組合せごとに当該組合せに含まれる要素が対応するトリプル情報群を関連付ける複数の関連付情報を生成する。また、例えば、生成部132は、トリプル情報群ごとに、各トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する。また、例えば、生成部132は、トリプル情報群ごとに、各トリプル情報群に含まれる一のトリプル情報に当該トリプル情報群に含まれる他のトリプル情報を関連付けることにより、循環リストに関する情報を生成する。
例えば、生成部132は、トリプル情報T1に対する処理の前に関連付情報が生成されたトリプル情報に、トリプル情報T1の主語と共通する主語のトリプル情報が無い場合、トリプル情報T1を含む新たな循環リストを生成する。例えば、生成部132は、トリプル情報T1に対する処理の前に関連付情報が生成されたトリプル情報に、トリプル情報T1の述語と共通する述語のトリプル情報がある場合、そのトリプル情報を含むトリプル情報群の循環リストにトリプル情報T1を追加するように関連付情報を生成する。図1の例では、生成部132は、組合せ「iP」については、トリプル情報T0とトリプル情報T1とを連結する循環リストを生成する。図1の例では、生成部132は、組合せ「iO」については、トリプル情報T0とトリプル情報T1とを連結する循環リストを生成する。図1の例では、生成部132は、組合せ「iPO」については、トリプル情報T0とトリプル情報T1とを連結する循環リストを生成する。
図1の例では、生成部132は、図1中のトリプル情報記憶部121−4に示すような関連付情報や図1中の参照情報記憶部122−4に示すような参照情報を生成する。例えば、生成部132は、図1中のトリプル情報記憶部121−4に示すようなトリプル情報T1からトリプル情報T15の16個のトリプル情報について関連付情報等の生成を繰り返し行うことにより、トリプル情報T0〜T15の関連付情報等を順次生成する。
例えば、生成部132は、トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報を生成する。例えば、生成部132は、3種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する一覧情報を生成する。
図1の例では、生成部132は、図1中のトリプル情報記憶部121−4に示すような関連付情報や図1中の参照情報記憶部122−4に示すような参照情報を生成する。
また、例えば、生成部132は、トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する情報を一覧情報として生成する。また、例えば、生成部132は、複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、各トリプル情報の探索順序に関する情報を生成する。なお、これらの点についての詳細は後述する。
(抽出部133)
抽出部133は、各種情報を抽出する。例えば、抽出部133は、トリプル情報を抽出する。例えば、抽出部133は、取得部131により取得された要素の指定に関する情報に対応するトリプル情報群を抽出する。例えば、抽出部133は、3種類の要素のうち1以上の要素に関する指定に基づいて、トリプル情報群を抽出する。
図6の例では、抽出部133は、端末装置10から取得したクエリ情報QE21に対応する特定情報を参照情報記憶部122から抽出する。図6の例では、抽出部133は、検索対象となる要素が主語であるため、参照情報記憶部122のうち、組合せ「iS」に対応する第1テーブルTB1からクエリ情報QE21に対応する特定情報を抽出する。例えば、抽出部133は、第1テーブルTB1から主語が「<Leibniz>」であるトリプル情報を識別するIDを特定情報として抽出する。具体的には、抽出部133は、第1テーブルTB1から主語が「<Leibniz>」であるトリプル情報T3を識別するID「3」を特定情報として抽出する。例えば、抽出部133は、第1テーブルTB1に格納されたIDに対応するトリプル情報の主語とクエリ情報QE21に含まれる「<Leibniz>」を比較することにより、特定情報を抽出する。
また、図6の例では、抽出部133は、ステップS22において抽出した特定情報を用いて、トリプル情報記憶部121からクエリに対応するトリプル情報群を抽出する。例えば、抽出部133は、抽出した特定情報であるID「3」を用いて、トリプル情報記憶部121からクエリ情報QE21に対応するトリプル情報群を抽出する。
図6の例では、抽出部133は、特定情報であるID「3」により特定したトリプル情報T3から循環リストを辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。例えば、抽出部133は、ID「3」に対応する「iS」に記憶されたID「14」により識別されるトリプル情報T14から順に辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。
図7の例では、抽出部133は、トリプル情報T3から連結情報CN1〜CN5により辿ったトリプル情報T4、T12〜T14をクエリ情報QE21に対応するトリプル情報群として抽出する。例えば、抽出部133は、ID「3」、「4」、「12」、「13」及び「14」の各々により識別されるトリプル情報T3、T4、T12〜T14をクエリ情報QE21に対応するトリプル情報群として抽出する。
図8の例では、抽出部133は、端末装置10から取得したクエリ情報QE31に対応する特定情報を参照情報記憶部122から抽出する。図8の例では、抽出部133は、検索対象となる要素が述語及び目的語であるため、参照情報記憶部122のうち組合せ「iPO」に対応する第6テーブルTB6からクエリ情報QE31に対応する特定情報を抽出する。例えば、抽出部133は、第6テーブルTB6から、述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報を識別するIDを特定情報として抽出する。
具体的には、抽出部133は、第6テーブルTB6から述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報T4を識別するID「4」を特定情報として抽出する。例えば、抽出部133は、第6テーブルTB6に格納されたIDに対応するトリプル情報の述語とクエリ情報QE31に含まれる「rdf:type」を比較し、第6テーブルTB6に格納されたIDに対応するトリプル情報の目的語とクエリ情報QE31に含まれる「<scientist>」を比較することにより、特定情報を抽出する。
また、図8の例では、抽出部133は、ステップS32において抽出した特定情報を用いて、トリプル情報記憶部121からクエリに対応するトリプル情報群を抽出する。例えば、抽出部133は、抽出した特定情報であるID「4」を用いて、トリプル情報記憶部121からクエリ情報QE31に対応するトリプル情報群を抽出する。
図8の例では、抽出部133は、特定情報であるID「4」により特定したトリプル情報T3から循環リストを辿ることにより、述語の値が「rdf:type」であり、目的語の値が「<scientist>」である全トリプル情報を抽出する。例えば、抽出部133は、ID「4」に対応する「iPO」に記憶されたID「5」により識別されるトリプル情報T5から順に辿ることにより、述語の値が「rdf:type」であり、目的語の値が「<scientist>」である全トリプル情報を抽出する。
図9の例では、抽出部133は、トリプル情報T4から連結情報CN11、CN12により辿ったトリプル情報T4、T5をクエリ情報QE31に対応するトリプル情報群として抽出する。例えば、抽出部133は、ID「4」及び「5」の各々により識別されるトリプル情報T4、T5をクエリ情報QE31に対応するトリプル情報群として抽出する。
(提供部134)
提供部134は、各種情報を提供する。例えば、提供部134は、端末装置10に各種情報を提供する。例えば、提供部134は、クエリに対応するトリプル情報を検索結果として提供する。例えば、提供部134は、抽出部133により関連付情報に基づいてトリプル情報記憶部121から抽出されたトリプル情報群に含まれるトリプル情報を端末装置10へ提供する。図6の例では、提供部134は、抽出部133により抽出されたトリプル情報を検索結果として端末装置10へ提供する。図6の例では、提供部134は、トリプル情報群RS21に示すようなトリプル情報T3、T4、T12〜T14を検索結果として端末装置10へ提供する。また、図8の例では、提供部134は、トリプル情報群RS31に示すようなトリプル情報T4、T5を検索結果として端末装置10へ提供する。
〔4.情報提供について〕
次に、図6〜図9を用いて、実施形態に係る生成システム1による情報提供について説明する。図6及び図8は、実施形態に係るクエリに対応する情報提供の処理の一例を示す図である。図7及び図9は、実施形態に係るクエリに対応する情報の抽出の概念図を示す図である。
まず、図6及び図7を用いて、主語に関するクエリを取得した場合の例を示す。
まず、生成装置100は、ユーザU1が利用する端末装置10からクエリを取得する(ステップS21)。図6の例では、生成装置100は、端末装置10からクエリ情報QE21を取得する。図6に示す例において、クエリ情報QE21は、「Key of ring iS = <Leibniz>」という文字列情報が含まれており、検索対象となる要素が「S」、すなわち主語(Subject)であり、その値が「<Leibniz>」であることを示す。なお、本明細書中の全角スペースは半角スペースに置き換えてもよい。
端末装置10からクエリ情報QE21を取得した生成装置100は、クエリ情報QE21に対応する特定情報を参照情報記憶部122から抽出する(ステップS22)。図6の例では、生成装置100は、検索対象となる要素が主語であるため、参照情報記憶部122のうち、組合せ「iS」に対応する第1テーブルTB1からクエリ情報QE21に対応する特定情報を抽出する。例えば、生成装置100は、第1テーブルTB1から主語が「<Leibniz>」であるトリプル情報を識別するIDを特定情報として抽出する。具体的には、生成装置100は、第1テーブルTB1から主語が「<Leibniz>」であるトリプル情報T3を識別するID「3」を特定情報として抽出する。例えば、生成装置100は、第1テーブルTB1に格納されたIDに対応するトリプル情報の主語とクエリ情報QE21に含まれる「<Leibniz>」を比較することにより、特定情報を抽出する。
なお、生成装置100は、参照情報記憶部122中の第1テーブルTB1〜第6テーブルTB6に、IDに対応付けてその値を格納してもよい。例えば、生成装置100は、第1テーブルTB1や第4テーブルTB4や第5テーブルTB5に、ID「3」に対応付けてトリプル情報T3の主語である「<Leibniz>」を格納してもよい。例えば、生成装置100は、第3テーブルTB3や第5テーブルTB5や第6テーブルTB6に、ID「4」に対応付けてトリプル情報T4の目的語である「<scientist>」を格納してもよい。
その後、生成装置100は、ステップS22において抽出した特定情報を用いて、トリプル情報記憶部121からクエリに対応するトリプル情報群を抽出する(ステップS23)。例えば、生成装置100は、抽出した特定情報であるID「3」を用いて、トリプル情報記憶部121からクエリ情報QE21に対応するトリプル情報群を抽出する。
図6の例では、生成装置100は、特定情報であるID「3」により特定したトリプル情報T3から循環リストを辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。例えば、生成装置100は、ID「3」に対応する「iS」に記憶されたID「14」により識別されるトリプル情報T14から順に辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。この点について図7を用いて説明する。
図7に示すように、クエリ情報QE21に応じて、第1テーブルTB1のうち、ID「3」を特定情報として抽出し、図7中のエントリポイントEP21に示すようにID「3」に対応するトリプル情報T3を特定する。これにより、図7中の循環リスト情報INF21に示すような、主語が「<Leibniz>」であるトリプル情報群のうち1つのトリプル情報T3を特定する。上述したように、図6中のトリプル情報記憶部121において、ID「3」に対応する「iS」にはID「14」が記憶されているため、図7中の連結情報CN1に示すようにトリプル情報T3からトリプル情報T14に辿ることができる。
また、図6中のトリプル情報記憶部121において、ID「14」に対応する「iS」にはID「13」が記憶されているため、図7中の連結情報CN2に示すようにトリプル情報T14からトリプル情報T13に辿ることができる。また、図6中のトリプル情報記憶部121において、ID「13」に対応する「iS」にはID「12」が記憶されているため、図7中の連結情報CN3に示すようにトリプル情報T13からトリプル情報T12に辿ることができる。また、図6中のトリプル情報記憶部121において、ID「12」に対応する「iS」にはID「4」が記憶されているため、図7中の連結情報CN4に示すようにトリプル情報T12からトリプル情報T4に辿ることができる。
また、図6中のトリプル情報記憶部121において、ID「4」に対応する「iS」にはID「3」が記憶されているため、図7中の連結情報CN5に示すようにトリプル情報T4からトリプル情報T3に辿ることができる。ここで、図7中の連結情報CN5に示すようにトリプル情報T4からトリプル情報T3に辿ることにより、第1テーブルTB1から抽出した特定情報に基づくエントリポイントEP21により特定されたトリプル情報T3に戻ったため、循環リストを一周したこととなる。
そのため、生成装置100は、トリプル情報T3から連結情報CN1〜CN5により辿ったトリプル情報T4、T12〜T14をクエリ情報QE21に対応するトリプル情報群として抽出する。このように、図6の例では、生成装置100は、ID「3」、「4」、「12」、「13」及び「14」の各々により識別されるトリプル情報T3、T4、T12〜T14をクエリ情報QE21に対応するトリプル情報群として抽出する。
その後、生成装置100は、ステップS23において抽出したトリプル情報を検索結果として端末装置10へ提供する(ステップS24)。図6の例では、生成装置100は、トリプル情報群RS21に示すようなトリプル情報T3、T4、T12〜T14を検索結果として端末装置10へ提供する。このように、生成装置100は、参照情報を用いて、クエリに対応する循環リストに属する1つのトリプル情報を特定し、特定したトリプル情報から循環リストを辿ることにより、処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。
まず、図8及び図9を用いて、主語に関するクエリを取得した場合の例を示す。
まず、生成装置100は、ユーザU1が利用する端末装置10からクエリを取得する(ステップS31)。図8の例では、生成装置100は、端末装置10からクエリ情報QE31を取得する。図8に示す例において、クエリ情報QE31は、「Key of ring iPO = rdf:type,<scientist>」という文字列情報が含まれており、検索対象となる要素が「PO」、すなわち述語(Predicate)及び目的語(Object)であり、述語の値が「rdf:type」であり、目的語の値が「<scientist>」であることを示す。
端末装置10からクエリ情報QE31を取得した生成装置100は、クエリ情報QE31に対応する特定情報を参照情報記憶部122から抽出する(ステップS32)。図8の例では、生成装置100は、検索対象となる要素が述語及び目的語であるため、参照情報記憶部122のうち組合せ「iPO」に対応する第6テーブルTB6からクエリ情報QE31に対応する特定情報を抽出する。例えば、生成装置100は、第6テーブルTB6から、述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報を識別するIDを特定情報として抽出する。
具体的には、生成装置100は、第6テーブルTB6から述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報T4を識別するID「4」を特定情報として抽出する。例えば、生成装置100は、第6テーブルTB6に格納されたIDに対応するトリプル情報の述語とクエリ情報QE31に含まれる「rdf:type」を比較し、第6テーブルTB6に格納されたIDに対応するトリプル情報の目的語とクエリ情報QE31に含まれる「<scientist>」を比較することにより、特定情報を抽出する。
その後、生成装置100は、ステップS32において抽出した特定情報を用いて、トリプル情報記憶部121からクエリに対応するトリプル情報群を抽出する(ステップS33)。例えば、生成装置100は、抽出した特定情報であるID「4」を用いて、トリプル情報記憶部121からクエリ情報QE31に対応するトリプル情報群を抽出する。
図8の例では、生成装置100は、特定情報であるID「4」により特定したトリプル情報T4から循環リストを辿ることにより、述語の値が「rdf:type」であり、目的語の値が「<scientist>」である全トリプル情報を抽出する。例えば、生成装置100は、ID「4」に対応する「iPO」に記憶されたID「5」により識別されるトリプル情報T5から順に辿ることにより、述語の値が「rdf:type」であり、目的語の値が「<scientist>」である全トリプル情報を抽出する。この点について図9を用いて説明する。
図9に示すように、クエリ情報QE31に応じて、第6テーブルTB6のうち、ID「4」を特定情報として抽出し、図9中のエントリポイントEP31に示すようにID「4」に対応するトリプル情報T4を特定する。これにより、図9中の循環リスト情報INF31に示すような、述語の値が「rdf:type」であり、目的語の値が「<scientist>」であるトリプル情報群のうち1つのトリプル情報T4を特定する。上述したように、図8中のトリプル情報記憶部121において、ID「4」に対応する「iPO」にはID「5」が記憶されているため、図9中の連結情報CN11に示すようにトリプル情報T4からトリプル情報T5に辿ることができる。
また、図8中のトリプル情報記憶部121において、ID「5」に対応する「iPO」にはID「4」が記憶されているため、図9中の連結情報CN12に示すようにトリプル情報T5からトリプル情報T4に辿ることができる。ここで、図9中の連結情報CN12に示すようにトリプル情報T5からトリプル情報T4に辿ることにより、第6テーブルTB6から抽出した特定情報に基づくエントリポイントEP31により特定されたトリプル情報T4に戻ったため、循環リストを一周したこととなる。
そのため、生成装置100は、トリプル情報T4から連結情報CN11、CN12により辿ったトリプル情報T4、T5をクエリ情報QE31に対応するトリプル情報群として抽出する。このように、図8の例では、生成装置100は、ID「4」及び「5」の各々により識別されるトリプル情報T4、T5をクエリ情報QE31に対応するトリプル情報群として抽出する。
その後、生成装置100は、ステップS33において抽出したトリプル情報を検索結果として端末装置10へ提供する(ステップS34)。図8の例では、生成装置100は、トリプル情報群RS31に示すようなトリプル情報T4、T5を検索結果として端末装置10へ提供する。このように、生成装置100は、参照情報を用いて、クエリに対応する循環リストに属する1つのトリプル情報を特定し、特定したトリプル情報から循環リストを辿ることにより、処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。
〔5.生成処理のフロー〕
次に、図10を用いて、実施形態に係る生成システム1による生成処理の手順について説明する。図10は、実施形態に係る生成処理の一例を示すフローチャートである。
図10に示すように、生成装置100は、複数のトリプル情報を取得する(ステップS101)。図1の例では、生成装置100は、トリプル情報記憶部121に示すようにトリプル情報T0〜T15に各々対応する16個のトリプル情報を取得する。
その後、生成装置100は、3種類の要素に関する所定の関係を有するトリプル情報を関連付ける関連付情報を生成する(ステップS102)。例えば、生成装置100は、循環リストを関連付情報として生成する。図1の例では、生成装置100は、図1中のトリプル情報記憶部121−4に示すような関連付情報や図1中の参照情報記憶部122−4に示すような参照情報を生成する。
〔6.情報提供の処理のフロー〕
次に、図11を用いて、実施形態に係る生成システム1による情報提供の処理の手順について説明する。図11は、実施形態に係る情報提供の処理の一例を示すフローチャートである。
図11に示すように、生成装置100は、クエリ情報を取得する(ステップS201)。図6の例では、生成装置100は、ユーザU1が利用する端末装置10からクエリ情報QE21を取得する。
その後、生成装置100は、クエリ情報に対応する特定情報を参照情報から抽出する(ステップS202)。図6の例では、生成装置100は、端末装置10から取得したクエリ情報QE21に対応する特定情報を参照情報記憶部122から抽出する。
その後、生成装置100は、抽出した特定情報によりトリプル情報群に含まれるトリプル情報を抽出する(ステップS203)。図6の例では、生成装置100は、ID「3」、「4」、「12」、「13」及び「14」の各々により識別されるトリプル情報T3、T4、T12〜T14をクエリ情報QE21に対応するトリプル情報群として抽出する。
その後、生成装置100は、抽出したトリプル情報を提供する(ステップS204)。図6の例では、生成装置100は、トリプル情報群RS21に示すようなトリプル情報T3、T4、T12〜T14を検索結果として端末装置10へ提供する。
〔7.参照情報記憶部の他の構成例〕
上記の実施形態に限らず、生成装置100は種々の構成により各種情報を格納してもよい。この点について、図12及び図13を基に説明する。なお、実施形態と同様の構成については、同一の符号を付して説明を省略する。
例えば、生成装置100は、ハッシュ等の種々の連想配列を用いて参照情報を格納してもよい。すなわち、生成装置100は、図5に示すような参照情報記憶部122に替えて、図13に示すような参照情報記憶部122Aを有してもよい。この点について、図12及び図13を用いて説明する。図12は、実施形態に係る参照情報記憶部の他の構成例を示す図である。図13は、実施形態に係る連想配列を用いた情報の抽出の一例を示す図である。なお、図12中のトリプル情報記憶部121−1やトリプル情報記憶部121−2は、図1中のトリプル情報記憶部121−1やトリプル情報記憶部121−2と同様である。
また、図12に示す例においては、参照情報記憶部122Aに記憶された参照情報の更新に応じて、参照情報記憶部122Aを参照情報記憶部122A−1、122A−2として説明する。なお、参照情報記憶部122A−1、122A−2は、同一の参照情報記憶部122である。また、以下では、参照情報記憶部122A−1、122A−2について、特に区別なく説明する場合には、参照情報記憶部122Aと記載する。
図12及び図13の例では、生成装置100は、所定のハッシュ関数HF10を用いる。例えば、生成装置100は、所定のキーを入力した場合にハッシュ関数HF10が出力するハッシュ値をインデックスとして、参照情報記憶部122Aにキーに対応付けたIDを格納する。なお、ここでいうインデックスとは、配列の添え字やメモリの番地等であってもよい。
図12では、生成装置100は、図12中のトリプル情報記憶部121−1に示すように、トリプル情報T0に対応する「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」には、トリプル情報T0自身の識別情報であるID「0」を格納する。生成装置100は、トリプル情報T0のみが関連付情報の生成処理の対象となっているため、「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」に、トリプル情報T0自身の識別情報であるID「0」を格納する。
また、図12に示すように、生成装置100は、トリプル情報記憶部121に追加された新たな循環リストとなる関連付情報について、トリプル情報の識別情報であるIDを参照情報記憶部122A−1に追加する。具体的には、生成装置100は、「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の6つの組合せのうち、新たな循環リストとなる関連付情報が追加された組合せに対応するキーに対応付けてトリプル情報の識別情報であるIDを参照情報記憶部122A−1に格納する。
図12の例では、生成装置100は、参照情報記憶部122A−1に示すように、トリプル情報T0について組合せ「iS」に対応するキー、すなわち主語がトリプル情報T0の主語と同じであるキーを参照情報記憶部122A−1に格納する。具体的には、生成装置100は、主語がトリプル情報T0の主語と同じであるキー「<philosopher>,*,*」を参照情報記憶部122A−1に格納する。なお、キーは「,(カンマ)」を区切り文字として、主語、述語、目的語の順に配置される。例えば、キーが「X,Y,Z」である場合、主語が「X」、述語が「Y」、目的語が「Z」であることを示す。また、図12及び図13中の「*」は、任意の情報(文字列)を示す。すなわち、キー「<philosopher>,*,*」は、主語が「<philosopher>」であれば、述語や目的語はどのような情報であってもよいことを示す。
図12の例では、生成装置100は、キー「<philosopher>,*,*」をハッシュ関数HF10に入力することによりハッシュ値「11154」を取得する。そのため、生成装置100は、参照情報記憶部122A−1中のインデックス「11154」にキー「<philosopher>,*,*」とID「0」を対応付けた情報を格納する。
また、図12の例では、生成装置100は、キー「*,rdfs:subClassOf,*」をハッシュ関数HF10に入力することによりハッシュ値「1524」を取得する。そのため、生成装置100は、参照情報記憶部122A−1中のインデックス「1524」にキー「*,rdfs:subClassOf,*」とID「0」を対応付けた情報を格納する。また、図12の例では、生成装置100は、キー「*,*,<person>」をハッシュ関数HF10に入力することによりハッシュ値「20832」を取得する。そのため、生成装置100は、参照情報記憶部122A中のインデックス「20832」にキー「*,*,<person>」とID「0」を対応付けた情報を格納する。
また、図12の例では、生成装置100は、キー「<philosopher>,rdfs:subClassOf,*」をハッシュ関数HF10に入力することによりハッシュ値「5845」を取得する。そのため、生成装置100は、参照情報記憶部122A−1中のインデックス「5845」にキー「<philosopher>,rdfs:subClassOf,*」とID「0」を対応付けた情報を格納する。
また、図12の例では、生成装置100は、キー「<philosopher>,*,<person>」をハッシュ関数HF10に入力することによりハッシュ値「9617」を取得する。そのため、生成装置100は、参照情報記憶部122A−1中のインデックス「9617」にキー「<philosopher>,*,<person>」とID「0」を対応付けた情報を格納する。
また、図12の例では、生成装置100は、キー「*,rdfs:subClassOf,<person>」をハッシュ関数HF10に入力することによりハッシュ値「311」を取得する。そのため、生成装置100は、参照情報記憶部122A−1中のインデックス「311」にキー「*,rdfs:subClassOf,<person>」とID「0」を対応付けた情報を格納する。
また、図12では、生成装置100は、トリプル情報T0とトリプル情報T1の述語及び目的語は同一であるため、図12中のトリプル情報記憶部121−2に示すように、組合せ「iP」、「iO」及び「iPO」については、トリプル情報T0とトリプル情報T1とを連結する循環リストを生成する。
一方、生成装置100は、トリプル情報T1の主語「<scientist>」と、トリプル情報T0の主語「<philosopher>」とは異なるため、組合せ「iS」、「iSP」及び「iSO」については、トリプル情報T1とトリプル情報T0とは異なる循環リストに属する情報とする。例えば、生成装置100は、図12中のトリプル情報記憶部121−2に示すように、トリプル情報T1に対応する「iS」、「iSP」及び「iSO」には、「1」を格納する。
また、図12に示すように、生成装置100は、トリプル情報記憶部121に追加された新たな循環リストとなる関連付情報について、トリプル情報の識別情報であるIDを参照情報記憶部122A−2に追加する。具体的には、生成装置100は、「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の6つの組合せのうち、新たな循環リストとなる関連付情報が追加された組合せに対応するキーに対応付けてトリプル情報の識別情報であるIDを参照情報記憶部122A−2に格納する。
図12の例では、生成装置100は、参照情報記憶部122A−2に示すように、トリプル情報T1について組合せ「iS」に対応するキー、すなわち主語がトリプル情報T1の主語と同じであるキーを参照情報記憶部122A−2に格納する。具体的には、生成装置100は、主語がトリプル情報T1の主語と同じであるキー「<scientist>,*,*」を参照情報記憶部122A−2に格納する。
図12の例では、生成装置100は、キー「<scientist>,*,*」をハッシュ関数HF10に入力することによりハッシュ値「7691」を取得する。そのため、生成装置100は、参照情報記憶部122A−2中のインデックス「7691」にキー「<scientist>,*,*」とID「1」を対応付けた情報を格納する。
また、図12の例では、生成装置100は、キー「<scientist>,rdfs:subClassOf,*」をハッシュ関数HF10に入力することによりハッシュ値「18354」を取得する。そのため、生成装置100は、参照情報記憶部122A−2中のインデックス「18354」にキー「<scientist>,rdfs:subClassOf,*」とID「1」を対応付けた情報を格納する。
また、図12の例では、生成装置100は、キー「<scientist>,*,<person>」をハッシュ関数HF10に入力することによりハッシュ値「1242」を取得する。そのため、生成装置100は、参照情報記憶部122A−2中のインデックス「1242」にキー「<scientist>,*,<person>」とID「1」を対応付けた情報を格納する。このように、生成装置100は、新たな循環リストとなる関連付情報が追加された組合せに対応するキーに対応付けてトリプル情報の識別情報であるIDを参照情報記憶部122A−2に格納することにより、連想配列を生成する。例えば、生成装置100は、所定のハッシュ関数を用いて、図5中の第1テーブルTB1〜第6テーブルTB6に示すようなIDに関してキーと対応付けることにより、連想配列を生成してもよい。
なお、上述した例では、キーの組合せに関わらず1つの連想配列にキーに対応付けたIDを格納する場合を示したが、生成装置100は、6つの組合せごとにキーに対応付けたIDを格納してもよい。この場合、生成装置100は、キーとなる要素の組合せごとに個別に連想配列を生成してもよい。例えば、生成装置100は、図5中の第1テーブルTB1〜第6テーブルTB6に示すように、主語、述語及び目的語の組合せに応じて「iS」、「iP」、「iO」、「iSP」、「iSO」、「iPO」のように、個別に連想配列を構成してもよい。
ここから、図13を用いて、連想配列を用いた情報の抽出について説明する。なお、図13に示すステップS41、42の処理は、図6中のステップS22、S23の処理に対応する。図13に示すステップS41、42の処理は、参照情報を用いて、クエリに対応する循環リストに属する1つのトリプル情報を特定し、特定したトリプル情報から循環リストを辿る処理に対応する。なお、実施形態と同様の構成については、同一の符号を付して説明を省略する。
図13の例では、生成装置100は、端末装置10からクエリ情報QE21を取得する。図13に示す例において、クエリ情報QE21は、「Key of ring iS = <Leibniz>」という文字列情報が含まれており、検索対象となる要素が「S」、すなわち主語(Subject)であり、その値が「<Leibniz>」であることを示す。
端末装置10からクエリ情報QE21を取得した生成装置100は、クエリ情報QE21に対応する特定情報を参照情報記憶部122Aから抽出する(ステップS41)。図13の例では、生成装置100は、クエリ情報QE21が検索対象とする要素が主語であるため、キーK41のようなキー「<Leibniz>,*,*」を生成する。例えば、生成装置100は、構文解析等の字句解析の種々の従来技術を適宜用いて、クエリ情報QE21を解析することにより、「Key of ring iS = <Leibniz>」は、検索対象となる要素が主語であり、その値が「<Leibniz>」と特定する。これにより、生成装置100は、図13中のキーK41のようなキー「<Leibniz>,*,*」を生成する。そして、生成装置100は、キーK41をハッシュ関数HF10に入力することにより、ハッシュ値「6153」を取得する。
その後、生成装置100は、参照情報記憶部122Aから、インデックス「6153」に格納されたIDを抽出する。具体的には、生成装置100は、参照情報記憶部122Aからキー「<Leibniz>,*,*」に対応付けて格納されたID「3」を特定情報として抽出する。
その後、生成装置100は、ステップS41において抽出した特定情報を用いて、トリプル情報記憶部121からクエリに対応するトリプル情報群を抽出する(ステップS42)。例えば、生成装置100は、抽出した特定情報であるID「3」を用いて、トリプル情報記憶部121からクエリ情報QE21に対応するトリプル情報群を抽出する。
図13の例では、生成装置100は、特定情報であるID「3」により特定したトリプル情報T3から循環リストを辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。例えば、生成装置100は、ID「3」に対応する「iS」に記憶されたID「14」により識別されるトリプル情報T14から順に辿ることにより、主語が「<Leibniz>」である全トリプル情報を抽出する。なお、この点に関する処理は、図6及び図7に示す例と同様であるため、説明を省略する。
図13の例では、生成装置100は、トリプル情報T3から循環リストを辿ることによりトリプル情報T4、T12〜T14をクエリ情報QE21に対応するトリプル情報群として抽出する。このように、図13の例では、生成装置100は、ID「3」、「4」、「12」、「13」及び「14」の各々により識別されるトリプル情報T3、T4、T12〜T14をクエリ情報QE21に対応するトリプル情報群として抽出する。このように、生成装置100は、連想配列を用いて参照情報を格納することにより、クエリに対応する循環リストに属する1つのトリプル情報の特定に要する処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。
〔8.参照情報を用いない構成〕
上記した例では、生成装置100が種々の参照情報を用いて循環リストに属する1つのトリプル情報を特定する場合を示したが、生成装置100は、参照情報を用いなくてもよい。この場合、生成装置100は、参照情報記憶部122や参照情報記憶部122Aを有しなくてもよい。この点について、図14を基に説明する。図14は、実施形態に係るトリプル情報記憶部の他の構成例を示す図である。なお、実施形態と同様の構成については、同一の符号を付して説明を省略する。
図14に示す生成装置100は、図4に示すようなトリプル情報記憶部121に替えて、トリプル情報記憶部121Aを有する。トリプル情報記憶部121Aは、探索順を示す項目「次ID(探索順)」を有する点で実施形態に係るトリプル情報記憶部121と相違する。
例えば、生成装置100は、複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、各トリプル情報の探索順序に関する情報を生成する。生成装置100は、トリプル情報記憶部121Aに記憶される関連付情報や探索順に関する情報を生成する。
例えば、生成装置100は、ID「0」からID「15」の順に、すなわちIDの数が小さい順に関連付情報や探索順に関する情報を生成する。例えば、生成装置100は、ID「0」からID「15」の順に関連付情報の生成を行い、新たな循環リストが生成されないトリプル情報の探索順を遅くすることにより探索順に関する情報を生成する。
図14の例では、生成装置100は、トリプル情報T0の関連付情報を生成する処理において、「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の組合せについて新たな循環リストが生成されるため、トリプル情報T0の探索順を1位にする。
また、図14の例では、生成装置100は、トリプル情報T1の関連付情報を生成する処理において、「iS」、「iSP」及び「iSO」の組合せについて新たな循環リストが生成されるため、トリプル情報T1の探索順を2位にする。また、生成装置100は、トリプル情報T0に対応するID「0」の次IDに「1」を格納する。
また、図14の例では、生成装置100は、トリプル情報T2の関連付情報を生成する処理において、「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の組合せについて新たな循環リストが生成されるため、トリプル情報T2の探索順を3位にする。また、生成装置100は、トリプル情報T1に対応するID「1」の次IDに「2」を格納する。
また、図14の例では、生成装置100は、トリプル情報T3の関連付情報を生成する処理において、「iS」、「iSP」及び「iSO」の組合せについて新たな循環リストが生成されるため、トリプル情報T3の探索順を4位にする。また、生成装置100は、トリプル情報T2に対応するID「2」の次IDに「3」を格納する。
また、図14の例では、生成装置100は、トリプル情報T4の関連付情報を生成する処理において、「iS」、「iSP」及び「iSO」の組合せについて新たな循環リストが生成されるため、トリプル情報T4の探索順を5位にする。また、生成装置100は、トリプル情報T3に対応するID「3」の次IDに「4」を格納する。
また、図14の例では、生成装置100は、トリプル情報T5の関連付情報を生成する処理において、トリプル情報T5の「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の組合せは、トリプル情報T3またはトリプル情報T4のいずれかの「iS」、「iP」、「iO」、「iSP」、「iSO」及び「iPO」の組合せと一致するため、トリプル情報T5については探索順を遅くする。なお、図14の例では、トリプル情報T5の探索順を16個のトリプル情報のうち最後の探索順である16位にする場合を示すが、生成装置100は、トリプル情報T5については探索順を付さなくてもよい。
また、図14の例では、生成装置100は、トリプル情報T6の関連付情報を生成する処理において、「iS」、「iO」、「iSP」、「iSO」及び「iPO」の組合せについて新たな循環リストが生成されるため、トリプル情報T6の探索順を6位にする。また、生成装置100は、トリプル情報T4に対応するID「4」の次IDに「6」を格納する。
また、図14の例では、生成装置100は、残りのトリプル情報T7〜T15についても同様に処理を行うことにより、トリプル情報記憶部121Aに示すような関連付情報や探索順に関する情報を生成する。
上述のように生成したトリプル情報記憶部121Aの情報を用いることにより、生成装置100は、探索順が1位であるトリプル情報T0から探索を開始して、トリプル情報T4を処理した後、トリプル情報T5を処理せずにトリプル情報T6の処理に移る。これにより、生成装置100は、検索に要する処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。
このように、生成装置100は、トリプル情報記憶部121A内の探索順に関する情報を生成し、用いることにより、参照情報記憶部122や参照情報記憶部122A等の参照情報を用いることなく、クエリに対応する循環リストに属する1つのトリプル情報の特定に要する処理時間の増大を抑制して、クエリに対応するトリプル情報を提供することができる。なお、上記は一例であり生成装置100は、種々の情報を適宜用いて探索順に関する情報を生成する。
〔9.効果〕
上述してきたように、実施形態に係る生成装置100は、取得部131と、生成部132とを有する。取得部131は、3種類の要素に関する関係を示す複数のトリプル情報を取得する。生成部132は、取得部131により取得された複数のトリプル情報のうち、3種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成する。
これにより、実施形態に係る生成装置100は、複数のトリプル情報のうち、3種類の要素に関する所定の関係を有するトリプル情報群を関連付ける関連付情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
また、実施形態に係る生成装置100において、生成部132は、3種類の要素のうち1以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成する。
これにより、実施形態に係る生成装置100は、3種類の要素のうち1以上の要素を含む複数の組合せの各々に対応する複数の関連付情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
また、実施形態に係る生成装置100において、生成部132は、組合せごとに当該組合せに含まれる要素が対応するトリプル情報群を関連付ける複数の関連付情報を生成する。
これにより、実施形態に係る生成装置100は、組合せごとに当該組合せに含まれる要素が対応するトリプル情報群を関連付ける複数の関連付情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
また、実施形態に係る生成装置100において、生成部132は、トリプル情報群ごとに、当該トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成する。
これにより、実施形態に係る生成装置100は、トリプル情報群ごとに、当該トリプル情報群に含まれるトリプル情報を連結する循環リストに関する情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
また、実施形態に係る生成装置100において、生成部132は、トリプル情報群ごとに、当該トリプル情報群に含まれる一のトリプル情報に当該トリプル情報群に含まれる他のトリプル情報を関連付けることにより、循環リストに関する情報を生成する。
これにより、実施形態に係る生成装置100は、トリプル情報群ごとに、当該トリプル情報群に含まれる一のトリプル情報に当該トリプル情報群に含まれる他のトリプル情報を関連付けることにより、トリプル情報を効率的に検索可能にすることができる。
また、実施形態に係る生成装置100において、生成部132は、トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報を生成する。
これにより、実施形態に係る生成装置100は、トリプル情報群の各々から一つ選択されるトリプル情報を特定する情報を含む一覧情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
また、実施形態に係る生成装置100において、生成部132は、トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する情報を一覧情報として生成する。
これにより、実施形態に係る生成装置100は、トリプル情報群の各々から一つ選択されるトリプル情報をキーとし、当該トリプル情報の識別情報を値とするエントリ情報を含む連想配列に関する情報を一覧情報として生成することにより、トリプル情報を効率的に検索可能にすることができる。
また、実施形態に係る生成装置100において、生成部132は、3種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する一覧情報を生成する。
これにより、実施形態に係る生成装置100は、3種類の要素を全て含む組合せに対応するトリプル情報群を除くトリプル情報群に関する一覧情報を生成することにより、トリプル情報を効率的に検索可能にすることができる。
また、実施形態に係る生成装置100において、生成部132は、複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、各トリプル情報の探索順序に関する情報を生成する。
これにより、実施形態に係る生成装置100は、複数のトリプル情報を検索する際に用いられる各トリプル情報の探索順序に関する情報であって、順位が決定されたトリプル情報が含まれるトリプル情報群が重複しないように上位から順にトリプル情報の順位を決定することにより、トリプル情報を効率的に検索可能にすることができる。
また、実施形態に係る生成装置100は、抽出部133を有する。抽出部133は、3種類の要素のうち1以上の要素に関する指定に基づいて、トリプル情報群を抽出する。
これにより、実施形態に係る生成装置100は、3種類の要素のうち1以上の要素に関する指定に基づいて、トリプル情報群を抽出することにより、トリプル情報を効率的に提供可能にすることができる。
また、実施形態に係る生成装置100において、取得部131は、3種類の要素のうち1以上の要素の指定に関する情報を取得する。抽出部133は、取得部131により取得された要素の指定に関する情報に対応するトリプル情報群を抽出する。
これにより、実施形態に係る生成装置100は、取得した要素の指定に関する情報に対応するトリプル情報群を抽出することにより、トリプル情報を効率的に提供可能にすることができる。
〔10.ハードウェア構成〕
上述してきた実施形態に係る生成装置100は、例えば図15に示すような構成のコンピュータ1000によって実現される。図15は、生成装置の機能を実現するコンピュータの一例を示すハードウェア構成図である。コンピュータ1000は、CPU1100、RAM1200、ROM(Read Only Memory)1300、HDD(Hard Disk Drive)1400、通信インターフェイス(I/F)1500、入出力インターフェイス(I/F)1600、及びメディアインターフェイス(I/F)1700を有する。
CPU1100は、ROM1300またはHDD1400に格納されたプログラムに基づいて動作し、各部の制御を行う。ROM1300は、コンピュータ1000の起動時にCPU1100によって実行されるブートプログラムや、コンピュータ1000のハードウェアに依存するプログラム等を格納する。
HDD1400は、CPU1100によって実行されるプログラム、及び、かかるプログラムによって使用されるデータ等を格納する。通信インターフェイス1500は、ネットワークNを介して他の機器からデータを受信してCPU1100へ送り、CPU1100が生成したデータをネットワークNを介して他の機器へ送信する。
CPU1100は、入出力インターフェイス1600を介して、ディスプレイやプリンタ等の出力装置、及び、キーボードやマウス等の入力装置を制御する。CPU1100は、入出力インターフェイス1600を介して、入力装置からデータを取得する。また、CPU1100は、生成したデータを入出力インターフェイス1600を介して出力装置へ出力する。
メディアインターフェイス1700は、記録媒体1800に格納されたプログラムまたはデータを読み取り、RAM1200を介してCPU1100に提供する。CPU1100は、かかるプログラムを、メディアインターフェイス1700を介して記録媒体1800からRAM1200上にロードし、ロードしたプログラムを実行する。記録媒体1800は、例えばDVD(Digital Versatile Disc)、PD(Phase change rewritable Disk)等の光学記録媒体、MO(Magneto-Optical disk)等の光磁気記録媒体、テープ媒体、磁気記録媒体、または半導体メモリ等である。
例えば、コンピュータ1000が実施形態に係る生成装置100として機能する場合、コンピュータ1000のCPU1100は、RAM1200上にロードされたプログラムを実行することにより、制御部130の機能を実現する。コンピュータ1000のCPU1100は、これらのプログラムを記録媒体1800から読み取って実行するが、他の例として、他の装置からネットワークNを介してこれらのプログラムを取得してもよい。
以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、発明の開示の行に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で本発明を実施することが可能である。
〔11.その他〕
また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともでき、あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
また、上述してきた各実施形態に記載された各処理は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、取得部は、取得手段や取得回路に読み替えることができる。