(57)【要約】【課題】効率的な記憶を可能にしながら、対応する知識エンジンによる高速で正確な検索に対応する編成を持つ知識データベースを得る。【解決手段】Ｆｒｅｅｂａｓｅを構造化データの入手元として使用して、リソース記述フレームワーク（Resource  Description  Framework：ＲＤＦ）トリプルで知識データベースを構築し、構造化クエリに対して符号化されたエンティティを判定する、システム、方法、及び媒体が提供される。【選択図】図４
2015179516.tif 000002
【特許請求の範囲】
【請求項１】
符号化されたリソース記述フレームワークエンティティ、属性、値、及び符号化されたカテゴリのセットについて、符号化されたカテゴリのカテゴリ索引を作成するステップであって、前記カテゴリ索引中の各符号化されたカテゴリは、対応する符号化されたエンティティのリストを含む、当該作成するステップと、
符号化された属性ごとに、当該符号化された属性についての符号化された値を有する符号化されたエンティティを判定するステップと、
判定結果に応じて、符号化された属性と、該符号化された属性に対応する符号化されたエンティティ及び符号化された値と、に関する属性索引を形成するステップと、
前記カテゴリ索引及び前記属性索引を記憶して知識データベースを形成するステップと、
を含む方法。
【請求項２】
構造化クエリを分解して複数の単純クエリにするステップと、
前記複数の単純クエリの各々について、前記知識データベースの前記カテゴリ索引又は前記属性索引にアクセスして、符号化されたエンティティのリストを求めるステップと、
複数の前記符号化されたエンティティのリストの共通集合を求めて、前記構造化クエリに応答性のある前記符号化されたエンティティを判定するステップと、
前記構造化クエリに応答性のある前記符号化されたエンティティを元のエンティティに変換するステップと、
をさらに含む請求項１に記載の方法。
【請求項３】
符号化された属性、符号化されたエンティティ、符号化された値、及び符号化されたカテゴリが各々、対応する整数からなる請求項２に記載の方法。
【請求項４】
前記複数の単純クエリの各々が、前記符号化された属性のうち１つの符号化された属性及び前記符号化されたカテゴリのうち１つの符号化されたカテゴリを備える請求項２に記載の方法。
【請求項５】
複数の前記符号化されたエンティティのリストの共通集合を求める処理が、メモリ中の１つのエンティティリストと前記知識データベース中の別のエンティティリストとの共通集合を求めることを含む請求項２に記載の方法。
【請求項６】
前記方法が、
前記符号化されたエンティティのリスト間の類似度スコアが閾値より大きいことを判定して前記構造化クエリに応答性のある前記符号化されたエンティティを判定するステップ、
を含む請求項２に記載の方法。
【請求項７】
前記符号化されたエンティティのリスト間の類似度スコアが閾値より大きいことを判定して前記構造化クエリに応答性のある前記符号化されたエンティティを判定するステップは、
−ｌｏｇ（Ｅ（Ａ）∩Ｅ（Ｂ）／Ｅ（Ａ）∪Ｅ（Ｂ））を求めることを含み、
前記Ｅ（Ａ）は１つのエンティティであり、前記Ｅ（Ｂ）は別のエンティティである請求項６に記載の方法。
【請求項８】
符号化された属性と、該符号化された属性に対応する符号化されたエンティティ及び符号化された値と、に関する属性索引を記憶するように構成された知識データベースであって、符号化されたカテゴリのカテゴリ索引を記憶するようにさらに構成され、前記カテゴリ索引中の各符号化されたカテゴリは、対応する符号化されたエンティティのリストを含む、当該知識データベースと、
前記知識データベースに記憶された前記カテゴリ索引及び前記属性索引を使用して、単純クエリに応答性のある符号化されたエンティティリストを検索するように構成された知識エンジンと、
を備えるシステム。
【請求項９】
符号化された属性、符号化されたエンティティ、符号化された値、及び符号化されたカテゴリがそれぞれ、対応する整数からなる請求項８に記載のシステム。
【請求項１０】
前記システムが、
自然言語のクエリを受け取ってそれに対応する構造化クエリを前記知識エンジンに提供するように構成されたセマンティックエンジン、
を備える請求項８に記載のシステム。
【請求項１１】
前記知識エンジンが前記知識データベースと対話し、前記単純クエリに応答性のある前記符号化されたエンティティリストをユーザ装置に表示させる請求項８に記載のシステム。
【請求項１２】
前記知識エンジンが、前記符号化されたエンティティの共通集合を求めて、前記単純クエリに応答性のある前記符号化されたエンティティのリストを取得するように構成される請求項８に記載のシステム。
【請求項１３】
前記知識エンジンが、メモリ中の１つのエンティティリストと前記知識データベース中の別のエンティティリストとの共通集合を求めるように構成される請求項８に記載のシステム。
【請求項１４】
前記知識エンジンが、前記符号化されたエンティティのリスト間の類似度スコアが閾値より大きいことを判定して、構造化クエリに応答性のある前記符号化されたエンティティのリストを取得するように構成される請求項８に記載のシステム。
【請求項１５】
前記知識エンジンが、前記符号化されたエンティティのリスト間の類似度スコアが閾値より大きいことを判定して、前記構造化クエリに応答性のある前記符号化されたエンティティのリストを取得するように構成され、前記類似度スコアは、−ｌｏｇ（（Ｅ（Ａ）∩Ｅ（Ｂ）／Ｅ（Ａ）∪Ｅ（Ｂ））に基づいて求められ、前記Ｅ（Ａ）は１つのエンティティであり、前記Ｅ（Ｂ）は別のエンティティである請求項１４に記載のシステム。
【請求項１６】
プログラム命令を記憶した非一時的なコンピュータ読み取り可能な記録媒体であって、
前記プログラム命令は、知識エンジンに、
符号化されたリソース記述フォーマットエンティティ、属性、値、及び符号化されたカテゴリのセットについて、符号化されたカテゴリのカテゴリ索引を作成するステップであり、前記カテゴリ索引中の各符号化されたカテゴリは、対応する符号化されたエンティティのリストを含む、当該作成するステップと、
符号化された属性ごとに、当該符号化された属性についての符号化された値を有する符号化されたエンティティを判定するステップと、
判定結果に応じて、符号化された属性と、該符号化された属性に対応する符号化されたエンティティ及び符号化された値と、に関する属性索引を形成するステップと、
前記カテゴリ索引及び前記属性索引を記憶して知識データベースを形成するステップと、
を実行させるためのプログラム命令である、
非一時的なコンピュータ読み取り可能な記録媒体。
【請求項１７】
前記プログラム命令は、知識エンジンに、
構造化クエリを分解して複数の単純クエリにするステップと、
前記複数の単純クエリの各々について、前記知識データベースの前記カテゴリ索引又は前記属性索引にアクセスして、符号化されたエンティティのリストを求めるステップと、
複数の前記符号化されたエンティティのリストの共通集合を求めて、前記構造化クエリに応答性のある前記符号化されたエンティティを判定するステップと、
前記構造化クエリに応答性のある前記符号化されたエンティティを元のエンティティに変換するステップと、
を、さらに実行させるためのプログラム命令である、
請求項１６に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項１８】
前記符号化されたエンティティのリストの共通集合を求める処理が、
メモリ中の１つのエンティティリストと前記知識データベース中の別のエンティティリストとの共通集合を求めること、を含む請求項１７に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項１９】
前記プログラム命令は、知識エンジンに、
前記符号化されたエンティティのリスト間の類似度スコアが閾値より大きいことを判定して、構造化クエリに応答性のある前記符号化されたエンティティを判定するステップ、
を、さらに実行させるためのプログラム命令である、
請求項１６に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【請求項２０】
前記符号化されたエンティティのリスト間の類似度スコアが閾値より大きいことを判定して、前記構造化クエリに応答性のある前記符号化されたエンティティを判定するステップは、
−ｌｏｇ（Ｅ（Ａ）∩Ｅ（Ｂ）／Ｅ（Ａ）∪Ｅ（Ｂ））を求めることを含み、
前記Ｅ（Ａ）は１つのエンティティであり、前記Ｅ（Ｂ）は別のエンティティである請求項１９に記載の非一時的なコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報の記憶及び検索に関し、より詳細には構造化データの記憶及び検索に関する。
【０００２】
［関連出願］
本願は、２０１４年３月１８日に出願された米国仮出願第６１／９５５，０７７号の利益を主張し、同文献の内容は参照により本明細書にすべて援用される。
【背景技術】
【０００３】
構造化照会言語（ＳＱＬ）を使用して照会することが可能なリレーショナルデータベースへの構造化データの記憶は１９７０年代以降徐々に発展してきた。例えば、大規模な販売業者はリレーショナルデータベースを使用して顧客のプロファイルや他の履歴を記憶する場合がある。そのようなデータベースはかなり巨大になる場合があるが、検索されるデータの範囲が顧客のプロファイルのように比較的狭いときにしか効率的に機能しない。
【０００４】
従来のリレーショナルデータベースに対して、広大な範囲の事柄にわたって対応する知識データベースを照会することが可能な「知識エンジン」が開発されている。しかし、そのような知識エンジンは、照会対象となるエンティティ及び属性の範囲が広いために、その複雑性が扱い切れないほど高くなる。例えば、あるユーザが「William  Jefferson  Clintonが生まれたのは何年？」を尋ね、別のユーザが同じ知識エンジンに「２０１２年のアラスカ州バロー（Barrow）の人口は？」を尋ねたい場合がある。したがって、照会対象の構造化データの複雑性と範囲に効率的に対応することが可能な知識エンジン及びそれに対応する知識データベースが本技術分野で必要とされている。
【０００５】
また、知識データベースは、それらが記憶することが求められる構造化データの量そのもののために、大規模になり、扱いが困難になりつつある。そのために、効率的な記憶を可能にしながら、対応する知識エンジンによる高速で正確な検索に対応する編成を持つ知識データベースが本技術分野で必要とされる。
【発明の概要】
【０００６】
以下の例示的実施形態は、開示される知識データベースを構築するために使用される構造化データの入手元としてＦｒｅｅｂａｓｅの使用を対象とする。しかし、代替実施形態では、Ｆｒｅｅｂａｓｅに代えて、Ｗｉｋｉｐｅｄｉａや、オンライン及び電子の辞書や百科事典などの幅広い他の情報源も使用可能であることが理解されよう。例えば、知識データベースは、国際出願第ＰＣＴ／ＵＳ１４／６７４７９号に開示されるようにリソースの生成を行うシステムによって駆動されることも可能であり、同出願の内容は参照により本明細書にすべて援用される。そのため、知識データベースは、例えばＷｉｋｉｐｅｄｉａデータベース中の複数の他の項目へのハイパーリンクなど、他のリソースへの各種リンクを搭載することができる。
【０００７】
Ｆｒｅｅｂａｓｅでは、データはリソース記述フレームワーク（Resource  Description  Framework：ＲＤＦ）のトリプル（triple）で編成される。ＲＤＦトリプルの第１の部分はエンティティであり、これは記述又は描写される主語である。トリプルの第２の部分は属性又は述語であり、これは記述されるエンティティについての関係の種類である。最後に、トリプルの第３の部分は値又は目的語であり、これはそのトリプルによって参照される対象物である。例えば、次の例示的な文、「ジョーはトムの友人だ（Joe  is  a  friend  of  Tom.）」を考えられたい。この例では、トムが主語又はエンティティであり、友人関係が属性又は述語であり、ジョーが値になる。このような三つ組は接続グラフの形式で容易に表現されることができ、ジョーとトムが、「〜の友人である」という属性を表す、ジョーからトムに向かう弧で接続されたノードとなる。トムの年齢、職業、興味関心など、多数の同様のトリプルがエンティティ「トム」から伸びることができる。
【０００８】
例示的な方法は、符号化されたリソース記述フォーマットエンティティ、属性、値、及び符号化されたカテゴリのセットについて、符号化されたカテゴリのカテゴリ索引を形成するステップを含むことができ、カテゴリ索引中の各符号化されたカテゴリは、対応する符号化されたエンティティのリストを含む。この方法は、符号化された属性ごとに、当該符号化された属性についての符号化された値を有する符号化されたエンティティを判定するステップも含むことができる。この方法は、判定に応答して、符号化された属性とそれらに対応する符号化されたエンティティ及び符号化された値の属性索引を形成するステップも含むことができる。この方法は、カテゴリ索引及び属性索引を記憶して知識データベースを形成するステップも含むことができる。
【０００９】
この方法は、構造化クエリを分解して複数の単純クエリにするステップも含むことができる。複数の単純クエリ各々について、この方法は、知識データベースのカテゴリ索引又は属性索引にアクセスして、符号化されたエンティティのリストを求めるステップも含むことができる。この方法は、符号化されたエンティティのリストの共通集合を求めて、構造化クエリに応答性のある符号化されたエンティティを判定するステップも含むことができる。この方法は、構造化クエリに応答性のある符号化されたエンティティを元のエンティティに変換するステップも含むことができる。
【図面の簡単な説明】
【００１０】
【図１】例示的な知識データベースをロードする際のフローチャートである。
【図２】例示的な知識エンジンが知識データベースを照会する際のフローチャートである。
【図３】図１及び図２の知識エンジンを含む例示的な検索アーキテクチャの図である。
【図４】図１〜図３の知識エンジンを含む例示的なシステムの図である。
【図５Ａ】図１〜図４の知識エンジンを含む例示的なサーバ装置の図である。
【図５Ｂ】図１〜図４の知識エンジンを含む例示的なサーバ装置の図である。
【発明を実施するための形態】
【００１１】
次いで図面を参照すると、図１のステップ１０１に示すように、Ｆｒｅｅｂａｓｅなどの該当するデータベースから未処理のトリプルが受け取られる。ステップ１０２は、ステップ１０１で受け取られた未処理のトリプルから冗長なエンティティ、属性、及びＲＤＦトリプルを取り除いて、冗長性のない（本明細書では「クリーンな」とも呼ぶ）ＲＤＦトリプル１０３を得ることを含む。ＲＤＦトリプル１０３に関して、ステップ１０４でそれらのエンティティが順位付けされる。例えば、エンティティの順位は、Ｗｉｋｉｐｅｄｉａのアクセス数出力、エンティティの名前が出現する頻度、エンティティの名前の人気度等を分析することによって生成することができる。
【００１２】
ステップ１０５で、クリーンなＲＤＦトリプル１０３が一意の整数の識別（ＩＤ）として符号化される。各エンティティ、属性、及び値がそのように符号化されて、１つのトリプルを整数の３つ組で表すことができるようにし、その結果ステップ１０６で符号化データが得られる。元のバージョンと符号化後のバージョンを区別するために、符号化されたエンティティを表す整数ＩＤを本明細書では「エンティティＩＤ」とも称する。同様に、符号化された属性を表す整数ＩＤを本明細書では「属性ＩＤ」とも称する。同様に、符号化された値を表す整数ＩＤを本明細書では「値ＩＤ」とも称する。ステップ１０４で得られたエンティティの順位に、エンティティの整数ＩＤを割り当てることもできる。また、各カテゴリも符号化してカテゴリＩＤとすることができるように、カテゴリに従ってエンティティを編成することができる。ハッシュテーブルＨ（図示せず）に、エンティティ、属性、値、エンティティの順位付け、及びカテゴリについてのすべての対応付けを、各自の整数表現との関連で記憶する。同様に、整数ＩＤから、それに対応する未符号化状態すなわち元のエンティティ、属性、値、エンティティ順位付け、及びカテゴリへの対応付けを配列リストＬに記憶する。したがって、ハッシュテーブルＨと配列リストＬは互いの逆となる。次いで、ステップ１０７で、符号化されたＲＤＦトリプルをメモリ１０８にロードすることができる。ステップ１０７は、すべてのエンティティＩＤを各自のカテゴリＩＤ及び属性ＩＤに従って索引付けすることも含むことができる。カテゴリはエンティティの種別を表し、例えば種別は「映画スター」であり、対して、そのようなカテゴリのエンティティは個々の映画スターからなることができる。ステップ１０９で、属性ＩＤごとにエンティティＩＤ及び値ＩＤを索引付けすることに関して、追加的な索引付けを行うことができる。この索引付けの結果は、ステップ１１０で知識データベース又はメモリに記憶されるカテゴリＩＤ及び属性ＩＤ索引で表される。
【００１３】
例示的なカテゴリ索引は、カテゴリごとにエンティティＩＤをリストする。同様に、属性索引は、属性ごとに値ＩＤと共にエンティティＩＤをリストする。カテゴリＩＤ索引と属性ＩＤ索引は、カテゴリＩＤごと且つ属性ＩＤごとに、エンティティＩＤでソートされる。その結果得られる、図１に関して説明したように形成される知識データベース中の符号化及び索引付けされたＲＤＦトリプルは、図２に示すように知識エンジン２００で検索することができ、有利である。ステップ２０１で構造化クエリ２０１が受け取られる。そのような構造化クエリは、指定されたエンティティ、比較値を伴う属性、及びカテゴリ、並びに出力属性及びソート順序を含む。ステップ２０２で構造化クエリ２０１が構文解析して単純クエリ２０３にされ、有利である。各単純クエリ２０３は、１つのカテゴリ及び１つの属性に対応することができる。さらに、各単純クエリ２０３は、１つのみのエンティティ、又は比較を伴う１つのみの属性、又は１つのみのカテゴリを有することができる。例えば、ユーザが、データベース中にある１９８２年以降に生まれたすべての映画スターの識別を知りたいとする。そのようなクエリは、カテゴリ「映画スター」にあるすべてのエンティティや、１９８２年以降生まれの属性を持つすべてのエンティティなどのいくつかの単純クエリに構造化することができる。注目すべき点として、各単純クエリ２０３が１つのカテゴリ及び１つの属性に対応する場合、カテゴリ及び属性の数は、一般的なリレーショナルデータベースの制約をはるかに超える可能性がある。具体的には、本実施形態におけるデータセットは数百ギガバイトを超える可能性があり、単純クエリ２０３を構文解析するために多数のコンピュータクラスタが必要となる可能性がある。
【００１４】
単純クエリ２０３は、ハッシュテーブルの符号化された整数値を使用して作成される。すなわち、カテゴリの「映画スター」を検索するのではなく、実際の検索は、カテゴリ「映画スター」の整数符号化表現（カテゴリＩＤ）に基づく。同様に、「公開日」の属性に対する検索では、「公開日」に対応する属性ＩＤを使用して検索を行う。ステップ２０４は、クエリの出力属性及びソート属性をリストすることを含む。このリストは実施形態によっては空になる場合がある。
【００１５】
比較ステップ２０５は単純クエリ２０３ごとに行われる。例えば、単純クエリ２０３は、特定のカテゴリＩＤに対応するすべてのエンティティＩＤをリストすることを含むことができる。或いは、単純クエリ２０３は、特定の属性ＩＤについてすべてのエンティティＩＤとそれに対応する値ＩＤをリストすることに関連する場合もある。そして、配列リストＬを使用して値ＩＤを復号して元の値にすることができる。次いで、その結果得られた値を何らかのクエリパラメータと比較して、対応するエンティティがその単純クエリに応答するかどうかを判定することができる。例えば、そのような単純クエリは、その単純クエリの固有の性質に応じて、値がそれよりも大きい、等しい、又は小さくなければならない比較値を含むことができる。ステップ２０５で比較又は一致があるたびに、対応するエンティティリスト２０６が生成される。
【００１６】
ステップ２０７で各種エンティティリスト２０６の共通集合を求めることにより、エンティティリスト２０８を得る。例えば、１９８２年以降に生まれたすべての映画スターを特定する上記の例示的検索では、１つのエンティティリスト２０６がメモリ１０８で見つかったすべての映画スターを含むことができる。別のリストが、データベース中にある１９８２年以降に生まれたすべてのエンティティを含むことができる。それらリストの共通集合が要求される答に相当する。
【００１７】
例えば、ステップ２０７で、エンティティＡ（Ｅ（Ａ）と表記する）とエンティティＢ（Ｅ（Ｂ）と表記する）との共通集合を、共通集合Ｅ（Ａ）∩Ｅ（Ｂ）で特定されるように求めることができる。それらエンティティ間に共通集合がない場合は、エンティティＡとＢの間には何の関係もない可能性がある。この共通集合が存在する場合は、Ｅ（Ａ）∪Ｅ（Ｂ）で表されるＥ（Ａ）とＥ（Ｂ）の和集合、及び式、−ｌｏｇ（（Ｅ（Ａ）∩Ｅ（Ｂ）／Ｅ（Ａ）∪Ｅ（Ｂ））を計算して、エンティティＡとＢの間の類似度スコアを得ることができる。
【００１８】
そのような類似度スコアは、エンティティ間の類似度に逆比例する。特に、最も緊密に関連するエンティティは、参照されるエンティティの共通集合がそれらエンティティの和集合と同じである（対数の底に関係なく１の対数がゼロになる）ことに相当すると考えられる。共通集合が和集合と比較して小さくなるのに従って、その結果得られる比の対数はより負に近づき、対数の逆関数がより正に近づく。そのようにして、エンティティごとに、関連するエンティティの順序付けしたスコアを生成することができる。実施形態によっては、順序付けしたスコアに閾値が適用されて、与えられたエンティティに最も関連性が高いエンティティのサブセットを求め、また可能性としては、構造化クエリ２０１に応答性のあるエンティティのリスト２０８を求める。閾値が適用されるかどうかに関係なく、類似度の計算により、クエリ２０１に応答性のあるエンティティのリスト２０８を求めることが容易になり、また関連するエンティティのソートと順位付け２０９も容易にすることができる。
【００１９】
上記の対数法に代えて、又はそれと併用して、追加的なアルゴリズムを実装することができる。例えば、Ｊａｃｃａｒｄ法やＰＭＩ法を利用してエンティティ間の数値的な類似度を算出することができる。また、与えられたエンティティがカテゴリの要素であることを使用して、そのカテゴリにある他の要素を関連エンティティとして選択することもできる。
【００２０】
ステップ２０９で、ステップ２０４で求められた出力形式に基づいて、最終的なリスト２０８にあるエンティティを各自の指定された属性に従ってソートすることができる。或いは、ステップ２０９は、出力形式が空の場合はエンティティの順位でエンティティを順位付けすることを含んでもよい。ステップ２０９のソート又は順位付けから、ステップ２１０で指定された形式のエンティティの出力リストを得ることができ、それをステップ２１１で検索結果としてユーザに表示することができる。
【００２１】
次いで、いくつかの例示的なクエリを検討して検索プロセスをより詳しく説明する。構造化クエリ２０１は、入力形式と出力形式の２つの部分を有する。例えば、ユーザが２０１３年９月５日から２０１３年９月１２日までの週に公開されたすべての映画の題名を知りたいとする。その結果得られる構造化クエリ２０１は、カテゴリ＝映画，公開日＞＝２０１３−０９−０５，公開日＜２０１３−０９−１２、の入力形式を有することができる。出力形式は、エンティティ名，公開日：降順でソート、とすることができる。
【００２２】
次いで、その結果得られた構造化クエリ２０１を分解して次の単純クエリ２０３にすることができる。第１の単純クエリは、カテゴリ＝映画のすべてのエンティティをリストするものである。上記のように、知識データベースは、ＲＤＦの三つ組値を例えば整数の三つ組で置き換えられるように圧縮形態でカテゴリ索引と属性索引を記憶する。他の種類のデータ圧縮が使用されてもよいことが理解されよう。この単純クエリについて、まずハッシュテーブルＨにアクセスしてカテゴリ「映画」の整数表現を見つける。すると、知識データベースからの検索は、単に、カテゴリ「映画」に対応するハッシュテーブル中の整数を、符号化されたカテゴリ索引と一致させるだけになる。例えば、カテゴリ「映画」が「ｊ」の整数ＩＤで表されるとする。したがって、知識データベースの検索は、整数ＩＤ「ｊ」として符号化されたカテゴリ索引を取り出すという比較的高速で容易な作業になる。したがって、このｊ番目の索引は、映画の索引であり、対応するエンティティＩＤのリストをもたらす。
【００２３】
例示的な構造化クエリの分解で得られる第２の単純クエリは、公開日の属性を持つすべてのエンティティをリストするものであり、属性値は２０１３−０９−０５以上となる（そのような単純クエリは属性、比較、及び値を有することに留意されたい）。したがって、「公開日」の属性の整数表現がハッシュテーブルＨから取得される。例えば、「公開日」の属性ＩＤが整数ｙで表されるとする。すると、知識エンジンは、整数ｙに対応する属性索引を知識データベースから取り出す。そのような検索は整数を一致させることに過ぎず、したがって従来技術の方法と比べて非常に高速になる。検索で得られる属性索引は、「公開日」の属性に対応する値を持つすべてのエンティティをリストするが、知識データベースに記憶された他の項目と同じように符号化されている。言い換えると、検索で得られる属性索引はペアのリストであり、各ペアはエンティティＩＤとそれに対応する値ＩＤである。そして知識エンジンは新しいエンティティＩＤリストＥを作成することができる。検索で得られる属性索引の値ＩＤ「ｎ」ごとに、知識エンジンは、配列リストＬから元の値（この例では公開日）を取得し、公開日が「２０１３−０９−０５」のクエリ日付と同じ又は後の日付であるか比較することができる。比較の結果が真（公開日が「２０１３−０９−０５」のクエリ日付と同じ又は後の日付）の場合、知識エンジンは、対応するエンティティＩＤをエンティティＩＤリストＥに入れることができる。このエンティティＩＤリストＥが第２の単純クエリに応答性のあるリストとなる。
【００２４】
第３の単純クエリは、第２の単純クエリと似ており、したがって公開日の属性を持つすべてのエンティティのリストを対象とし、属性値は日付２０１３−０９−１２未満となる。この第３の単純クエリはしたがって第２の単純クエリに関して説明したのと同様に処理される。そして、これら３つの単純クエリで得られた３つのエンティティリストの共通集合をステップ２０７に関して述べたように行って、出力エンティティリスト２０８を得ることができる。この例では、図２のステップ２０９に関して述べたようなソートや順位付けの必要はない。そして配列リストＬを使用して結果を復号して、元のエンティティとそれらの値を得ることができる。次の表１は、この構造化クエリ例による映画をリストした検索結果を示す。
【表１】
2015179516.tif 000003
【００２５】
検索結果の実際のリストは、一般には、クエリで指定される出力形式２０４、例えば値が昇順でリストされるべきか、降順でリストされるべきか等に依存する。
【００２６】
知識エンジン２００は、サーバ、複数のサーバ、又は他の種類の適切なコンピュータからなることができる。図２に示すステップを行うために、知識エンジン２００を実装するサーバは、Ｊａｖａ（登録商標）又は他の適切なプログラミング言語でコーディングすることができる。Ｆｒｅｅｂａｓｅに記憶されるトリプルは、ＲＤＦの分野で知られる形態を使用して表される。
【００２７】
知識エンジン２００は、図３に示すようにシステムアーキテクチャに組み込むことができる。セマンティックエンジン３０５が、ユーザから自然言語のクエリを受け取り、それに対応する構造化クエリ２０１を知識エンジン２００に提供する。知識エンジンは次いで図２に関して説明したデータベース１０８と対話して要求される検索結果を得、その結果を次いで、スマートフォン、スマートウォッチ、タブレット、また他の適切な装置等のユーザ装置３１０に表示することができる。
【００２８】
知識エンジン２００は、図４に示すようにシステムに組み込むこともできる。システム４００は、サーバ装置４０２やクライアント装置４０４及び４０６等の複数のコンピューティング装置を含み、各装置は、通信ネットワーク４０８を通じてデータ／データパケット４１６及び４１８を送信及び受信するように構成することができる。例えば、通信インターフェース４１０は、図１〜図３との関連で上述したような未処理のＲＤＦデータ及び構造化クエリを送受信することができる。メモリ４１２は、例えば上記の１つ又は複数のエンティティリストを記憶するようにさらに構成された、磁気、光学、又はフラッシュ記憶機構などの、揮発性、不揮発性、取り外し可能、及び／又は取り外し不能の記憶構成要素の１つ又は複数を含むことができる。そのため、通信インターフェース４１０、知識エンジン２００、セマンティックエンジン３０５、知識ベース１０８、及びメモリ４１２は、システムバス、ネットワーク、又は他の接続機構４１４を介して通信的に結合することができる。
【００２９】
クライアント装置４０４及び４０６は各種形態を取ることができ、それらには、例えば構造化クエリを送信し、検索結果を受け取ることが可能な種々のコンピューティング装置の中でも特に、パーソナルコンピュータ（ＰＣ）、スマートフォン、着用可能コンピュータ、ラップトップ／タブレットコンピュータ、適切なコンピュータハードウェアリソースを備えたスマートウォッチ、頭部装着ディスプレイ、他の種類の着用可能装置が含まれる。クライアント装置４０４及び４０６は各種の構成要素を含むことができ、それらには例えばそれぞれ、入力／出力（Ｉ／Ｏ）インターフェース４３０及び４４０、通信インターフェース４３２及び４４２、プロセッサ４３４及び４４４、並びにデータ記憶機構４３６及び４４６が含まれ、それらはすべてそれぞれシステムバス、ネットワーク、又は他の接続機構４３８及び４４８を介して互いに通信的に結合することができる。
【００３０】
Ｉ／Ｏインターフェース４３０及び４４０は、それぞれ、クライアント装置４０４及び４０６と、クライアント装置４０４及び４０６のユーザとの間の対話を容易にするように構成することができる。例えば、Ｉ／Ｏインターフェース４３０及び４４０は、ユーザから受け取られたクエリにアクセスし、検索結果をユーザに提供するように構成することができる。したがって、Ｉ／Ｏインターフェース４３０及び４４０は、入力ハードウェア、例えば音声コマンドを受け取るマイクロフォン、タッチ画面、タッチセンシティブパネル、コンピュータマウス、キーボード、及び／又は他の入力ハードウェアを含むことができる。
【００３１】
上記のように、知識エンジン２００は、サーバ、複数のサーバ、又は他の種類の適切なコンピュータからなることができる。知識エンジン２００は、その拡張縮小可能性により、図５Ａ及び図５Ｂに示すようにサーバ装置と一体化することができる。図５Ａは、一実施形態による、トレーのセットを支持するように構成された例示的なサーバ装置５００を示す。図示するように、サーバ装置５００は、トレー５０４及び５０６を支持し、場合によっては複数の他のトレーも支持することが可能な筐体５０２を含むことができる。筐体５０２は、それぞれトレー５０４及び５０６を保持するように構成されたスロット５０８及び５１０を含むことができる。筐体５０２は、接続５１４及び５１６を介して電源５１２に接続されて、それぞれスロット５０８及び５１０に電力を供給することができる。筐体５０２は、接続５２０及び５２２を介して通信ネットワーク５１８に接続して、それぞれスロット５０８及び５１０にネットワークへの接続性を提供することもできる。したがって、トレー５０４及び５０６はそれぞれスロット５０８及び５１０に挿入して、電源５１２から電力を受け取ると共に、通信ネットワーク５１８に接続することができる。
【００３２】
図５Ｂは、１つ又は複数の構成要素を支持するように構成されたトレー５０４を示す図である。トレー２０４は、知識エンジン２００、セマンティックエンジン３０５、知識ベース１０８、通信インターフェース４１０、及びメモリ４１２を含むことができる。トレー２０４は、接続５１４又は５１６に結合してトレー５０４に電力を供給することができるコネクタ５２６を含むことができる。トレー５０４は、接続５２０又は５２２に結合してトレー５０４にネットワークへの接続性を提供することができるコネクタ５２８も含むことができる。そのため、知識エンジン２００、セマンティックエンジン３０５、及び知識ベース１０８は、本明細書に記載され、添付図面に示される動作を行うように構成されることができる。
【符号の説明】
【００３３】
１０８…メモリ、２００…知識エンジン、２０１…構造化クエリ、２０３…単純クエリ、２０６、２０８…エンティティリスト、３０５…セマンティックエンジン、３１０…ユーザ装置、４０２…サーバ装置、４０４、４０６…クライアント装置、４０８…通信ネットワーク、４１６、４１８…データ／データパケット、４１０…通信インターフェース、４１２…メモリ、４１４…接続機構、４３０、４４０…Ｉ／Ｏインターフェース、４３２、４４２…通信インターフェース、４３４、４４４…プロセッサ、４３６、４４６…データ記憶機構、４３８、４４８…接続機構、５００…サーバ装置、５０２…筐体、５０４、５０６…トレー、５０８、５１０…スロット、５１４、５１６…接続、５１２…電源、５１８…通信ネットワーク、５２６…コネクタ、５２８…コネクタ。
【図１】
2015179516.tif 000004
【図２】
2015179516.tif 000005
【図３】
2015179516.tif 000006
【図４】
2015179516.tif 000007
【図５Ａ】
2015179516.tif 000008
【図５Ｂ】
2015179516.tif 000009
【外国語明細書】
2015179516000001.pdf