(57)【要約】［課題］属性毎に行うデータの探索処理の負荷が大きい場合に、適切な計算量またはメモリ量でその処理を実行できない。［解決手段］情報検索システムは、属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名をその登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、その登録情報に対応する登録キーを生成し、属性情報を一つ以上含む評価情報を受け取り、その評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較によりその登録キーに対応する登録情報を検索するための検索キーを生成する。
2012127986.tif 000002
【特許請求の範囲】
【請求項１】
属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名を当該登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成する第一の展開処理手段と、
属性情報を一つ以上含む評価情報を受け取り、当該評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較により当該登録キーに対応する登録情報を検索するための検索キーを生成する第二の展開処理手段と、
を備える情報検索システム。
【請求項２】
所定の属性名を示す指定リストを記憶する指定リスト記憶手段を備え、
前記第一の展開処理手段は、前記指定リストで示される属性名のそれぞれに対して、各属性名を前記登録情報に含まれる属性情報が有するか否かに応じて異なる、前記第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成し、
前記第二の展開処理手段は、前記評価情報に含まれる属性情報のそれぞれに対して、前記指定リストが示す属性名を有するか否かに応じて異なる、前記第二の情報処理を行うことによって、前記検索キーを生成する、請求項１に記載の情報検索システム。
【請求項３】
前記第一の展開処理手段は、前記登録情報に含まれる属性名と前記指定リストに含まれる属性名との差分に基づいて特定される属性名を示す属性名リストを特定する判定手段を備え、
前記第一の展開処理手段は、
各属性名に対応する属性情報が有する属性値の取り得る値を当該属性名と対応付けて記憶する属性値リストを記憶し、前記第一の情報処理として、前記属性名リストに含まれる属性名と前記属性値リストにおいて当該属性名に対応付けられている属性値とを前記登録情報に追加する組み合わせ展開処理手段と、
前記属性名と前記属性値とが追加された前記登録情報に基づいて前記登録キーを生成する情報登録手段と、を備える請求項２に記載の情報検索システム。
【請求項４】
前記第二の展開処理手段は、
評価情報に含まれる属性名と前記指定リストに含まれる属性名との差分に基づいて特定される属性名の属性情報を要素とする集合を生成する集合展開処理手段と、
前記第二の情報処理として、前記評価情報と前記集合に含まれる各要素が示す属性情報との組み合わせに基づいて検索キーを生成する情報検索手段と、を備える請求項２または３に記載の情報検索システム。
【請求項５】
各属性名に対応する属性情報が有する属性値の取り得る値の種類の数と当該属性名とを対応付けた情報である属性値数リストと、所定の閾値とに基づいて、前記指定リストを生成し、当該指定リストを前記指定リスト記憶手段に記憶する指定リスト作成手段を備える、請求項２ないし４のいずれか１項に記載の情報検索システム。
【請求項６】
前記指定リスト作成手段は、前記属性値数リストにおいて前記閾値以下の値に対応づけられている属性名を前記指定リストに追加する、請求項５に記載の情報検索システム。
【請求項７】
前記指定リスト作成手段は、前記属性値数リストにおいて小さい値に対応付けられている属性名から順に高々閾値が示す個数まで当該属性名を前記指定リストに追加する、請求項５または６に記載の情報検索システム。
【請求項８】
前記指定リスト作成手段は、前記属性値数リストに含まれる、属性値の取り得る値の種類の数に基づいて特定されるメモリ使用量が前記閾値を超えるまで、当該属性値の取りえる値の種類の数に対応する属性名を前記指定リストに追加する、請求項５ないし７のいずれか１項に記載の情報検索システム。
【請求項９】
属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名を当該登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成し、
属性情報を一つ以上含む評価情報を受け取り、当該評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較により当該登録キーに対応する登録情報を検索するための検索キーを生成する、情報検索方法。
【請求項１０】
コンピュータに、
属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名を当該登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成する処理と、
属性情報を一つ以上含む評価情報を受け取り、当該評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較により当該登録キーに対応する登録情報を検索するための検索キーを生成する処理と、を実行させるための情報検索プログラムを記憶する記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、属性名と属性値とを有する属性情報を１つ以上含んだ登録情報と評価情報とを比較することで、評価情報にマッチする登録情報を検索する情報検索技術に関する。
【背景技術】
【０００２】
属性名と属性値とを有する属性情報を１つ以上含んだ登録情報の中から、所望の条件（評価情報）にマッチする情報を検索する情報検索システムが知られている。
例えば特許文献１に記載の情報検索方法は、複数の属性のうち転置配列の検索順序の先頭の転置配列に対応する１つの属性について、当該転置配列と検索キーと関連度評価関数とに基づいて、その探索範囲に含まれるデータ群を取得する。そしてこの検索方法は、所定の停止条件を満足するまで、転置配列の検索順序に従って、属性毎に次の探索処理を実行する。その探索処理では、対応する属性について、その転置配列と上記検索キーと上記関連度評価関数とに基づいて、上記探索範囲に含まれるデータ群が取得される処理が行われる。取得されたこれらのデータ群は個別解候補集合である。この検索方法は、これらの個別解候補集合と現在の解候補集合とを併合し、新たな解候補集合を生成する。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−２９６５２４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
特許文献１に記載の情報検索方法は、属性間で単一の方法を用いることでデータの探索範囲を特定している。従って特許文献１に記載の情報検索方法は、属性毎に行うデータの探索処理の負荷が大きい場合に、適切な計算量またはメモリ量でその処理を実行できないという問題がある。
本発明は、属性毎に行う処理の負荷が大きい場合でも、適切な計算量またはメモリ量でデータの探索処理を実行できる情報検索システム、情報管理装置、方法、および、プログラムを提供することを目的の一つとする。
【課題を解決するための手段】
【０００５】
本発明の一態様による第一の情報検索システムは、属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名を当該登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成する組み合わせ展開処理手段と、属性情報を一つ以上含む評価情報を受け取り、当該評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較により当該登録キーに対応する登録情報を検索するための検索キーを生成する情報検索手段と、を備える。
本発明の一態様における第一の情報検索方法は、属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名を当該登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成し、属性情報を一つ以上含む評価情報を受け取り、当該評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較により当該登録キーに対応する登録情報を検索するための検索キーを生成する。
本発明の一態様における第一の情報検索プログラムは、コンピュータに、属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名を当該登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成する処理と、属性情報を一つ以上含む評価情報を受け取り、当該評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較により当該登録キーに対応する登録情報を検索するための検索キーを生成する処理と、を実行させる。
【発明の効果】
【０００６】
本発明の効果の一例は、属性毎に行う処理の負荷が大きい場合でも、適切な計算量またはメモリ量でデータの探索処理を実行できることである。
【図面の簡単な説明】
【０００７】
【図１】図１は、本発明の第一の実施の形態における情報検索システムの構成を示すブロック図である。
【図２】図２は、登録情報および評価情報の一例を示す図である。
【図３】図３は、ワイルドカードを含む登録情報の一例を示す図である。
【図４】図４は、ワイルドカードを含まない登録情報の一例を示す図である。
【図５】図５は、本発明の第一の実施の形態における組み合わせ展開判定部が備える構成の一例を示すブロック図である。
【図６】図６は、組み合わせ展開対象属性名指定リストの一例を示す図である。
【図７】図７は、登録情報の一例を示す図である。
【図８】図８は、組み合わせ展開対象属性名リストの一例を示す図である。
【図９】図９は、本発明の第一の実施の形態における組み合わせ展開処理部が備える構成の一例を示すブロック図である。
【図１０】図１０は、組み合わせ展開対象属性値リストの一例を示す図である。
【図１１】図１１は、組み合わせ展開処理後の登録情報の一例を示す図である。
【図１２】図１２は、本発明の第一の実施の形態における情報登録部が備える構成の一例を示すブロック図である。
【図１３】図１３は、本発明の第一の実施の形態におけるべき集合展開処理部の構成の一例を示すブロック図である。
【図１４】図１４は、評価情報の一例を示す図である。
【図１５】図１５は、べき集合展開対象属性情報リストの一例を示す図である。
【図１６】図１６は、非べき集合展開対象属性情報リストの一例を示す図である。
【図１７】図１７は、べき集合展開対象展開リストの一例を示す図である。
【図１８】図１８は、べき集合展開処理後の評価対象情報の一例を示す図である。
【図１９】図１９は、本発明の第一の実施の形態における情報検索部の構成の一例を示すブロック図である。
【図２０】図２０は、本発明の第一の実施の形態における情報検索システムの動作において、情報登録フローの動作を示すフローチャートである。
【図２１】図２１は、情報登録フローにおける組み合わせ展開判定処理の動作を示すフローチャートである。
【図２２】図２２は、情報登録フローにおける組み合わせ展開処理の動作を示すフローチャート図である。
【図２３】図２３は、本発明の第一の実施の形態における情報検索システムの動作において、情報評価フローの動作を示すフローチャートである。
【図２４】図２４は、本発明の第二の実施の形態における情報検索システムの構成を示すブロック図である。
【図２５】図２５は、本発明の第二の実施の形態における組み合わせ展開対象属性名指定リスト作成部の構成の一例を示すブロック図である。
【図２６】図２６は、属性値数リストの一例を示す図である。
【図２７】図２７は、本発明の第二の実施の形態における情報検索システムの動作において、組み合わせ展開対象属性名指定リスト作成部の動作を示すフローチャートである。
【図２８】図２８は、本発明の第三の実施の形態における情報検索システムの構成を示すブロック図である。
【図２９】図２９は、本発明の第三の実施の形態における情報検索システムとその周辺装置のハードウェア構成を示す図である。
【図３０】図３０は、本発明の第三の実施の形態における情報検索システムの動作の概要を示すフローチャートである。
【発明を実施するための形態】
【０００８】
本発明を実施するための形態について図面を参照して詳細に説明する。なお、各図面および明細書記載の各実施の形態において、同様の機能を備える構成要素には同様の符号が与えられている。
［第一の実施の形態］
図１は、本発明の第一の実施の形態における情報検索システム１０の構成を示すブロック図である。
図１を参照すると、情報検索システム１０は、登録情報受信部１０１と、組み合わせ展開対象属性名指定リスト記憶部１０２と、組み合わせ展開判定部１０３と、組み合わせ展開処理部１０４と、情報登録部１０５と、情報記憶部１０６と、評価情報受信部１０７と、べき集合展開処理部１０８と、情報検索部１０９と、を備える。
第一の実施の形態における情報検索システム１０は、登録情報の登録要求を受け、所定の属性名のそれぞれに対して、各属性名を前述の登録情報に含まれる属性情報が有するか否か判定する（第一の判定）。そして情報検索システム１０は、第一の判定の結果に応じて異なる第一の情報処理を行うことによって、前述の登録情報に対応する登録キーを生成する。また情報検索システム１０は、検索要求として評価情報を受け取り、その評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否か判定する（第二の判定）。そして情報検索システム１０は、第二の判定の結果に応じて異なる第二の情報処理を行うことによって、前述の評価情報に対応する検索キーを生成する。そして情報検索システム１０は、その検索キーと一致する登録キーに対応する登録情報を検索することができる。
この構成により第一の実施の形態における情報検索システム１０は、属性毎に行う処理の負荷が大きい場合でも、適切な計算量またはメモリ量でデータの探索処理を実行できる。
図２は、登録情報の一例を示す図である。図２を参照すると、登録情報は、一つ以上の属性情報を含んでおり、この属性情報は、属性名と属性値との組を有する。図２に示される登録情報は、「２０歳の男で東京にいる人」を表す。
また、図２は、評価情報の一例も示している。評価情報は、一つ以上の属性情報を含んでいる。
第一の実施の形態における情報検索システム１０は、ワイルドカードを含む登録情報の登録が可能である。図３は、ワイルドカードを含まない登録情報の一例を示す図であり、図４は、ワイルドカードを含む登録情報との一例を示す図である。ワイルドカードとは、対応する属性情報の属性値が任意でよいことを示す情報である。
本発明において、情報検索システム１０が扱うすべての属性情報が、性別、年齢、場所の３つの場合、図３に示されるようなすべての属性情報を含んでいる登録情報は、ワイルドカードを含まない登録情報と称される。また、前述の例の場合に、図４に示されるようなすべての属性情報を含んでいない登録情報は、ワイルドカードを含む登録情報と称される。
図４に示される、ワイルドカードを含む登録情報は、「２０代の男」を表す。このような登録情報が登録される際に、図２に示される、「２０歳の男で東京にいる人」を表す評価情報が入力されたと仮定する。この場合、「２０歳の男で東京にいる人」の集合は、「２０代の男」の集合に包含されている。すなわち、「２０歳の男で東京にいる人⊂２０代の男」という関係が成立する。したがって情報検索システム１０は、図４に示される登録情報を取得する。
＝＝＝登録情報受信部１０１＝＝＝
登録情報受信部１０１は、登録情報を図示しない外部装置または情報検索システム１０が備える機能手段から受け取る。そして登録情報受信部１０１は、受け取った登録情報を、後述の組み合わせ展開判定部１０３に渡す。図２は、登録情報受信部１０１が受け取る登録情報の一例を示す図である。登録情報受信部１０１が受信する登録情報は、一つ以上の属性情報を含んでいる。またこの登録情報は、図４に示されるようにワイルドカードを含んでいてもよい。
＝＝＝組み合わせ展開対象属性名指定リスト記憶部１０２＝＝＝
組み合わせ展開対象属性名指定リスト記憶部１０２は、組み合わせ展開処理を行う対象の属性名が指定されるリストである組み合わせ展開対象属性名指定リストを記憶する。本発明では、組み合わせ展開対象属性名指定リストは、指定リストとも称される。また、本発明において、組み合わせ展開対象属性名指定リスト記憶部１０２は、指定リスト記憶部とも称される。組み合わせ展開処理とは、所定の属性情報間でそれぞれが有する各属性値が取り得る値のすべての組み合わせを求める処理である。
図６は、組み合わせ展開対象属性名指定リスト記憶部１０２が記憶する組み合わせ展開対象属性名指定リストの一例を示す図である。
図６を参照すると、組み合わせ展開対象属性名指定リストは、情報検索システム１０がＩｎｔｅｒｅｓｔ（興味）、Ｇｅｎｄｅｒ（性別）およびＴｅｒｍｉｎａｌ（端末状態）の属性名を有する属性情報に対して組み合わせ展開処理を行うこと、を示している。
＝＝＝組み合わせ展開判定部１０３＝＝＝
組み合わせ展開判定部１０３は、登録情報受信部１０１から登録情報を受け取る。そして組み合わせ展開判定部１０３は、受け取った登録情報と後述の組み合わせ展開対象属性名リストとを、後述の組み合わせ展開処理部１０４に渡す。
組み合わせ展開判定部１０３は、組み合わせ展開対象属性名指定リスト記憶部１０２が記憶している組み合わせ展開対象属性名指定リストを取得する。そして組み合わせ展開判定部１０３は、組み合わせ展開対象属性名指定リストに含まれる属性名のうち、登録情報受信部１０１が受け取る登録情報に含まれる属性情報が有する属性名を除いた属性名を含む情報である、組み合わせ展開対象属性名リストを生成する。本発明において、この機能は組み合わせ展開対象属性名リスト生成機能と称される。また当該機能は、組み合わせ展開対象属性名リスト生成部１３１が行う。図５は、組み合わせ展開判定部１０３が備える構成の一例を示す図である。
本発明において、組み合わせ展開判定部１０３は、判定部とも称される。また組み合わせ展開対象属性名リストは、属性名リストとも称される。
図８は、図７に示される登録情報が情報検索システム１０に入力され、組み合わせ展開対象属性名指定リスト記憶部１０２が図６に示される組み合わせ展開対象属性名指定リストを記憶する場合の、組み合わせ展開対象属性名リストの一例を示す図である。
図７に示される登録情報に含まれる属性名は、Ｉｎｔｅｒｅｓｔ（興味）およびＬｏｃａｔｉｏｎ（場所）である。また図６に示される組み合わせ展開対象属性名指定リストが指定する属性名は、Ｉｎｔｅｒｅｓｔ（興味）、Ｇｅｎｄｅｒ（性別）およびＴｅｒｍｉｎａｌ（端末状態）である。よって組み合わせ展開判定部１０３は、Ｉｎｔｅｒｅｓｔ（興味）、Ｇｅｎｄｅｒ（性別）およびＴｅｒｍｉｎａｌ（端末状態）からＩｎｔｅｒｅｓｔ（興味）およびＬｏｃａｔｉｏｎ（場所）を除いた組み合わせ展開対象属性名リストを生成する。具体的には組み合わせ展開判定部１０３は、図８に示されるような、Ｇｅｎｄｅｒ（性別）およびＴｅｒｍｉｎａｌ（端末状態）を含む組み合わせ展開対象属性名リストを生成する。
＝＝＝組み合わせ展開処理部１０４＝＝＝
組み合わせ展開処理部１０４は、登録情報と組み合わせ展開対象属性名リストとを受け取る。そして組み合わせ展開処理部１０４は、後述の情報登録部１０５に組み合わせ展開処理後の登録情報を渡す。「組み合わせ展開処理後の登録情報」の詳細は後述される。図９は、組み合わせ展開処理部１０４が備える機能を示す図である。図９を参照すると、組み合わせ展開処理部１０４は、組み合わせ展開対象属性値リスト記憶部１４１と、組み合わせ生成処理部１４２とを備える。
組み合わせ展開処理部１０４は、組み合わせ展開対象属性値リストを組み合わせ展開対象属性値リスト記憶部１４１に記憶する。組み合わせ展開対象属性値リストとは、組み合わせ展開処理を行う各属性情報の取りえる属性値のリストをその対応する属性名と対応付けた情報である。本発明において当該機能は、組み合わせ展開対象属性値リスト記憶機能と称される。また本発明において、組み合わせ展開対象属性値リストは属性値リストとも称される。
図１０は、組み合わせ展開対象属性値リスト記憶機能によって組み合わせ展開対象属性値リスト記憶部１４１が記憶する、組み合わせ展開対象属性値リストの一例を示す図である。図１０を参照すると、組み合わせ展開対象属性値リストは、組み合わせ展開対象属性名指定リストによって指定されている属性名に対応する属性情報が有する属性値が取り得る値が含まれている。
図１０に示される組み合わせ展開対象属性値リストは、Ｉｎｔｅｒｅｓｔという属性がＭｕｓｉｃ、Ｍｏｖｉｅ、Ｓｐｏｒｔｓ、Ｓｈｏｐｐｉｎｇ、Ｃｏｏｋｉｎｇ、Ｄｒｉｖｅ、Ｇａｍｅ、Ｃｏｍｐｕｔｅｒ、ＴＶ、Ｏｕｔｄｏｏｒ、ＮｏｖｅｌおよびＣｏｍｉｃの１２種類の値を持つことを示している。またこの組み合わせ展開対象属性値リストは、Ｇｅｎｄｅｒという属性がＭａｌｅおよびＦｅｍａｌｅの２値を持つことを示している。またこの組み合わせ展開対象属性値リストは、Ｔｅｒｍｉｎａｌという属性がｏｐｅｎおよびｃｌｏｓｅの２値を持つことを示している。
組み合わせ展開処理部１０４は、組み合わせ展開対象属性名リストに含まれる属性名に対応する組み合わせ展開対象属性値リストを、組み合わせ展開対象属性値リスト記憶部１４１から取得する。そして組み合わせ展開処理部１０４は、取得した組み合わせ展開対象属性値リストに含まれる値の組み合わせとそれらの値の属性名とに登録情報を結合した、組み合わせ展開処理後の登録情報を生成する。本発明において、この機能は、組み合わせ生成処理機能または組み合わせ展開処理機能と称される。組み合わせ生成処理機能は、組み合わせ生成処理部１４２が行う。
例えば、組み合わせ生成処理部１４２は、図７に示される登録情報と図８に示される組み合わせ展開対象属性名リストとを受け取り、図１１に示される組み合わせ展開処理後の登録情報を生成する。組み合わせ生成処理部１４２は、組み合わせ展開対象属性名リストに含まれるＧｅｎｄｅｒおよびＴｅｒｍｉｎａｌに対応する組み合わせ展開対象属性値リストＧｅｎｄｅｒ：｛Ｍａｌｅ，Ｆｅｍａｌｅ｝，Ｔｅｒｍｉｎａｌ：［Ｏｐｅｎ，Ｃｌｏｓｅ］を組み合わせ展開対象属性値リスト記憶部１４１から取得する。そして、組み合わせ生成処理部１４２は、取得した組み合わせ展開対象属性値リストの値の組み合わせとそれらの属性名とを含む情報である｛Ｇｅｎｄｅｒ＝Ｍａｌｅ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ｝、｛Ｇｅｎｄｅｒ＝Ｍａｌｅ，Ｔｅｒｍｉｎａｌ＝Ｃｌｏｓｅ｝、
｛Ｇｅｎｄｅｒ＝Ｆｅｍａｌｅ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ｝、および｛Ｇｅｎｄｅｒ＝Ｆｅｍａｌｅ，Ｔｅｒｍｉｎａｌ＝Ｃｌｏｓｅ｝を生成する。そして、組み合わせ生成処理部１４２は、図７に示される登録情報
｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１｝を前述の情報とそれぞれ結合し、４つの組み合わせ展開処理後の登録情報を生成する。具体的には組み合わせ生成処理部１４２は、
｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ｇｅｎｄｅｒ＝Ｍａｌｅ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ｝、
｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ｇｅｎｄｅｒ＝Ｍａｌｅ，Ｔｅｒｍｉｎａｌ＝Ｃｌｏｓｅ｝、
｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ｇｅｎｄｅｒ＝Ｆｅｍａｌｅ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ｝、および
｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ｇｅｎｄｅｒ＝Ｆｅｍａｌｅ，Ｔｅｒｍｉｎａｌ＝Ｃｌｏｓｅ｝という４つの組み合わせ展開処理後の登録情報を生成する。組み合わせ生成処理部１４２は、生成された４つの組み合わせ展開処理後の登録情報を情報登録部１０５に渡す。
＝＝＝情報登録部１０５＝＝＝
情報登録部１０５は、組み合わせ展開処理部１０４から登録情報を受け取る。そして情報登録部１０５は、受け取った登録情報に基づいて登録キーを生成し、後述の情報記憶部１０６にその登録キーと登録情報とを関連付けて記憶する。
情報登録部１０５は、図１２に示されるように、登録情報の属性情報を特定の順序にソートするソート部１５１を備える。この特定の順序とは、例えば属性名または属性値のアルファベット順、五十音順、数値の昇順、数値の降順などが挙げられる。
情報登録部１０５は、図１２に示されるように、ソートされた属性情報を連結し、連結された属性情報に基づいて登録キーを生成するキー生成部１５２を備える。例えば情報登録部１０５は、連結された属性情報のハッシュ値を登録キーと特定してもよい。
情報登録部１０５は、図１２に示されるように、後述の情報記憶部１０６に登録キーと登録情報とを含む登録要求を送る登録部１５３を備える。
＝＝＝情報記憶部１０６＝＝＝
情報記憶部１０６は、登録キーと登録情報とを含む登録要求を受け付ける。そして情報記憶部１０６は、登録キーをキーとして登録情報を記憶する。つまり情報記憶部１０６は登録キーと対応する登録情報とを対応付けて記憶する。また情報記憶部１０６は、後述の検索キーを含む検索要求を受け付ける。そして情報記憶部１０６は、検索キーをキーとして、その検索キーに対応する登録キーに対応付けられて記憶されている登録情報を返す。
情報記憶部１０６は、例えばハッシュテーブルのようなキーバリューストアであってもよい。
＝＝＝評価情報受信部１０７＝＝＝
評価情報受信部１０７は、評価情報を受信する。そして評価情報受信部１０７は、後述のべき集合展開判定部１０８に、受信した評価情報を渡す。図２は評価情報の一例を示す図である。評価情報受信部１０７が受信する評価情報は１つ以上の属性情報を含んでいる。属性情報は属性名および属性値を有する。
＝＝＝べき集合展開処理部１０８＝＝＝
べき集合展開処理部１０８は、評価情報を受け取る。そしてべき集合展開処理部１０８は、後述の情報検索部１０９にべき集合展開処理後の評価情報を渡す。本発明では、べき集合展開処理部１０８は、集合展開処理部とも称される。「べき集合展開処理後の評価情報」の詳細は、後述される。
図１３は、べき集合展開処理部１０８が備える構成の一例を示す図である。
べき集合展開処理部１０８は、評価情報受信部１０７から受け取る評価情報と組み合わせ展開対象属性名指定リスト記憶部１０２から取得する組み合わせ展開対象属性名指定リストを利用して、以下の処理を行う機能を備える。すなわち、べき集合展開処理部１０８は、評価情報に含まれる属性情報から、組み合わせ展開対象属性名指定リストによって指定される属性名に対応する属性情報を除いた、べき集合展開対象属性情報リストを生成する。また、べき集合展開処理部１０８は、評価情報に含まれる属性情報から、組み合わせ展開対象属性名指定リストで指定される属性名に対応する属性情報を抽出した、非べき集合展開対象属性情報リストを生成する。本発明においてこれらの機能は評価情報分割機能と称される。当該評価分割機能は、評価情報分割部１８１が行う。具体的には評価情報分割部１８１は、評価情報をべき集合展開対象属性情報リストと非べき集合展開対象属性情報リストとに分割する。
図１５は、べき集合展開処理部１０８が生成する、べき集合展開対象属性情報リストの一例である。組み合わせ展開対象属性名指定リスト記憶部１０２が図６に示される組み合わせ展開対象属性名指定リストを記憶していた場合に、図１４に示される評価情報を受け取ったべき集合展開処理部１０８は、図１５の例のべき集合展開対象属性情報リストを生成する。また、図１６は、前述の例と同じ場合に生成される、非べき集合展開対象属性情報リストの一例である。
図１４に示される評価情報は、
｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ，Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ｇｅｎｄｅｒ＝Ｍａｌｅ，Ａｇｅ＝２０｝である。そして図６に示される組み合わせ展開対象属性名指定リストにはＩｎｔｅｒｅｓｔ、ＧｅｎｄｅｒおよびＴｅｒｍｉｎａｌが指定されている。そのため評価情報
｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ，Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ｇｅｎｄｅｒ＝Ｍａｌｅ，Ａｇｅ＝２０｝から組み合わせ展開対象属性名指定リストで指定されるＩｎｔｅｒｅｓｔ、ＧｅｎｄｅｒおよびＴｅｒｍｉｎａｌに対応する属性情報が除かれた｛Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ａｇｅ＝２０｝が、図１５に示されるべき集合展開対象属性情報リストとなる。また評価情報
｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ，Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ｇｅｎｄｅｒ＝Ｍａｌｅ，Ａｇｅ＝２０｝から組み合わせ展開対象属性名指定リストで指定されるＩｎｔｅｒｅｓｔ、ＧｅｎｄｅｒおよびＴｅｒｍｉｎａｌに対応する属性情報が抽出された｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ，Ｇｅｎｄｅｒ＝Ｍａｌｅ｝が、図１６に示される非べき集合展開対象属性情報リストとなる。
べき集合展開処理部１０８は、生成されたべき集合展開対象属性情報リストに含まれる属性情報を要素とする集合のべき集合を生成する。そしてべき集合展開処理部１０８は、べき集合の各要素をリストとして含むべき集合展開対象展開リストを生成する。本発明においてこれらの機能は部分べき集合生成機能と称される。またこれらの機能は部分べき集合生成部１８２によって実現される。具体的には、部分べき集合生成部１８２は、べき集合展開対象属性情報リストを受け取る。そして部分べき集合生成部１８２は、受け取ったべき集合展開対象属性情報リストに含まれる属性情報を要素とする集合のべき集合を生成する。そして部分べき集合生成部１８２は、べき集合の各要素をリストに含む、べき集合展開対象展開リストを生成する。
例えば、べき集合展開処理部１０８は、図１５に示される、べき集合展開対象属性情報リストを受け取った場合、以下の処理を行う。すなわち、べき集合展開処理部１０８は、べき集合展開対象属性情報リストに含まれる属性情報を要素とする集合
｛Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ａｇｅ＝２０｝のべき集合
｛｛φ｝，｛Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１｝，｛Ａｇｅ＝２０｝，｛Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ａｇｅ＝２０｝｝を生成する。そしてべき集合展開処理部１０８は、生成したべき集合をべき集合展開対象展開リストと特定する。図１７は、べき集合展開処理部１０８が特定したべき集合展開対象展開リストの一例を示す図である。
また、べき集合展開処理部１０８は、べき集合展開対象展開リストと非べき集合展開対象属性情報リストとに基づいて、べき集合展開対象展開リストに非べき集合展開対象属性情報リストを合成させたべき集合展開処理後の評価情報を生成する。本発明において、この機能は、非べき展開属性合成機能と称される。また当該機能は、非べき展開属性合成部１８３が行う。
例えば、べき集合展開処理部１０８は、図１７に示されるべき集合展開対象展開リスト｛｛φ｝，｛Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１｝，｛Ａｇｅ＝２０｝，｛Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ａｇｅ＝２０｝｝と図１６に示される非べき集合展開対象属性情報リスト｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ，Ｇｅｎｄｅｒ＝Ｍａｌｅ｝を生成する場合、以下の処理を行う。すなわち、べき集合展開処理部１０８は、べき集合展開対象展開リストに非べき集合展開対象属性情報リストを合成する。そしてべき集合展開処理部１０８は、べき集合展開処理後の評価情報である
｛Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ，Ｇｅｎｄｅｒ＝Ｍａｌｅ｝，｛Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ，Ｇｅｎｄｅｒ＝Ｍａｌｅ｝，｛Ａｇｅ＝２０，Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ，Ｇｅｎｄｅｒ＝Ｍａｌｅ｝，および｛Ｌｏｃａｔｉｏｎ＝Ａｒｅａ１，Ａｇｅ＝２０，Ｉｎｔｅｒｅｓｔ＝Ｍｕｓｉｃ，Ｔｅｒｍｉｎａｌ＝Ｏｐｅｎ，Ｇｅｎｄｅｒ＝Ｍａｌｅ｝を得る。図１８は、べき集合展開処理部１０８が取得するべき集合展開処理後の評価情報の一例を示す情報である。
＝＝＝情報検索部１０９＝＝＝
情報検索部１０９は、図１９に示されるように、べき集合展開処理後の評価情報の属性情報を特定の順序にソートするソート部１９１を備える。この特定の順序とは、例えば属性名または属性値のアルファベット順、五十音順、数値の昇順、数値の降順などが挙げられる。
情報検索部１０９は、図１９に示されるように、ソートされた属性情報を連結し、連結された属性情報に基づいて検索キーを生成するキー生成部１９２を備える。例えば情報検索部１０９は、連結された属性情報のハッシュ値を検索キーと特定してもよい。
情報検索部１０９は、図１９に示されるように、生成された検索キーを含む検索要求を情報記憶部１０６に渡す検索部１９３を備える。
本発明の第一の実施の形態において、組み合わせ展開判定部１０３、組み合わせ展開処理部１０４および情報登録部１０５は、まとめて第一の展開処理部とも称される。また、本発明の第一の実施の形態において、べき集合展開処理部１０８および情報検索部１０９はまとめて第二の展開処理部とも称される。本発明の第二の実施の形態においても、上記事項は同様である。
次に、第一の実施の形態における情報検索システム１０の動作について図面を参照して詳細に説明する。
第一の実施の形態における情報検索システム１０の全体の動作は、登録情報の登録を行う情報登録フローと、評価情報に対してマッチする登録情報を検索する情報評価フローに大きく分けられる。
図２０は、第一の実施の形態における情報検索システム１０の動作において、情報登録フローの動作を示すフローチャートである。
登録情報受信部１０１は、１つ以上の属性情報を含む登録情報を受け取る（ステップＳ−１０１Ｓ）。登録情報受信部１０１は、組み合わせ展開判定部１０３に登録情報を渡す。情報検索システム１０の処理はステップＳ１０２Ｓに進む。登録情報は１つ以上の属性情報を含んでおり、属性情報は属性名と属性値との組を有する。また第一の実施の形態における情報検索システム１０は、ワイルドカードを含む登録情報の登録が可能である。
組み合わせ展開判定部１０３は、登録情報を受け取る。組み合わせ展開判定部１０３は、組み合わせ展開判定処理を行う（ステップＳ−１０２Ｓ）。そして組み合わせ展開判定部１０３は、組み合わせ展開処理部１０４に登録情報と組み合わせ展開対象属性名リストを渡す。そして情報検索システム１０の処理は、ステップＳ−１０３Ｓに進む。図２１は、組み合わせ展開判定処理の動作を示すフローチャートである。以下組み合わせ展開判定処理の動作について説明する。
組み合わせ展開判定部１０３は、登録情報を受け取る（ステップＳ−１０２Ｓ−０１）。そして組み合わせ展開判定部１０３の処理は、ステップＳ−１０２Ｓ−０２に進む。
組み合わせ展開判定部１０３は、組み合わせ展開対象属性名指定リスト記憶部１０２に記憶されている組み合わせ展開対象属性名指定リストを取得する（ステップＳ−１０２Ｓ−０２）。そして組み合わせ展開判定部１０３の処理はステップＳ−１０２Ｓ−０３に進む。
組み合わせ展開判定部１０３はカウンタｉを０に設定する（ステップＳ−１０２Ｓ−０３）。そして組み合わせ展開判定部１０３の処理はステップＳ−１０２Ｓ−０４に進む。
組み合わせ展開判定部１０３は、カウンタｉと組み合わせ展開対象属性名指定リストに含まれる属性名の数である属性名数とを比較する（ステップＳ−１０２Ｓ−０４）。そしてカウンタｉが組み合わせ展開対象属性名指定リストに含まれる属性名数よりも少ない場合（ステップＳ−１０２Ｓ−０４の“Ｙｅｓ”）、組み合わせ展開判定部１０３の処理はステップＳ−１０２Ｓ−０５に進む。一方、カウンタｉが組み合わせ展開対象属性名指定リストに含まれる属性名数よりも多い場合（ステップＳ−１０２Ｓ−０４の“Ｎｏ”）、組み合わせ展開判定部１０３の組み合わせ展開判定処理は、終了する。
組み合わせ展開判定部１０３は、組み合わせ展開対象属性名指定リストからｉ番目の属性名を取り出す（ステップＳ−１０２Ｓ−０５）。そして組み合わせ展開判定部１０３の処理はステップＳ−１０２Ｓ−０６に進む。
組み合わせ展開判定部１０３は、カウンタｊを０に設定する（ステップＳ−１０２Ｓ−０６）。そして組み合わせ展開判定部１０３の処理は、ステップＳ−１０２Ｓ−０７に進む。
組み合わせ展開判定部１０３は、登録情報からｊ番目の属性情報の属性名を取り出す（ステップＳ−１０２Ｓ−０７）。そして組み合わせ展開判定部１０３の処理はステップＳ−１０２Ｓ−０８に進む。
組み合わせ展開判定部１０３は、ステップＳ−１０２Ｓ−０５において取得された属性名とステップＳ−１０２Ｓ−０７において取得された属性名とを比較する（ステップＳ−１０２Ｓ−０８）。それらの属性値が一致した場合（ステップＳ−１０２Ｓ−０８の“Ｙｅｓ”）、組み合わせ展開判定部１０３の処理はステップＳ−１０２Ｓ−１２に進む。一方、それらの属性値が一致しなかった場合（ステップＳ−１０２Ｓ−０８の“Ｎｏ”）、組み合わせ展開判定部１０３の処理はステップＳ−１０２Ｓ−０９に進む。
組み合わせ展開判定部１０３は、カウンタｊを１追加する（ステップＳ−１０２Ｓ−０９）。そして組み合わせ展開判定部１０３の処理はステップＳ−１０２Ｓ−１０に進む。
組み合わせ展開判定部１０３は、カウンタｊと登録情報に含まれる属性情報の数である属性数とを比較する（ステップＳ−１０２Ｓ−１０）。カウンタｊが登録情報に含まれる属性数よりも少ない場合（ステップＳ−１０２Ｓ−１０の“Ｙｅｓ”）、組み合わせ展開判定部１０３の処理は、ステップＳ−１０２Ｓ−０７に進む。一方、カウンタｊが登録情報に含まれる属性数よりも多い場合（ステップＳ−１０２Ｓ−１０の“Ｎｏ”）、組み合わせ展開判定部１０３の処理は、ステップＳ−１０２Ｓ−１１に進む。
組み合わせ展開判定部１０３は、組み合わせ展開対象属性名リストに、ステップＳ−１０２Ｓ−０８において一致したと判定された属性名を追加する（ステップＳ−１０２Ｓ−１１）。そして組み合わせ展開判定部１０３の処理は、ステップＳ−１０２Ｓ−１２に進む。
組み合わせ展開判定部１０３はカウンタｉを１追加する（ステップＳ−１０２Ｓ−１２）。そして組み合わせ展開判定部１０３の処理は、ステップＳ−１０２Ｓ−０４に進む。
以上が組み合わせ展開判定部１０３の動作である。
組み合わせ展開判定部１０３は、ステップＳ−１０２Ｓ−０４において処理を終了した際に、ステップＳ−１０２Ｓ−１１において追加した属性名を含む組み合わせ展開対象属性名リストを組み合わせ展開処理部１０４に渡す。そして情報検索システム１０の処理は、ステップＳ−１０３Ｓ進む。
組み合わせ展開処理部１０４は、登録情報と組み合わせ展開対象属性名リストとを受け取る。そして組み合わせ展開処理部１０４は、組み合わせ展開対象属性名リストが空か否かを判定する（ステップＳ−１０３Ｓ）。組み合わせ展開対象属性名リストが空であった場合（ステップＳ−１０３Ｓの“Ｙｅｓ”）、情報検索システム１０の処理は、ステップＳ−１０６Ｓに進む。一方、組み合わせ展開対象属性名リストが空でない場合（ステップＳ−１０３Ｓの“Ｎｏ”）、情報検索システム１０の処理は、ステップＳ−１０４Ｓに進む。
組み合わせ展開処理部１０４は、組み合わせ展開処理を行う（ステップＳ−１０４Ｓ）。そして組み合わせ展開処理部１０４は、情報登録部１０５に、組み合わせ展開処理後の登録情報を渡す。そして情報処理システム１０の処理は、ステップＳ−１０５Ｓに進む。図２２は、組み合わせ展開処理の動作を示すフローチャートである。以下、組み合わせ展開処理部１０４の動作について説明する。
組み合わせ展開処理部１０４は、組み合わせ展開対象属性名リストを受け取る（ステップＳ−１０４Ｓ−０１）。そして組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−０２に進む。
組み合わせ展開処理部１０４は、カウンタｉを０に設定する（ステップＳ−１０４Ｓ−０２）。そして組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−０３に進む。
組み合わせ展開処理部１０４は、カウンタｉと組み合わせ展開対象属性名リストに含まれる属性名の数である属性名数とを比較する（ステップＳ−１０４Ｓ−０３）。カウンタｉが組み合わせ展開対象属性名リストに含まれる属性名数よりも少ない場合（ステップＳ−１０４Ｓ−０３の“Ｙｅｓ”）、組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−０４に進む。一方、カウンタｉが組み合わせ展開対象属性名リストに含まれる属性名数よりも多い場合（ステップＳ−１０４Ｓ−０３の“Ｎｏ”）、組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−０７に進む。
組み合わせ展開処理部１０４は、組み合わせ展開対象属性名リストからｉ番目の属性名を取り出す（ステップＳ−１０４Ｓ−０４）。そして組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−０５に進む。
組み合わせ展開処理部１０４は、ステップＳ−１０４Ｓ−０４において取得された属性名に対応する組み合わせ展開対象属性値リストを組み合わせ展開対象属性値リスト記憶部１４１から取得する（ステップＳ−１０４Ｓ−０５）。そして組み合わせ展開処理部１０４の処理はステップＳ−１０４Ｓ−０６に進む。
組み合わせ展開処理部１０４は、カウンタｉを１追加する（ステップＳ−１０４Ｓ−０６）。そして組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−０３に進む。
組み合わせ展開処理部１０４は、ステップＳ−１０４Ｓ−０５において取得された組み合わせ展開対象属性値リストに含まれる属性値の取り得る組み合わせである属性値の組み合わせリストを生成する（ステップＳ−１０４Ｓ−０７）。そして組み合わせ展開処理部１０４の処理はステップＳ−１０４Ｓ−０８に進む。属性値リストがない場合、属性値の組み合わせリストは空である。
組み合わせ展開処理部１０４は、カウンタｊを０に設定する（ステップＳ−１０４Ｓ−０８）。そして組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−０９に進む。
組み合わせ展開処理部１０４は、カウンタｊと属性値の組み合わせリストに含まれる値の取り得る組の数を比較する（ステップＳ−１０４Ｓ−０９）。カウンタｊが属性値の組み合わせリストに含まれる値の組の数よりも少ない場合（ステップＳ−１０４Ｓ−０９の“Ｙｅｓ”）、組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−１０に進む。一方、カウンタｊが属性値の組み合わせリストに含まれる値の組の数よりも多い場合（ステップＳ−１０４Ｓ−０９の“Ｎｏ”）、組み合わせ展開処理部１０４は、組み合わせ展開処理を終了する。
組み合わせ展開処理部１０４は、属性値の組み合わせリストからｊ番目の属性値の組を取得する（ステップＳ−１０４Ｓ−１０）。そして、組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−１１に進む。
組み合わせ展開処理部１０４は、属性値の組とそれらに対応する属性名とを属性情報として登録情報に結合することによって新たな登録情報を生成する。そして組み合わせ展開処理部１０４は生成した登録情報を、「組み合わせ展開処理後の登録情報」の一つに追加する（ステップＳ−１０４Ｓ−１１）。そして組み合わせ展開処理部１０４の処理は、ステップＳ−１０４Ｓ−１２に進む。
組み合わせ展開処理部１０４は、カウンタｊを１追加する（ステップＳ−１０４Ｓ−１２）。そして組み合わせ展開処理部１０４の処理はステップＳ−１０４Ｓ−０９に進む。
以上が組み合わせ展開処理部１０４の動作である。
すなわち組み合わせ展開処理部１０４はステップＳ−１０４Ｓ−０９において処理を終了した際に、ステップＳ−１０４Ｓ−１１において追加された組み合わせ展開処理後の登録情報を情報登録部１０５に渡す。そして情報検索システム１０の処理は、ステップＳ−１０５Ｓに進む。
情報登録部１０５は、１つ以上の登録情報から未登録の登録情報を１つ抽出する（ステップＳ−１０５Ｓ）。そして情報検索システム１０の処理は、ステップＳ−１０６Ｓに進む。
情報登録部１０５は、ステップＳ−１０５Ｓにおいて抽出された登録情報から属性情報を抽出する。そして情報登録部１０５は、属性情報を特定の順序に並べる（ステップＳ−１０６Ｓ）。そして情報検索システム１０の処理は、ステップＳ−１０７Ｓに進む。特定の順序とは、属性情報に含まれる属性名に基づいて定まる順序であってもよい。また特定の順序とは、属性情報に含まれる属性名のアルファベット順もしくは五十音順もしくは数値の昇順もしくは数値の降順であってもよい。例えば、情報登録部１０５が｛年齢＝２０，性別＝Ｆ，場所＝東京｝という登録情報に対して、五十音順に属性名をソートすると、ソートされた属性情報は、｛性別＝Ｆ，年齢＝２０，場所＝東京｝となる。
情報登録部１０５は、登録情報から属性情報を抽出し、属性情報を連結した情報に基づいて登録キーを生成する（ステップＳ−１０７Ｓ）。そして情報検索システム１０の処理はステップＳ−１０８Ｓに進む。例えば、情報登録部１０５は、｛性別＝Ｆ，年齢＝２０，場所＝東京｝という登録情報に対して、｛性別Ｆ年齢２０場所東京｝という登録キーを生成してもよい。
情報登録部１０５は、ステップＳ−１０７Ｓにおいて生成された登録キーおよび登録情報を含む登録要求を情報記憶部１０６に渡す。情報記憶部１０６は受け付けた登録要求に含まれる登録キーに基づき登録情報を記憶する（ステップＳ−１０８Ｓ）。そして情報検索システム１０の処理はステップＳ−１０９Ｓに進む。
情報登録部１０５は、すべての登録情報に対して登録処理を行ったか否か判定する（ステップＳ−１０９Ｓ）。すべての登録情報に対して登録処理が行われた場合（ステップＳ−１０９Ｓの“Ｙｅｓ”）、情報処理システム１０は情報登録フローを終了する。一方、すべての登録情報に対して登録処理を行われていない場合（ステップＳ−１０９Ｓの“Ｎｏ”）、情報検索システム１０の処理は、ステップＳ−１０５Ｓに進む。
以上のステップによる処理が行われることにより、組み合わせ展開処理によって生成された登録キーに基づいて登録情報が情報記憶部１０６に記憶される。
図２３は、第一の実施の形態における情報検索システム１０の動作において、情報評価フローを説明する図である。
評価情報受信部１０７は、１つ以上の属性情報を含む評価情報を受け取る（ステップＳ−１０１Ｅ）。評価情報受信部１０７は、べき集合展開処理部１０８に評価情報を渡す。そして、情報検索システム１０の処理は、ステップＳ−１０２Ｅに進む。評価情報は１つ以上の属性情報を含んでおり、属性情報は、属性名と属性値との組を有する。
べき集合展開処理部１０８は、組み合わせ展開対象属性名指定リスト記憶部１０２に記憶されている組み合わせ展開対象属性名指定リストを取得する（ステップＳ−１０２Ｅ）。そして情報検索システム１０の処理は、ステップＳ−１０３Ｅに進む。
べき集合展開処理部１０８は、評価情報から組み合わせ展開対象属性名指定リストにおいて指定される属性名に対応する属性情報を除いた属性情報のリストであるべき集合展開対象属性情報リストを生成する。またべき集合展開処理部１０８は、評価情報から組み合わせ展開対象属性名指定リストにおいて指定される属性名に対応する属性情報を抽出した属性情報のリストである非べき集合展開対象属性情報リストを生成する（ステップＳ−１０３Ｅ）。そして情報検索システム１０の処理は、ステップＳ−１０４Ｅに進む。
べき集合展開処理部１０８は、べき集合展開対象属性情報リストに含まれる属性情報を要素とする集合のべき集合を求める。べき集合展開処理部１０８は、べき集合の各要素をリストの要素とするべき集合展開対象展開リストを生成する（ステップＳ−１０４Ｅ）。そして情報検索システム１０の処理は、ステップＳ−１０５Ｅに進む。
べき集合展開処理部１０８はカウンタｉを０に設定する（ステップＳ−１０５Ｅ）。そしてべき集合展開処理部１０８の処理はステップＳ−１０６Ｅに進む。
べき集合展開処理部１０８は、カウンタｉとべき集合展開対象展開リストに含まれる要素数とを比較する（ステップＳ−１０６Ｅ）。カウンタｉがべき集合展開対象展開リストの要素数よりも少ない場合（ステップＳ−１０６Ｅの“Ｙｅｓ”）、情報検索システム１０の処理は、ステップＳ−１０７Ｅに進む。一方、カウンタｉがべき集合展開対象展開リストの要素数よりも多い場合（ステップＳ−１０６Ｅの“Ｎｏ”）、情報検索システム１０の処理は、ステップＳ−１１１Ｅに進む。
べき集合展開処理部１０８は、べき集合展開対象展開リストのｉ番目の要素を抽出する（ステップＳ−１０７Ｅ）。そして情報検索システム１０の処理は、ステップＳ−１０８Ｅに進む。
べき集合展開処理部１０８は、ステップＳ−１０７Ｅにおいて抽出された要素に、非べき集合展開対象属性情報リストに含まれる属性情報を合成する（ステップＳ−１０８Ｅ）。そして情報検索システム１０の処理は、ステップＳ−１０９Ｅに進む。
べき集合展開処理部１０８は、ステップＳ−１０８Ｅにおいて合成された要素を、「べき集合展開処理後の評価情報」の一つに追加する（ステップＳ−１０９Ｅ）。そして情報検索システム１０の処理は、ステップＳ−１１０Ｅに進む。
べき集合展開処理部１０８は、カウンタｉを１追加する（ステップＳ−１１０Ｅ）。そして情報検索システム１０の処理は、ステップＳ−１０６Ｅに進む。
情報検索部１０９は、１つ以上の評価情報から未検索の評価情報を１つ抽出する（ステップＳ−１１１Ｅ）。そして情報検索システム１０の処理はステップＳ−１１２Ｅに進む。
情報検索部１０９は、ステップＳ−１１１Ｅにおいて抽出された評価情報から属性情報を抽出し、属性情報を特定の順序に並べる（ステップＳ−１１２Ｅ）。そして情報検索システム１０の処理は、ステップＳ−１１３Ｅに進む。特定の順序とは、属性情報に含まれる属性名に基づいて定まる順序であってもよい。また特定の順序とは、属性情報に含まれる属性名のアルファベット順もしくは五十音順もしくは数値の昇順もしくは数値の降順であってもよい。例えば、情報検索部１０９が、｛年齢＝２０，性別＝Ｆ，場所＝東京｝という評価情報に対して、五十音順に属性名をソートすると、ソートされた属性情報は、｛性別＝Ｆ，年齢＝２０，場所＝東京｝となる。
情報検索部１０９は、評価情報から属性情報を抽出し、属性情報を連結した情報に基づいて検索キーを生成する（ステップＳ−１１３Ｅ）。そして情報検索システム１０の処理は、ステップＳ−１１４Ｅに進む。例えば、情報検索部１０９は、｛性別＝Ｆ，年齢＝２０，場所＝東京｝という評価情報に対して、｛性別Ｆ年齢２０場所東京｝という検索キーを生成してもよい。
情報検索部１０９は、ステップＳ−１１３Ｅにおいて生成された検索キーを含む検索要求を情報記憶部１０６に渡す。情報記憶部１０６は、検索キーに一致する登録キーに対応付けられて登録されている登録情報が存在する場合に、その登録情報を出力する（ステップＳ−１１４Ｅ）。検索要求処理を終えた情報処理システム１０の処理は、ステップＳ−１１５Ｅに進む。
情報検索部１０９は、すべての評価情報に対して検索処理を行ったか否かを判定する（ステップＳ−１１５Ｅ）。すべての評価情報に対して検索処理が行われた場合（ステップＳ−１１５Ｅの“Ｙｅｓ”）、情報検索システム１０は情報検索フローを終了する。一方、すべての評価情報に対して検索処理が行われていない場合（ステップＳ−１１５Ｅの“Ｎｏ”）、情報検索システム１０の処理はステップＳ−１１１Ｅに進む。
以上のステップによる処理が行われることにより、情報検索システム１０は、ワイルドカードを含む登録情報の登録がされる場合にも、べき集合展開処理によって生成された検索キーと一致する登録キーに対応付けられて登録された登録情報を情報記憶部１０６から取得することができる。
第一の実施の形態における情報検索システム１０は、組み合わせ展開判定部１０３と、組み合わせ展開処理部１０４と、情報登録部１０５と、べき集合展開処理部１０８と、情報検索部１０９とを備える。
組み合わせ展開判定部１０３は、組み合わせ展開処理を行う対象の属性情報を示すリスト（組み合わせ展開対象属性名指定リスト）を取得する。そして組み合わせ展開判定部１０３は、情報検索システム１０が扱う属性情報であるが受け取った登録情報に含まれていない属性情報を、組み合わせ展開処理の対象と判定する。組み合わせ展開判定部１０３は、組み合わせ展開処理の対象と判定された属性情報が有する属性名を示す組み合わせ展開対象属性名リストを組み合わせ展開処理部１０４に渡す。
組み合わせ展開処理部１０４は、組み合わせ展開判定部１０３が生成した組み合わせ展開対象属性名リストに含まれる属性名にそれぞれ対応する属性値の組み合わせ展開処理を行う。
組み合わせ展開処理において、組み合わせ展開処理部１０４は、組み合わせ展開処理の対象と判定された属性情報が有する属性値のそれぞれのすべての組み合わせを生成する。そして組み合わせ展開処理部１０４は、生成された組み合わせのそれぞれと、組み合わせ展開処理の対象と判定されなかった登録情報に含まれる属性情報とを結合することによって組み合わせ展開処理後の登録情報を生成する。情報登録部１０５は、その登録情報に基づいて登録キーを生成する。
例えば、具体例として下記の条件を仮定する。第一の条件は、「情報検索システム１０が属性情報として４つの属性名、｛位置、性別、年齢、体調｝のいずれかを含む属性情報を扱う」という条件である。第二の条件は、「登録情報として２つの属性情報を含む｛位置＝新宿，年齢＝２０｝が情報検索システム１０に入力される」という条件である。第三の条件は、「組み合わせ展開処理の対象が２つの属性名、性別と体調とのいずれかを有する属性情報である」という条件である。第四の条件は、「性別という属性名を有する属性情報の取り得る属性値が｛男，女｝、体調という属性名の有する属性情報の取り得る属性値が｛良い、悪い｝である」という条件である。以下の具体例では、ある属性名Ｘを有する属性情報のことが、単に属性名Ｘで代用して表記される。
これらの条件が仮定された場合、組み合わせ展開処理部１０４は、組み合わせ展開処理の対象と判定された性別と体調との取り得る属性値のすべての組み合わせ｛｛性別＝男，体調＝良い｝，｛性別＝男，体調＝悪い｝，｛性別＝女，体調＝良い｝，｛性別＝女，体調＝悪い｝｝を生成する。そして組み合わせ展開処理部１０４は、組み合わせ展開処理の対象と判定されなかった属性情報である位置と年齢とのそれぞれである｛位置＝新宿｝および｛年齢＝２０｝を前述のすべての組み合わせのそれぞれに結合する。つまり組み合わせ展開処理部１０４は、この結合の処理によって、登録キー｛位置＝新宿，性別＝男，年齢＝２０，体調＝良い｝，｛位置＝新宿，性別＝男，年齢＝２０，体調＝悪い｝，｛位置＝新宿，性別＝女，年齢＝２０，体調＝良い｝および｛位置＝新宿，性別＝女，年齢＝２０，体調＝悪い｝を生成する。
べき集合展開処理部１０８は、組み合わせ展開処理の対象となっていない属性情報をべき集合展開処理の対象と特定する。そしてべき集合展開処理部１０８は、べき集合展開処理の対象となった属性情報に対して、その属性情報を要素とする集合のべき集合を生成する。
情報検索部１０９は、べき集合展開処理の対象とならなかった属性情報と生成されたべき集合の要素のそれぞれと結合させることで検索キーを生成する。
例えば、評価情報として｛位置＝新宿，性別＝男，年齢＝２０，体調＝悪い｝が情報検索システム１０に入力され、組み合わせ展開処理の対象が性別と体調である場合を仮定する。この場合、情報検索部１０９は、組み合わせ展開処理を行っていない属性情報｛位置＝新宿，年齢＝２０｝に対して、べき集合｛｛φ｝，｛位置＝新宿｝，｛年齢＝２０｝，｛位置＝新宿，年齢＝２０｝｝を生成する。そして情報検索部１０９は、組み合わせ展開処理を行っている属性情報｛性別＝男，体調＝悪い｝を前述のべき集合の要素のそれぞれに結合させた検索キー｛性別＝男，体調＝悪い｝，｛位置＝新宿，性別＝男，体調＝悪い｝，｛性別＝男，年齢＝２０，体調＝悪い｝および｛位置＝新宿，性別＝男，年齢＝２０，体調＝悪い｝を生成する。
第一の実施の形態における情報検索システム１０は、組み合わせ展開を行う属性情報を示すリストの内容を適宜調整することによって、計算量と使用メモリ量のバランスを調整することができる。組み合わせ展開を行う属性が増やされれば、使用メモリ量は増加するが、べき集合展開処理部１０８の計算量は低下する。また、組み合わせ展開を行う属性が減らされれば、使用メモリ量は減少するが、べき集合展開処理部１０８の計算量は増加する。
また、組み合わせ展開判定部１０３は、取り得る属性値の数が少ない属性情報に対してのみ組み合わせ展開を行う判定をすることで、登録キーの増加を防ぎ、すべての属性情報を組み合わせ展開する場合に比較してメモリ量を抑えることができる。
本発明の関連技術において、すべての属性情報が組み合わせ展開される場合の登録キーの記憶のために必要なメモリ量は、属性情報の数をｎ、各属性情報の属性値の種類をＸｎ、登録キーのサイズをＫとすると、［数１］のように表される。
【数１】
2012127986.tif 000003
［数１］は、各属性情報の属性値の種類Ｘｎに１つでも大きな数値が含まれている場合に、メモリ量が非常に大きくなることを示している。
よって、本発明の関連技術は、情報評価フローでの計算量が多いという問題がある。特に、属性数が増えた場合に計算量の増加は顕著となる。
情報評価フローにおいてべき集合の作成が行われる場合、属性数に応じて計算量が大きく上昇し、システムのスループットの低下が起こる可能性がある。
一方、第一の実施の形態において、組み合わせ展開判定部１０３は、取り得る属性値の数が所定数を示すＴ以下の属性情報に対してのみ組み合わせ展開を行う判定をし、組み合わせ展開を行う属性情報の数がａとなる場合を仮定する。この場合、情報検索システム１０は、登録キーの記憶に必要なメモリ量を［数２］に示される値に抑えることができ、メモリ量を減らすことができる。
【数２】
2012127986.tif 000004
また、べき集合展開処理部１０８は、組み合わせ展開を行っている属性情報を、べき集合生成処理の対象となる要素から削除する。よって、情報検索システム１０は、すべての属性情報をべき集合に展開する場合に比較して、計算量を低減できる。
本発明の関連技術において、システムが、組み合わせ展開処理を考慮せず、すべての属性情報をべき集合に展開する場合を仮定する。この場合、属性情報の数をｎと仮定すると、べき集合生成処理の計算量のオーダーは、［数３］で表される。
【数３】
2012127986.tif 000005
［数３］は、属性数に対して計算量が指数オーダーで増加することを意味しており、関連技術における手法は、属性数の増加に対して非常に弱い手法であることを示している。
また、本発明の関連技術において、情報登録フローにおいて登録情報に含まれる属性情報が有する属性値の取り得る値の組み合わせのすべてが生成され、それらの情報の登録が行われる場合を仮定する。すると関連技術における手法は、計算量が少なくなるが、現実的なメモリ量で処理できない。
一方、第一の実施の形態における情報検索システム１０の場合、組み合わせ展開を行っている属性情報の数をｍと仮定すると、べき集合生成処理の計算量のオーダーは、［数４］で表される。
【数４】
2012127986.tif 000006
すなわち、本発明の関連技術は、計算量が多くなりすぎてしまうか、使用メモリ量が大きくなりすぎてしまうかのどちらかの問題を生じてしまう。
第一の実施の形態における情報検索システム１０は、実装可能なメモリ量で可能な限り計算量を小さく抑えるために、計算量と使用メモリ量のバランスを調整することができる。
つまり、第一の実施の形態における情報検索システム１０は、属性名と属性値との組を有する属性情報を一以上含む登録情報の検索において、少量のメモリで高速な検索を実現できる。その理由は、以下のとおりである。つまり情報検索システム１０は、登録情報に含まれる属性情報のうち、所定の（例えば、取り得る属性値の種類の数が少ない）属性情報に対して、組み合わせ展開処理を行う。これによって情報検索システム１０は、メモリの使用効率の良い属性情報を選別して、事前に検索高速化のための登録キーの生成を行うことができるからである。
また、第一の実施の形態における情報検索システム１０は、属性名と属性値の組を有する属性情報を一以上含む登録情報の検索において、情報評価フローにおける計算量を低減できることができる。その理由は、以下のとおりである。つまり情報検索システム１０は、組み合わせ展開処理を行っている属性情報に対して、べき集合生成処理を省略できるからである。
［第二の実施の形態］
次に、本発明の第二の実施の形態について図面を参照して詳細に説明する。
図２４は、本発明の第二の実施の形態における情報検索システム２０の構成を示すブロック図である。
図２４を参照すると、情報検索システム２０は、登録情報受信部１０１と、組み合わせ展開対象属性名指定リスト記憶部１０２と、組み合わせ展開判定部１０３と、組み合わせ展開処理部１０４と、情報登録部１０５と、情報記憶部１０６と、評価情報受信部１０７と、べき集合展開処理部１０８と、情報検索部１０９と、組み合わせ展開対象属性名指定リスト生成部２１０とを備える。
第二の実施の形態における情報検索システム２０は、組み合わせ展開対象属性名指定リスト生成部２１０が、所定の閾値を用いることにより、情報検索システム２０が消費するメモリリソース（メモリ量）と処理速度（計算量）の制御を実現する。
＝＝＝組み合わせ展開対象属性名指定リスト生成部２１０＝＝＝
組み合わせ展開対象属性名指定リスト生成部２１０は、属性値数リストと閾値とに基づいて組み合わせ展開対象属性名指定リストを生成し、組み合わせ展開対象属性名指定リスト記憶部１０２に記憶する。
属性値数リストとは、情報検索システム２０で扱う各属性情報の取り得る属性値の種類数を含む情報である。閾値は、各属性情報の属性値の種類の数に基づいて、組み合わせ展開処理を行うか否かを判定するための値である。
図２５は、組み合わせ展開対象属性名指定リスト生成部２１０が備える構成の一例を示す図である。図２５を参照すると、組み合わせ展開対象属性名指定リスト生成部２１０は、属性値数リスト受信部２１１と閾値受信部２１２と組み合わせ展開対象属性決定部２１３とを備える。
属性値数リスト受信部２１１は、情報検索システム２０で扱われる、例えば図２６で示される各属性情報の取り得る属性値の種類の数を示す属性値数を含む属性値数リストを受信する。属性値数リストは、属性名とその属性名で示される属性情報の取り得る属性値の種類の数との組を要素として含むリストである。
閾値受信部２１２は、各属性情報の属性値の種類の数に基づいて組み合わせ展開処理を行うか否か判定するための情報である閾値を受信する。
閾値として様々な値が設定されてよい。例えば、閾値は、展開対象とする属性情報が有する属性値の種類の数の最大値であってもよい。この場合、組み合わせ展開対象属性決定部２１３は、前述の属性値数リストに含まれる要素のうち取り得る属性値の種類がその閾値以下である属性情報に対応する属性名を、組み合わせ展開処理を実行する属性情報に対応する属性名として組み合わせ展開対象属性名指定リストに追加する。そして組み合わせ展開対象属性決定部２１３は、属性名が追加された組み合わせ展開対象属性名指定リストを組み合わせ展開対象属性名指定リスト記憶部１０２に記憶する。
また例えば、閾値は、べき集合展開処理が行われる属性情報の上限数であってもよい。この場合、組み合わせ展開対象属性決定部２１３は、前述の属性値数リストに含まれる要素のうち、属性値の種類の数が多い属性情報から閾値が示す個数分だけ除外する。そして組み合わせ展開対象属性決定部２１３は、残りの属性情報を、組み合わせ展開処理を実行する属性情報として、各属性情報に対応する属性名を組み合わせ展開対象属性名指定リストに追加する。
この閾値に基づいて、組み合わせ展開対象属性決定部２１３は、前述の属性値数リストに含まれる要素のうち、小さい値に対応付けられている属性名から順に高々閾値が示す個数まで、属性名を前記指定リストに追加してもよい。
また例えば、閾値は、登録情報の記憶の際に使用されるメモリサイズの上限であってもよい。この場合、組み合わせ展開対象属性決定部２１３は、メモリ使用量が閾値を超えるまで、前述の属性値数リストの要素のうち属性値の種類の数の少ないほうから属性名を組み合わせ展開対象属性名指定リストに追加してもよい。
以降、第二の実施の形態における説明では、閾値は、展開対象とする属性情報が有する属性値の種類の数の最大値であると仮定して説明される。
次に、第二の実施の形態における情報検索システム２０の動作について図面を参照して詳細に説明する。図２７は、第二の実施の形態における組み合わせ展開対象属性名指定リスト生成部２１０の動作の概要を示すフローチャートである。
組み合わせ展開対象属性名指定リスト生成部２１０は、閾値を受信する（ステップＳ−２０１）。そして組み合わせ展開対象属性名指定リスト生成部２１０の処理は、ステップＳ−２０２に進む。
組み合わせ展開対象属性名指定リスト生成部２１０は、属性値数リストを受信する（ステップＳ−２０２）。そして組み合わせ展開対象属性名指定リスト生成部２１０の処理は、ステップＳ−２０３に進む。
組み合わせ展開対象属性名指定リスト生成部２１０は、属性値数リストから未処理の要素を１つ抽出する（ステップＳ−２０３）。そして組み合わせ展開対象属性名指定リスト生成部２１０の処理は、ステップＳ−２０４に進む。
組み合わせ展開対象属性名指定リスト生成部２１０は、ステップＳ−２０３において抽出された要素の属性値数とステップＳ−２０１において取得された閾値とを比較する（ステップＳ−２０４）。属性値数が閾値以下の場合（ステップＳ−２０４の“Ｙｅｓ”）、組み合わせ展開対象属性名指定リスト生成部２１０の処理は、ステップＳ−２０５に進む。一方、属性値数が閾値よりも大きい場合（ステップＳ−２０４の“Ｎｏ”）、組み合わせ展開対象属性名指定リスト生成部２１０の処理は、ステップＳ−２０６に進む。
組み合わせ展開対象属性名指定リスト生成部２１０は、ステップＳ−２０３において抽出された要素の属性名を抽出し、組み合わせ展開対象属性名指定リストに追加する（ステップＳ−２０５）。そして組み合わせ展開対象属性名指定リスト生成部２１０の処理は、ステップＳ−２０６に進む。
組み合わせ展開対象属性名指定リスト生成部２１０は、属性値数リストのすべての要素に対して処理を行ったか否かを判定する（ステップＳ−２０６）。属性値数リストの全ての要素に対して処理が行われた場合（ステップＳ−２０６の“Ｙｅｓ”）、組み合わせ展開対象属性名指定リスト生成部２１０の処理は、ステップＳ−２０７に進む。一方、属性値数リストの全ての要素に対して処理が行われていない場合（ステップＳ−２０６の“Ｎｏ”）、組み合わせ展開対象属性名指定リスト生成部２１０の処理は、ステップＳ−２０３に進む。
組み合わせ展開対象属性名指定リスト生成部２１０は、ステップＳ−２０５において生成された組み合わせ展開対象属性名指定リストを組み合わせ展開対象属性名指定リスト記憶部１０２に記憶する（ステップＳ−２０７）。そして組み合わせ展開対象属性名指定リスト生成部２１０の処理は、終了する。
以上のステップが行われることにより、情報検索システム２０は、組み合わせ展開処理のための閾値に基づいて、組み合わせ展開対象の属性情報の指定が可能となる。本発明の各実施の形態における情報検索システムでは、属性の取り得る属性値の種類が多いものより少ないものが組み合わせ展開対象であるほうが、メモリの効率面で有利である。例えば、１０個の属性値を取る属性が組み合わせ展開対象であった場合、登録情報の記憶のために１０個のエントリが必要になる。一方、２個の属性値を取る属性が組み合わせ展開対象であった場合、登録情報の記憶のためには２個のエントリで済む。
第二の実施の形態における情報検索システム２０は、第一の実施の形態における情報検索システム１０と同様の構成を含む。したがって、第二の実施の形態における情報検索システム２０は、第一の実施の形態における情報検索システム１０と同様の効果を奏する。
さらに第二の実施の形態における情報検索システム２０は、閾値を設定することでシステムのリソースに応じた最適の組み合わせ展開対象属性名指定リストの生成が実現できる。
特に、組み合わせ展開判定部１０３は、取り得る属性値の数が少ない属性情報に対してのみ組み合わせ展開を行う判定をすることができる。よって情報検索システム２０は、登録キーの増加を防ぎ、すべての属性情報を組み合わせ展開する場合に比較してメモリ量を抑えることができる。
［第三の実施の形態］
図２８は、第三の実施の形態における情報検索システム３０の構成を示すブロック図である。図２８を参照すると、情報検索システム３０は、第一の展開処理部３０１と第二の展開処理部３０２とを備える。
＝＝＝第一の展開処理部３０１＝＝＝
第一の展開処理部３０１は、属性名と属性値とを有する属性情報を一つ以上含む登録情報を図示しない外部装置または情報検索システム３０が備える機能手段から受け取る。そして第一の展開処理部３０１は、所定の属性名のそれぞれに対して、各属性名を前述の登録情報に含まれる属性情報が有するか否か判定する。第一の展開処理部３０１は、前述の判定結果に応じてそれぞれ異なる処理である、第一の情報処理を行うことによって、前述の登録情報に対応する情報である登録キーを生成する。
第一の展開処理部３０１は、所定の属性名を示す情報をあらかじめ記憶してもよいし、図示しない外部装置または情報検索システム３０が備える機能手段から所定の属性名を示す情報を受け取り、受け取った情報に基づいて所定の属性名を特定してもよい。前述の情報検索システム３０が備える機能手段は、第一の実施の形態における組み合わせ展開対象属性名指定リスト記憶部１０２であってもよい。そして前述の所定の属性名を示す情報は、第一の実施の形態における、組み合わせ展開対象属性名指定リストであってもよい。
第一の情報処理とは、例えば所定の属性名を登録情報に含まれる属性情報が有していない場合に、その属性名に対応する属性値が取り得る値がそれぞれ登録情報に追加される、という処理などが挙げられる。これは例示であって第一の情報処理は前述の処理に限られない。
＝＝＝第二の展開処理部３０２＝＝＝
第二の展開処理部３０２は、属性情報を一つ以上含む評価情報を受け取る。そして第二の展開処理部３０２は、受け取った評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じてそれぞれ異なる処理である、第二の情報処理を行うことによって検索キーを生成する。検索キーとは、第一の展開処理部３０１が生成した登録キーとの比較により、その登録キーに対応する登録情報を検索するためのキーである。
第二の展開処理部３０２は、所定の属性名を示す情報をあらかじめ記憶してもよいし、図示しない外部装置または情報検索システム３０が備える機能手段から所定の属性名を示す情報を受け取り、受け取った情報に基づいて所定の属性名を特定してもよい。前述の情報検索システム３０が備える機能手段は、第一の実施の形態における組み合わせ展開対象属性名指定リスト記憶部１０２であってもよい。そして前述の所定の属性名を示す情報は、第一の実施の形態における、組み合わせ展開対象属性名指定リストであってもよい。
第二の情報処理とは、例えば評価情報に含まれる属性情報が有する属性名が所定の属性名を有していない場合に、その属性情報の部分集合を要素とするべき集合が生成され、そのべき集合の各要素がそれぞれ評価情報に追加される、という処理などが挙げられる。これは例示であって、第二の情報処理は前述の処理に限られない。
図２９は、本発明の第三の実施の形態における情報検索システム３０とその周辺装置のハードウェア構成を示す図である。図２９に示されるように、情報検索システム３０は、ＣＰＵ３９１、ネットワーク接続用の通信Ｉ／Ｆ３９２（通信インターフェース３９２）、メモリ３９３、およびプログラムを格納するハードディスク等の記憶装置３９４を含む。また、情報検索システム３０は、バス３９７を介して入力装置３９５および出力装置３９６に接続されている。
ＣＰＵ３９１は、オペレーティングシステムを動作させて本発明の第三の実施の形態に係る情報検索システム３０の全体を制御する。また、ＣＰＵ３９１は、例えばドライブ装置などに装着された記録媒体３９８からメモリ３９３にプログラムやデータを読み出し、これにしたがって第三の実施の形態における第一の展開処理部３０１および第二の展開処理部３０２として各種の処理を実行する。
記憶装置３９４は、例えば光ディスク、フレキシブルディスク、磁気光ディスク、ハードディスク、または半導体メモリ等であって、コンピュータプログラムをコンピュータ読み取り可能に記録する。また、コンピュータプログラムは、通信網に接続されている図示しない外部コンピュータからダウンロードされてもよい。
入力装置３９５は、例えばマウスやキーボード、内蔵のキーボタンなどで実現され、入力操作に用いられる。入力装置３９５は、マウスやキーボード、内蔵のキーボタンに限らず、例えばタッチパネル、加速度計、ジャイロセンサ、カメラなどでもよい。
出力装置３９６は、例えばディスプレイで実現され、出力を確認するために用いられる。
なお、第三の実施の形態の説明において利用されるブロック図（図２８）には、ハードウェア単位の構成ではなく、機能単位のブロックが示されている。これらの機能ブロックは図２９に示すハードウェア構成によって実現される。ただし、情報検索システム３０が備える各部の実現手段は特に限定されない。すなわち、情報検索システム３０は、物理的に結合した一つの装置により実現されてもよいし、物理的に分離した二つ以上の装置を有線または無線で接続し、これら複数の装置により実現されてもよい。
また、ＣＰＵ３９１は、記憶装置３９４に記録されているコンピュータプログラムを読み込み、そのプログラムにしたがって、第一の展開処理部３０１および第二の展開処理部３０２として動作してもよい。
また、前述のプログラムのコードを記録した記録媒体（または記憶媒体）が、情報検索システム３０に供給され、情報検索システム３０が記録媒体に格納されたプログラムのコードを読み出し実行してもよい。すなわち、本発明は、第三の実施の形態における情報検索システム３０が実行するためのソフトウェア（情報処理プログラム）を一時的に記憶するまたは非一時的に記憶する記録媒体３９８も含む。
図３０は、第三の実施の形態における情報検索システム３０の動作の概要を示すフローチャートである。
第一の展開処理部３０１は、登録情報を受け取る（ステップＳ−３０１）。そして第一の展開処理部３０１は、所定の属性名のある一つを選択し、その属性名を前述の登録情報に含まれる属性情報が有するか否か判定する（ステップＳ−３０２）。第一の展開処理部３０１は、ステップＳ−３０２における判定結果に基づいてそれぞれ異なる第一の情報処理を行う（ステップＳ−３０３）。
第一の展開処理部３０１は、所定の属性名のすべてが選択されているか否か判定する（ステップＳ−３０４）。すべての属性名が選択されている場合（ステップＳ−３０４の“Ｙｅｓ”）、情報検索システム３０の処理はステップＳ−３０５に進む。一方、すべての属性名が選択されていない場合（ステップＳ−３０４の“Ｎｏ”）、情報検索システム３０の処理は、ステップＳ−３０２に進む。
第二の展開処理部３０２は、評価情報を受け取る（ステップＳ−３０５）。第二の展開処理部３０２は、受け取った評価情報に含まれる属性情報の一つを選択し、その属性情報が所定の属性名を有するか否か判定する（ステップＳ−３０６）。第二の展開処理部３０２は、ステップＳ−３０６における判定結果に基づいてそれぞれ異なる第二の情報処理を行う（ステップＳ−３０７）。
第二の展開処理部３０２は、評価情報に含まれるすべての属性情報が選択されているか否か判定する（ステップＳ−３０８）。すべての属性情報が選択されている場合（ステップＳ−３０８の“Ｙｅｓ”）、情報検索システム３０の処理は終了する。一方、すべての属性名が選択されていない場合（ステップＳ−３０８の“Ｎｏ”）、情報検索システム３０の処理は、ステップＳ−３０６に進む。
第三の実施の形態における情報検索システム３０は、登録情報の登録要求を受け、所定の属性名のそれぞれに対して、各属性名を前述の登録情報に含まれる属性情報が有するか否か判定する。そして情報検索システム３０は、前述の判定結果に応じて異なる第一の情報処理を行うことによって、前述の登録情報に対応する登録キーを生成する。また情報検索システム３０は、検索要求として評価情報を受け取り、その評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否か判定する。そして情報検索システム３０は、前述の判定結果に応じて異なる第二の情報処理を行うことによって、前述の評価情報に対応する検索キーを生成する。そして情報検索システム３０は、その検索キーと一致する登録キーに対応する登録情報を検索することができる。
この構成により第三の実施の形態における情報検索システム３０は、属性毎に行う処理の負荷が大きい場合でも、適切な計算量またはメモリ量でデータの探索処理を実行できる。
本発明の効果の一例は、属性毎に行う処理の負荷が大きい場合でも、適切な計算量またはメモリ量でデータの探索処理を実行できることである。
本発明の各実施の形態における各構成要素は、その機能をハードウェア的に実現することはもちろん、コンピュータとプログラムとで実現することができる。プログラムは、磁気ディスクや半導体メモリなどのコンピュータ可読記録媒体に記録されて提供され、コンピュータの立ち上げ時などにコンピュータに読み取られる。この読み取られたプログラムは、そのコンピュータの動作を制御することにより、そのコンピュータを前述した各実施の形態における構成要素として機能させる。
登録情報受信部１０１と、組み合わせ展開判定部１０３と、組み合わせ展開処理部１０４と、情報登録部１０５と、評価情報受信部１０７と、べき集合展開処理部１０８と、情報検索部１０９と、組み合わせ展開対象属性名指定リスト生成部２１０は、例えば、プログラムを記憶する記録媒体からメモリに読み込まれた、各部の機能を実現するための専用のプログラムと、そのプログラムを実行するプロセッサにより実現することができる。また、組み合わせ展開対象属性名指定リスト記憶部１０２と、情報記憶部１０６は、コンピュータが含むメモリやハードディスク装置により実現することができる。あるいは、登録情報受信部１０１と、組み合わせ展開対象属性名指定リスト記憶部１０２と、組み合わせ展開判定部１０３と、組み合わせ展開処理部１０４と、情報登録部１０５と、情報記憶部１０６と、評価情報受信部１０７と、べき集合展開処理部１０８と、情報検索部１０９と、組み合わせ展開対象属性名指定リスト生成部２１０の一部又は全部を、各部の機能を実現する専用の回路によって実現することもできる。
上記の各実施の形態の一部または全部は、以下の付記のようにも記載されうるが、以下には限られない。
（付記１）
属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名を当該登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成する第一の展開処理手段と、
属性情報を一つ以上含む評価情報を受け取り、当該評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較により当該登録キーに対応する登録情報を検索するための検索キーを生成する第二の展開処理手段と、
を備える情報検索システム。
（付記２）
所定の属性名を示す指定リストを記憶する指定リスト記憶手段を備え、
前記第一の展開処理手段は、前記指定リストで示される属性名のそれぞれに対して、各属性名を前記登録情報に含まれる属性情報が有するか否かに応じて異なる、前記第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成し、
前記第二の展開処理手段は、前記評価情報に含まれる属性情報のそれぞれに対して、前記指定リストが示す属性名を有するか否かに応じて異なる、前記第二の情報処理を行うことによって、前記検索キーを生成する、付記１に記載の情報検索システム。
（付記３）
前記第一の展開処理手段は、前記登録情報に含まれる属性名と前記指定リストに含まれる属性名との差分に基づいて特定される属性名を示す属性名リストを特定する判定手段を備え、
前記第一の展開処理手段は、
各属性名に対応する属性情報が有する属性値の取り得る値を当該属性名と対応付けて記憶する属性値リストを記憶し、前記第一の情報処理として、前記属性名リストに含まれる属性名と前記属性値リストにおいて当該属性名に対応付けられている属性値とを前記登録情報に追加する組み合わせ展開処理手段と、
前記属性名と前記属性値とが追加された前記登録情報に基づいて前記登録キーを生成する情報登録手段と、を備える付記２に記載の情報検索システム。
（付記４）
前記第二の展開処理手段は、
評価情報に含まれる属性名と前記指定リストに含まれる属性名との差分に基づいて特定される属性名の属性情報を要素とする集合を生成する集合展開処理手段と、
前記第二の情報処理として、前記評価情報と前記集合に含まれる各要素が示す属性情報との組み合わせに基づいて検索キーを生成する情報検索手段と、を備える付記２または３に記載の情報検索システム。
（付記５）
各属性名に対応する属性情報が有する属性値の取り得る値の種類の数と当該属性名とを対応付けた情報である属性値数リストと、所定の閾値とに基づいて、前記指定リストを生成し、当該指定リストを前記指定リスト記憶手段に記憶する指定リスト作成手段を備える、付記２ないし４のいずれか１項に記載の情報検索システム。
（付記６）
前記指定リスト作成手段は、前記属性値数リストにおいて前記閾値以下の値に対応付けられている属性名を前記指定リストに追加する、付記５に記載の情報検索システム。
（付記７）
前記指定リスト作成手段は、前記属性値数リストにおいて小さい値に対応付けられている属性名から順に高々閾値が示す個数まで当該属性名を前記指定リストに追加する、付記５または６に記載の情報検索システム。
（付記８）
前記指定リスト作成手段は、前記属性値数リストに含まれる、属性値の取り得る値の種類の数に基づいて特定されるメモリ使用量が前記閾値を超えるまで、当該属性値の取りえる値の種類の数に対応する属性名を前記指定リストに追加する、付記５ないし７のいずれか１項に記載の情報検索システム。
（付記９）
属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名を当該登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成し、
属性情報を一つ以上含む評価情報を受け取り、当該評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較により当該登録キーに対応する登録情報を検索するための検索キーを生成する、情報検索方法。
（付記１０）
コンピュータに、
属性名と属性値とを有する属性情報を一つ以上含む登録情報を受け取り、所定の属性名のそれぞれに対して、各属性名を当該登録情報に含まれる属性情報が有するか否かに応じて異なる、第一の情報処理を行うことによって、当該登録情報に対応する登録キーを生成する処理と、
属性情報を一つ以上含む評価情報を受け取り、当該評価情報に含まれる属性情報のそれぞれに対して、所定の属性名を有するか否かに応じて異なる、第二の情報処理を行うことによって、登録キーとの比較により当該登録キーに対応する登録情報を検索するための検索キーを生成する処理と、を実行させるための情報検索プログラム。
（付記１１）
前記組み合わせ展開処理手段は、前記属性名リストに含まれる属性名毎に各属性名に対応付けられている属性値のうちからいずれか１つ選択し、前記属性値および前記属性名を前記登録情報に追加し、すべての属性名および属性値の組み合わせについてそれぞれ前記登録情報に追加し、
前記情報登録手段は、前記属性名および前記属性値が追加された前記登録情報毎に前記登録キーを生成する、付記３に記載の情報検索システム。
（付記１２）
前記集合展開処理手段は、評価情報に含まれる属性名と前記指定リストに含まれる属性名との差分に基づいて特定される属性名を有する属性情報のべき集合を生成し、
前記情報検索手段は、前記評価情報と前記べき集合に含まれる各要素が示す属性情報を含む補完情報との組み合わせに基づいて検索キーを生成する、付記４に記載の情報検索システム。
（付記１３）
前記情報登録手段は、前記登録情報に追加する前記属性名および前記属性値と前記登録情報が含む属性情報が有する属性名および属性値とを連結し、連結された情報に基づいて特定されるハッシュ値に基づいて前記登録キーを生成する、付記３ないし８、１１および１２のいずれか１項に記載の情報検索システム。
（付記１４）
前記情報検索手段は、前記評価情報のうち前記指定リストに含まれている属性名に対応する属性情報が有する属性名および属性値と、前記集合に含まれる各要素が示す属性情報が有する属性名および属性値とを連結し、連結された情報に基づいて特定されるハッシュ値に基づいて前記検索キーを生成する、付記４ないし８および１２のいずれか１項に記載の情報検索システム。
（付記１５）
前記登録情報と当該登録情報に対応する前記登録キーとを対応付けて記憶する情報記憶手段を備え、
前記第二の展開処理手段は、前記検索キーと前記情報記憶手段に記憶されている登録キーとの照合を行うことによって登録キーに対応する登録情報を検索する、付記１ないし８、および１１ないし１４のいずれか１項に記載の情報検索システム。
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
この出願は、２０１１年３月１８日に出願された日本出願特願２０１１−０６１０４６を基礎とする優先権を主張し、その開示の全てをここに取り込む。
【産業上の利用可能性】
【０００９】
本発明における情報検索システムは、グルーピング処理やストリーム処理、ルールマッチングといった入力された評価対象情報に対して高速に特定の処理を実行するシステムに適用できる。また、本発明における情報検索システムは、完全には一致しないが一致する情報が多く含まれているものを探す、という類似検索といった用途にも適用できる。本発明における情報検索システムは、具体的なシステムとして、リアルタイムなモバイル広告配信、推薦システム、通知システムに適用できる。
【符号の説明】
【００１０】
１０  情報検索システム
２０  情報検索システム
３０  情報検索システム
１０１  登録情報受信部
１０２  組み合わせ展開対象属性名指定リスト記憶部
１０３  組み合わせ展開判定部
１０４  組み合わせ展開処理部
１０５  情報登録部
１０６  情報記憶部
１０７  評価情報受信部
１０８  べき集合展開処理部
１０９  情報検索部
１３１  組み合わせ展開対象属性名リスト生成部
１４１  組み合わせ展開対象属性値リスト記憶部
１４２  組み合わせ生成処理部
１５１  ソート部
１５２  キー生成部
１５３  登録部
１８１  評価情報分割部
１８２  部分べき集合生成部
１８３  非べき展開属性合成部
１９１  ソート部
１９２  キー生成部
１９３  検索部
２１０  組み合わせ展開対象属性名指定リスト生成部
２１１  属性値数リスト受信部
２１２  閾値受信部
２１３  組み合わせ展開対象属性決定部
３０１  第一の展開処理部
３０２  第二の展開処理部
３９１  ＣＰＵ
３９２  通信Ｉ／Ｆ
３９３  メモリ
３９４  記憶装置
３９５  入力装置
３９６  出力装置
３９７  バス
３９８  記録媒体
【図１】
2012127986.tif 000007
【図２】
2012127986.tif 000008
【図３】
2012127986.tif 000009
【図４】
2012127986.tif 000010
【図５】
2012127986.tif 000011
【図６】
2012127986.tif 000012
【図７】
2012127986.tif 000013
【図８】
2012127986.tif 000014
【図９】
2012127986.tif 000015
【図１０】
2012127986.tif 000016
【図１１】
2012127986.tif 000017
【図１２】
2012127986.tif 000018
【図１３】
2012127986.tif 000019
【図１４】
2012127986.tif 000020
【図１５】
2012127986.tif 000021
【図１６】
2012127986.tif 000022
【図１７】
2012127986.tif 000023
【図１８】
2012127986.tif 000024
【図１９】
2012127986.tif 000025
【図２０】
2012127986.tif 000026
【図２１】
2012127986.tif 000027
【図２２】
2012127986.tif 000028
【図２３】
2012127986.tif 000029
【図２４】
2012127986.tif 000030
【図２５】
2012127986.tif 000031
【図２６】
2012127986.tif 000032
【図２７】
2012127986.tif 000033
【図２８】
2012127986.tif 000034
【図２９】
2012127986.tif 000035
【図３０】
2012127986.tif 000036
【国際調査報告】
2012127986.tif 000037
2012127986.tif 000038
2012127986.tif 000039
2012127986.tif 000040