(57)【要約】【課題】オブジェクトが有する様々な属性に基づくオブジェクトの特定を可能とすること。【解決手段】情報管理装置は、登録要求に係るオブジェクトの複数の属性の値から、一部の属性に関する組み合わせを示すパタンごとに、当該パタンに該当する属性の値の組み合わせを抽出し、当該組み合わせをオブジェクトの識別情報に対応付けて、複数のデータ構造の中で当該パタンに対応するデータ構造に登録し、複数の属性ごとに条件が指定された検索要求から、前記パタンごとに、当該パタンに該当する属性に対する条件の組み合わせを抽出し、当該パタンに対応するデータ構造から、当該組み合わせに含まれる各条件を満たす前記属性の値の組み合わせに対応付けられている識別情報を検索し、前記パタンごとの検索結果の全てに含まれている識別情報を、検索要求の送信元に返信し、前記条件に関する確率分布情報を用いて、前記各パタンを生成する。【選択図】図３
2016035684.tif 000002
【特許請求の範囲】
【請求項１】
複数の属性を有する１以上のオブジェクトと、前記オブジェクトにネットワークを介して接続される情報管理装置とを含む情報管理システムであって、
前記情報管理装置は、
いずれかの前記オブジェクトを一意に特定する識別情報と、当該オブジェクトが有する複数の属性の値の集合との登録要求を受信する第一の受信部と、
それぞれが前記複数の属性のうちの一部の属性に関して順序付けられた組み合わせを示すパタンごとに、前記登録要求に含まれている複数の属性の値の集合から当該パタンに該当する属性の値の組み合わせを抽出し、抽出された組み合わせを前記識別情報に対応付けて、複数のツリー型のデータ構造の中で、当該パタンに対応するデータ構造に登録する登録部と、
前記複数の属性のうちの全部又は一部の属性ごとに当該属性に対する条件が指定された検索要求を受信する第二の受信部と、
前記複数のパタンのうちの全部又は一部のパタンのそれぞれごとに、前記検索要求に含まれている条件から、当該パタンに該当する属性に対する条件の組み合わせを抽出し、当該パタンに対応する前記データ構造から、当該組み合わせに含まれる各条件を満たす前記属性の値の組み合わせに対応付けられている前記識別情報を検索し、前記パタンごとの検索結果の全てに含まれている前記識別情報を、前記検索要求の送信元に返信する検索部と、
前記条件に関する確率分布情報を用いて、前記各パタンを生成する生成部と、
を有することを特徴とする情報管理システム。
【請求項２】
前記生成部は、前記各属性が前記条件に指定される確率の降順に前記複数の属性を整列し、整列後の順番に対して前記各パタンが一定のずれを有するように、前記各パタンを生成する、
ことを特徴とする請求項１記載の情報管理システム。
【請求項３】
それぞれが、前記複数の属性のうちの全部又は一部の属性ごとに当該属性に対する条件を含む、複数通りの情報に基づいて、前記パタンの個数分の属性ごとに、当該属性と他の属性との相関係数を計算し、当該属性と、当該属性との相関係数が上位の前記他の属性、又は前記他の属性の中から他のパタンには含まれていない属性の全部又は一部が除かれた状態で前記相関係数が上位である属性とを含むように、前記パタンを生成する、
ことを特徴とする請求項１記載の情報管理システム。
【請求項４】
複数の属性を有する１以上のオブジェクトにネットワークを介して接続される情報管理装置が、
いずれかの前記オブジェクトを一意に特定する識別情報と、当該オブジェクトが有する複数の属性の値の集合との登録要求を受信する第一の受信手順と、
それぞれが前記複数の属性のうちの一部の属性に関して順序付けられた組み合わせを示すパタンごとに、前記登録要求に含まれている複数の属性の値の集合から当該パタンに該当する属性の値の組み合わせを抽出し、抽出された組み合わせを前記識別情報に対応付けて、複数のツリー型のデータ構造の中で、当該パタンに対応するデータ構造に登録する登録手順と、
前記複数の属性のうちの全部又は一部の属性ごとに当該属性に対する条件が指定された検索要求を受信する第二の受信手順と、
前記複数のパタンのうちの全部又は一部のパタンのそれぞれごとに、前記検索要求に含まれている条件から、当該パタンに該当する属性に対する条件の組み合わせを抽出し、当該パタンに対応する前記データ構造から、当該組み合わせに含まれる各条件を満たす前記属性の値の組み合わせに対応付けられている前記識別情報を検索し、前記パタンごとの検索結果の全てに含まれている前記識別情報を、前記検索要求の送信元に返信する検索手順と、
前記条件に関する確率分布情報を用いて、前記各パタンを生成する生成手順と、
を有することを特徴とする情報管理方法。
【請求項５】
前記生成手順は、前記各属性が前記条件に指定される確率の降順に前記複数の属性を整列し、整列後の順番に対して前記各パタンが一定のずれを有するように、前記各パタンを生成する、
ことを特徴とする請求項４記載の情報管理方法。
【請求項６】
それぞれが、前記複数の属性のうちの全部又は一部の属性ごとに当該属性に対する条件を含む、複数通りの情報に基づいて、前記パタンの個数分の属性ごとに、当該属性と他の属性との相関係数を計算し、当該属性と、当該属性との相関係数が上位の前記他の属性、又は前記他の属性の中から他のパタンには含まれていない属性の全部又は一部が除かれた状態で前記相関係数が上位である属性とを含むように、前記パタンを生成する、
ことを特徴とする請求項４記載の情報管理方法。
【請求項７】
コンピュータを、
請求項１乃３のいずれか１項に記載の情報管理装置の各機能部として機能させるための情報管理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報管理システム、情報管理方法、及び情報管理プログラムに関する。
【背景技術】
【０００２】
従来の情報通信ネットワークは、一意に特定するアドレスにより通信対象を指定している。例えば、固定電話では電話番号、インターネットではＩＰ(Internet Protocol)アドレスがそれにあたり、これらはネットワーク上の位置にも対応しているため、その位置に接続することで通信が可能となる。
【０００３】
一方、携帯電話の電話番号やインターネットでのＵＲＬ(Uniform Resource Locator)は、より上位の論理アドレス又は名前と解釈できる。つまり、これらは通信相手や情報の論理位置を示すが、ネットワーク上の接続位置は示していないため、前者ではＬＲ（ロケーションレジスタ）、後者ではＤＮＳ（ドメインネームサーバ）により、ネットワーク上の接続位置を示すアドレスへの変換（いわゆる名前解決）が必要となる。後者の場合であれば、ＵＲＬから変換後のＩＰアドレスを用い、接続する（例えば、非特許文献１、非特許文献２参照）。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】弓場英明監修、未来ねっと技術シリーズ  ユビキタスネットワーク技術、電気通信協会、2003.
【非特許文献２】"インターネット10分講座：DNS"、[online]、［平成２６年７月１６日検索］、インターネット＜http://www.nic.ad.jp/ja/newsletter/No22/080.html＞
【非特許文献３】A. Guttman, "R-Trees: A Dynamic Index Structure for Spatial Searching", ACM SIGMOD 1984
【非特許文献４】L. Arge et al., "The Priority R-tree: a practically efficient and worst-case optimal R-tree", SIGMOD 2004
【非特許文献５】"kd木_kd木の概要"、[online]、［平成２６年７月２８日検索］、インターネット＜http://www.weblio.jp/wkpja/content/kd木_kd木の概要＞
【非特許文献６】J. Gao and P. Steenkiste, "An Adaptive Protocol for Efficient Support of Range Queries in DHT-based Systems", ICNP 2004
【非特許文献７】A. R. Bharambe et al., "Mercury: Supporting Scalable Multi-¬Attribute Range Queries", ACM SIGCOMM 2004
【非特許文献８】C. Bohm et al., "Searching in high-dimensional spaces: Index structures for improving the performance of multimedia databases", ACM Computing Surveys, 2001
【非特許文献９】J. Gao and P. Steenkiste. "Design and evaluation of a distributed scalable content discovery system. IEEE J.Sel. A. Commun.", 22(1):54-66, Jan. 2004
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ところで、今後、非常に多数のオブジェクトがネットワークに接続されるようになったときに、個々のオブジェクトに一意に付与された名前をユーザが把握した上で通信を行う代わりに、そのオブジェクトの状態等を特定することで、当該オブジェクトとの通信が可能となれば便利である。
【０００６】
例えば、或る地域で或る時間帯に温度が２０度以上を示したセンサと通信したい、あるいは、台風の進路予想図上にある降雨・風速センサと通信し，それらセンサの設定を変更する（測定周期を短くして詳細な測定ができるようにする）といった通信条件を指定することができれば、必要な情報を効率良く収集することができる。
【０００７】
しかしながら、既存のシステムでは、個々のオブジェクトに一意に付与された名前をユーザが把握した上で、その名前を指定して通信を行う。例えば、携帯電話であれば電話番号をユーザが指定することで通信を行う。そのため、上述のような利用形態を実現することは困難である。
【０００８】
本発明は、上記の点に鑑みてなされたものであって、オブジェクトが有する様々な属性に基づくオブジェクトの特定を可能とすることを目的とする。
【課題を解決するための手段】
【０００９】
そこで上記課題を解決するため、複数の属性を有する１以上のオブジェクトと、前記オブジェクトにネットワークを介して接続される情報管理装置とを含む情報管理システムにおいて、前記情報管理装置は、いずれかの前記オブジェクトを一意に特定する識別情報と、当該オブジェクトが有する複数の属性の値の集合との登録要求を受信する第一の受信部と、それぞれが前記複数の属性のうちの一部の属性に関して順序付けられた組み合わせを示すパタンごとに、前記登録要求に含まれている複数の属性の値の集合から当該パタンに該当する属性の値の組み合わせを抽出し、抽出された組み合わせを前記識別情報に対応付けて、複数のツリー型のデータ構造の中で、当該パタンに対応するデータ構造に登録する登録部と、前記複数の属性のうちの全部又は一部の属性ごとに当該属性に対する条件が指定された検索要求を受信する第二の受信部と、前記複数のパタンのうちの全部又は一部のパタンのそれぞれごとに、前記検索要求に含まれている条件から、当該パタンに該当する属性に対する条件の組み合わせを抽出し、当該パタンに対応する前記データ構造から、当該組み合わせに含まれる各条件を満たす前記属性の値の組み合わせに対応付けられている前記識別情報を検索し、前記パタンごとの検索結果の全てに含まれている前記識別情報を、前記検索要求の送信元に返信する検索部と、前記条件に関する確率分布情報を用いて、前記各パタンを生成する生成部と、を有する。
【発明の効果】
【００１０】
オブジェクトが有する様々な属性に基づくオブジェクトの特定を可能とすることができる。
【図面の簡単な説明】
【００１１】
【図１】第一の実施の形態における情報管理システムの構成例を示す図である。
【図２】第一の実施の形態における情報管理装置のハードウェア構成例を示す図である。
【図３】第一の実施の形態における情報管理装置の機能構成例を示す図である。
【図４】オブジェクトの登録処理の処理手順の一例を説明するためのフローチャートである。
【図５】オブジェクトの検索処理の処理手順の一例を説明するためのフローチャートである。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて本発明の実施の形態を説明する。図１は、第一の実施の形態における情報管理システムの構成例を示す図である。図１に示される情報管理システム１おいて、１以上のオブジェクト２０と情報管理装置１０とは、情報通信用のネットワークＮ１を介して通信可能に接続される。本実施の形態において、ネットワークＮ１は、例えば、ＩＰネットワークである。但し、ＩＰアドレス以外の論理アドレスを用いた他のネットワークであってもよい。つまり、論理アドレスがネットワーク上の位置を指し、かつ、その論理アドレスを指定すれば所望の宛先までデータやパケットを転送することが可能であれば他のネットワークであってもよい。ＩＰネットワーク以外が用いられる場合、以下の説明における「ＩＰアドレス」は、当該ネットワークにおいて利用される論理アドレスに置き換えられてもよい。
【００１３】
オブジェクト２０は、通信機能を有する装置である。オブジェクト２０の一例として、スマートフォン、フィーチャーフォン、タブレット端末、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）、家電製品、車載機、センサ等が挙げられる。各オブジェクト２０は、ネットワークＮ１において当該オブジェクト２０を一意に特定可能な識別情報（例えば、ＩＰアドレス）を有する。また、各オブジェクト２０は、例えば、時刻情報、位置情報、色、センサの検出値等の複数の属性に対する値（例えば、時刻＝１０：００、位置＝緯度ＸＸＸ，経度ＹＹＹ、色＝赤、気温＝２０度等）を有する。以下、複数の属性に関する情報を、「多属性情報」という。なお、オブジェクト２０の多属性情報には、当該オブジェクト２０の所有者の属性の属性値等、当該オブジェクト２０に関係する情報が含まれてもよい。
【００１４】
情報管理装置１０は、各オブジェクト２０のＩＰアドレスと多属性情報との対応情報を記憶する１以上のコンピュータである。情報管理装置１０は、多属性情報に関する条件を含む検索要求（クエリ）に応じ、当該条件を満たすオブジェクト２０を検索し、当該オブジェクト２０のＩＰアドレスを返信する。
【００１５】
図２は、第一の実施の形態における情報管理装置１０のハードウェア構成例を示す図である。図２の情報管理装置１０は、それぞれバスＢで相互に接続されているドライブ装置１００、補助記憶装置１０２、メモリ装置１０３、ＣＰＵ１０４、及びインタフェース装置１０５を有する。
【００１６】
情報管理装置１０での処理を実現するプログラムは、ＣＤ−ＲＯＭ等の記録媒体１０１によって提供される。プログラムを記憶した記録媒体１０１がドライブ装置１００にセットされると、プログラムが記録媒体１０１からドライブ装置１００を介して補助記憶装置１０２にインストールされる。但し、プログラムのインストールは必ずしも記録媒体１０１より行う必要はなく、ネットワークを介して他のコンピュータよりダウンロードするようにしてもよい。補助記憶装置１０２は、インストールされたプログラムを格納すると共に、必要なファイルやデータ等を格納する。
【００１７】
メモリ装置１０３は、プログラムの起動指示があった場合に、補助記憶装置１０２からプログラムを読み出して格納する。ＣＰＵ１０４は、メモリ装置１０３に格納されたプログラムに従って情報管理装置１０に係る機能を実行する。インタフェース装置１０５は、ネットワークに接続するためのインタフェースとして用いられる。
【００１８】
図３は、第一の実施の形態における情報管理装置１０の機能構成例を示す図である。図３において、情報管理装置１０は、登録要求受付部１１、オブジェクト登録部１２、Ｋ次元ベクトル生成部１３、名前解決要求受付部１４、及びオブジェクト検索部１５等を有する。これら各部は、情報管理装置１０にインストールされた１以上のプログラムが、ＣＰＵ１０４に実行させる処理により実現される。情報管理装置１０は、また、Ｋ次元ベクトル記憶部１６及びＫ次元データベース１７を利用する。Ｋ次元ベクトル記憶部１６及びＫ次元データベース１７は、補助記憶装置１０２、又は情報管理装置１０にネットワークを介して接続される記憶装置等を用いて実現可能である。
【００１９】
登録要求受付部１１は、オブジェクト２０の登録要求を受信する。当該登録要求には、オブジェクト２０が有する属性の属性値の集合（配列）である属性ベクトルｖが含まれる。オブジェクト登録部１２は、オブジェクト２０の登録要求に含まれている属性ベクトルｖに含まれている属性値の集合から、Ｓ個のＫ次元ベクトルに基づいて、Ｓ通りの属性値の順序付けられた組み合わせ（配列）を抽出する。各Ｋ次元ベクトルは、属性ベクトルｖにその値が含まれている属性のうちの一部の組み合わせを示すパタンである。Ｋ次元ベクトルは、Ｋ次元ベクトル生成部１３によって生成され、Ｋ次元ベクトル記憶部１６に記憶されている。オブジェクト登録部１２は、抽出されたＳ通りの属性の属性値の組み合わせごとに、オブジェクト２０の登録要求に含まれているＩＰアドレス（以下、「ＩＰ＃Ａ」と記す。）との対応情報を、Ｋ次元データベース１７に登録する。
【００２０】
名前解決要求受付部１４は、オブジェクト２０の検索要求（名前解決要求）を受信する。当該検索要求には、オブジェクト２０の属性ごとに条件が指定されている。当該条件の配列を、クエリベクトルｑという。オブジェクト検索部１５は、クエリベクトルｑを満たす属性値の組み合わせを、Ｋ次元データベース１７から検索し、検索された組み合わせに対応付けられているＩＰ＃Ａを、検索要求元に返信する。
【００２１】
以下、オブジェクト２０及び情報管理装置１０が実行する処理手順について説明する。図４は、オブジェクトの登録処理の処理手順の一例を説明するためのフローチャートである。
【００２２】
オブジェクト２０は、例えば、ネットワークＮ１に接続されたことを検知すると、当該オブジェクト２０の多属性情報に基づいて、属性ベクトルｖを生成する（Ｓ１０１）。ここで、当該多属性情報を構成する属性ｉが、ｉ＝１からｄまで存在し、属性ｉの属性値の取りうる範囲が、［０，ｍ＿ｉ］であるとする。属性ｉに対する属性値がｘ＿ｉであるとすると、オブジェクト２０は、属性ベクトルｖを、ｖ＝［ｘ＿１，ｘ＿２，…，ｘ＿ｉ，…，ｘ＿ｄ］として生成する。すなわち、属性ベクトルは、オブジェクト２０が有する属性値の集合又は組み合わせである。
【００２３】
続いて、オブジェクト２０は、生成された属性ベクトルｖと、当該オブジェクト２０のＩＰ＃Ａとを含むパケットを、オブジェクト２０のオブジェクト登録要求パケットとして情報管理装置１０の登録要求受付部１１に送信する（Ｓ１０２）。登録要求受付部１１は、オブジェクト２０のオブジェクト登録要求パケットを受信すると、当該属性ベクトルｖ及び当該ＩＰ＃Ａを、当該オブジェクト２０のオブジェクト登録要求パケットから読み出し、当該属性ベクトルｖ及び当該ＩＰ＃Ａを、オブジェクト登録部１２へ送信する。
【００２４】
続いて、オブジェクト登録部１２は、Ｋ次元ベクトル記憶部１６に記憶されているＳ個のＫ次元ベクトルに基づいて、当該属性ベクトルｖから、Ｓ通りの属性値の組み合わせを抽出する（Ｓ１０３）。
【００２５】
Ｋ次元ベクトルは、予め、Ｋ次元ベクトル生成部１３によって生成され、Ｋ次元ベクトル記憶部１６に記憶されている。又は、Ｋ次元ベクトル生成部１３は、ステップＳ１０３のタイミングでＫ次元ベクトルを生成してもよい。
【００２６】
Ｋ次元ベクトルは、要素数をＫ（Ｋ＜ｄ）とし、要素の値を属性の順番（クエリベクトルにおける順番。但し、要素の値は属性の識別子でもよい）とする、１以上の属性の組み合わせ順を示すパタン（配列）の一例である。以下、Ｋ次元ベクトルを、ｐｅｒｍ＿ｓ＾Ｋ（ｓ＝１，…，Ｓ）と記す。Ｋ次元ベクトル生成部１３は、クエリベクトルｑに関する確率分布情報を用いてｐｅｒｍ＿ｓ＾Ｋを生成する。この際、各ｐｅｒｍ＿ｓ＾Ｋが、相互に同じパタンを示さないようにＫ次元ベクトルが生成される。クエリベクトルｑに関する確率分布情報の一例として、或るクエリ（検索要求）において属性ｉに条件が指定される確率ｐ＿ｉ（ｉ＝１，…，ｄ）、又はクエリで指定される属性ｉの値と属性ｊの値との相関係数ｒ（ｉ，ｊ）等が挙げられる。これらを用いて、クエリで同時に指定されやすい属性を集め、集められた属性が同じｐｅｒｍ＿ｓ＾Ｋに含まれるようにする。
【００２７】
オブジェクト登録部１２は、上記ｐｅｒｍ＿ｓ＾Ｋで指定された組み合わせに含まれる属性に係る属性値を、属性ベクトルｖの要素（属性値）から抽出する。この際、抽出された属性値の並び順は、ｐｅｒｍ＿ｓ＾Ｋが示す属性の並び順に従う。すなわち、ｐｅｒｍ＿ｓ＾Ｋは、属性の組み合わせに加え、当該組み合わせに含まれる属性の順番をも規定する。ｐｅｒｍ＿ｓ＾Ｋに基づく、属性ベクトルｖからの属性値の抽出操作を、ｐｅｒｍ＿ｓ＾Ｋ（ｖ）として記す。例えば、ｄ＝５であり、ｐｅｒｍ＿ｓ＾Ｋ＝［３，４］である場合、ｐｅｒｍ＿ｓ＾Ｋ（ｖ）＝［ｘ＿３，ｘ＿４］となる。オブジェクト登録部１２は、属性ベクトルｖからの属性値の抽出を、Ｓ個のｐｅｒｍ＿ｓ＾Ｋに関して実施する。
【００２８】
続いて、オブジェクト登録部１２は、Ｓ個の抽出結果（ｐｅｒｍ＿ｓ＾Ｋ（ｖ））を、Ｋ次元データベース１７に登録する（Ｓ１０４）。Ｋ次元データベース１７には、例えば、Ｒ−ｔｒｅｅやｋｄ−ｔｒｅｅと呼ばれる多次元データに対するツリー型のＳ個のデータ構造が用意されており、ｓ番目（ｓ＝１，…，Ｓ）のＫ次元ベクトルによる抽出結果とＩＰ＃Ａとの対応情報は、ｓ番目のツリー型のデータ構造（以下、「ｔｒｅｅ＿ｓ」という。）にエントリされる。すなわち、ｐｅｒｍ＿ｓ＾Ｋ（ｖ）⇔ＩＰ＃Ａの対応情報が、ｔｒｅｅ＿ｓにエントリされる。なお、ＩＰ＃Ａ以外にオブジェクト２０を一意に特定可能な識別情報が、ＩＰ＃Ａの代わりに又はＩＰ＃Ａと共に、登録されてもよい。
【００２９】
次に、オブジェクト２０の検索時（名前解決時）の処理手順について説明する。図５は、オブジェクトの検索処理の処理手順の一例を説明するためのフローチャートである。
【００３０】
ステップＳ２０１において、情報管理装置１０の名前解決要求受付部１４は、検索対象とするオブジェクト２０の属性ごとに条件が指定されたオブジェクト検索要求パケットを受信する。オブジェクト検索要求パケットは、いずれかのオブジェクト２０から送信されてもよいし、非図示の装置から送信されてもよい。なお、条件は、例えば、属性ｉが気温とした場合、気温の値ｘ＿ｉが、「２０度≦ｘ＿ｉ≦２５度」というような、属性値に対するレンジ指定を含む情報である。
【００３１】
具体的には、属性ｉに対するレンジ指定が「ｘｌｏｗ＿ｉ≦ｘ＿ｉ≦ｘｈｉｇｈ＿ｉ」である場合、以下のようなクエリベクトルｑが検索要求元（例えば、いずれかのオブジェクト２０）で生成され、クエリベクトルｑを含むパケットが、オブジェクト検索要求パケットとされる。
【００３２】
ｑ＝［ｘｌｏｗ＿１〜ｘｈｉｇｈ＿１，ｘｌｏｗ＿２〜ｘｈｉｇｈ＿２，...，ｘｌｏｗ＿ｉ〜ｘｈｉｇｈ＿ｉ，…，ｘｌｏｗ＿ｄ〜ｘｈｉｇｈ＿ｄ］
なお、或る属性ｉに対して条件が指定されない場合、当該属性ｉのレンジは、０≦ｘ＿ｉ≦ｍ＿ｉとされ、クエリベクトルｑは、以下のように生成されてもよい。
【００３３】
ｑ＝［ｘｌｏｗ＿１〜ｘｈｉｇｈ＿１，ｘｌｏｗ＿２〜ｘｈｉｇｈ＿２，...，０〜ｍ＿ｉ，…，ｘｌｏｗ＿ｄ〜ｘｈｉｇｈ＿ｄ］
また、或る属性ｉに対して特定の値が条件として指定される場合、ｘｌｏｗ＿ｉとｘｈｉｇｈ＿ｉとには、当該特定の値（すなわち、同じ値）が指定されてもよいし、ｘｌｏｗ＿ｉ又はｘｈｉｇｈ＿ｉのみが指定されてもよい。
【００３４】
名前解決要求受付部１４は、受信されたオブジェクト検索要求パケットからクエリベクトルｑを読み出し、当該クエリベクトルｑを、オブジェクト検索部１５へ送信する。
【００３５】
続いて、オブジェクト検索部１５は、Ｋ次元ベクトル記憶部１６に記憶されているＳ個のＫ次元ベクトルに基づいて、クエリベクトルｑから、Ｓ通りの条件の組み合わせを抽出する（Ｓ２０２）。すなわち、オブジェクト検索部１５は、Ｋ次元ベクトル記憶部１６に記憶されているｐｅｒｍ＿ｓ＾Ｋ（ｓ＝１，…，Ｓ）を用いて、ｐｅｒｍ＿ｓ＾Ｋ（ｑ）を生成する。例えば、ｐｅｒｍ＿ｓ＾Ｋ＝［３，４］の場合、ｐｅｒｍ＿ｓ＾Ｋ（ｑ）＝［ｘｌｏｗ＿３〜ｘｈｉｇｈ＿３，ｘｌｏｗ＿４〜ｘｈｉｇｈ＿４］となる。
【００３６】
続いて、オブジェクト検索部１５は、Ｓ個のｐｅｒｍ＿ｓ＾Ｋ（ｑ）の中から、Ｓ'（≦Ｓ）個のｐｅｒｍ＿ｓ＾Ｋ（ｑ）を選択し、選択されたｐｅｒｍ＿ｓ＾Ｋ（ｑ）に基づいて、Ｋ次元データベース１７を検索する（Ｓ２０３）。具体的には、選択されたｐｅｒｍ＿ｓ＾Ｋ（ｑ）に対応するｔｒｅｅ＿ｓが検索され、当該ｔｒｅｅ＿ｓからｐｅｒｍ＿ｓ＾Ｋ（ｑ）の条件を満たす属性値の組み合わせ（配列）及び当該組み合わせに対応付けられているＩＰ＃Ａが抽出される。オブジェクト検索部１５は、Ｓ'個のｐｅｒｍ＿ｓ＾Ｋ（ｑ）及びｔｒｅｅ＿ｓに関してこのような検索処理を実行する。その結果、Ｓ'通りの検索結果が得られる。オブジェクト検索部１５は、Ｓ'通りの全ての検索結果に含まれているＩＰ＃Ａを、クエリベクトルｑを満たすＩＰ＃Ａとして、検索要求元（例えば、いずれかのオブジェクト２０）に返信する。ＩＰ＃Ａを受信した検索要求元は、例えば、当該ＩＰ＃Ａを用いて、当該ＩＰ＃Ａに係るオブジェクト２０と通信することができる。なお、ＩＰ＃Ａ以外にオブジェクト２０を一意に特定可能な識別情報が、ＩＰ＃Ａの代わりに又はＩＰ＃Ａと共に、検索されてもよい。
【００３７】
なお、Ｒ−ｔｒｅｅに関しては、非特許文献３及び非特許文献４に詳しい。また、ｋｄ−ｔｒｅｅに関しては、非特許文献５に詳しい。
【００３８】
また、複数の属性に関して、レンジを指定することで条件にマッチするオブジェクトを探索する方法として、分散ハッシュテーブル（ＤＨＴ）を用いて、検索を行う方法についての提案も有る（例えば、非特許文献６、非特許文献７参照）。ここで、非特許文献６では、属性ごとにＲＳＴ（range search tree）を構成しており、クエリでレンジ指定のあった属性のうち、いずれかの属性に対するＲＳＴ上を検索する。その際、ＲＳＴ上の各ノードが担当する範囲がクエリのレンジ（の一部あるいは全部）を含むようなノードのＩＤをハッシュ関数により計算し、当該ノードにアクセスすることでオブジェクトの検索を行う。しかしながら、属性の数（＝次元数）が大きくなると、このようなツリー型のデータ構造を用いた検索では、全ノード探索に近づく問題（次元の呪いとよばれる）が指摘されている（例えば、非特許文献８参照）。すなわち、非特許文献６の方法では、一つの属性でＲＳＴ上を検索し、該当するノード内に登録されているオブジェクトを探索する。複数属性の場合は、非特許文献９のように、或る一つの属性で該当するノードにアクセスし、当該ノード内に登録されているオブジェクトに対して、残りの属性についてもクエリ条件を満たすかをチェックする方法がある。この場合、一つの属性だけでオブジェクト候補を絞り込めない場合には、多数のオブジェクトの残りの属性を調べる必要が生じる可能性がある。
【００３９】
本実施の形態では、このような問題に対処するため、いくつかの低次元（Ｋ次元）ツリーにオブジェクト２０をマッピングし、その低次元ツリー上で検索が行われる。また、マッピングを行う際に、クエリに関する確率分布情報を用いることで、クエリで同時に指定されやすい属性が、なるべく同じツリーにマッピングされるようにしている。そうすることで、低次元ツリー上で検索が行われるだけでも所望のオブジェクト２０を効率的に絞り込んで計算コストを削減しつつ、所望のオブジェクト２０以外のオブジェクト２０が誤検出される確率を小さく抑えることを可能としている。
【００４０】
上述したように、第一の実施の形態によれば、オブジェクト２０が有する様々な属性（物理空間上の位置、色、時刻等）に対する条件指定を行うことで、条件にマッチするオブジェクト２０を特定し、該オブジェクト２０を一意に特定可能な情報（例えば、ＩＰアドレス）を特定する名前解決が可能となる。
【００４１】
次に、第二の実施の形態について説明する。第二の実施の形態では第一の実施の形態と異なる点について説明する。ここで特に言及されない点については、第一の実施の形態と同様でもよい。
【００４２】
第二の実施の形態では、図４のステップＳ１０３におけるｐｅｒｍ＿ｓ＾Ｋの生成方法として、或るクエリにおいて属性ｉに条件が指定される確率ｐ＿ｉ（ｉ＝１，…，ｄ）を用いる方法の一例を説明する。
【００４３】
Ｋ次元ベクトル生成部１３は、属性ベクトルｖの要素を、各要素に係る属性の確率ｐ＿ｉに関して降順に整列する。例えば、ｄ＝３であり、ｐ＿１＝０．５、ｐ＿２＝０．２、ｐ＿３＝０．３である場合、ｐ＿１、ｐ＿３，ｐ＿２の順に対応するように、属性ｉが並び替えられる。属性ベクトルｖが、ｖ＝［ｘ＿１，ｘ＿２，ｘ＿３］であれば、ｘ＿１、ｘ＿３、ｘ＿２の順に、属性ｉが並び替えられる。なお、確率ｐ＿ｉは、何らかの方法で与えられればよい。
【００４４】
続いて、Ｋ次元ベクトル生成部１３は、ｐｅｒｍ＿１＾Ｋ＝［１，２，．．，Ｋ］、ｐｅｒｍ＿２＾Ｋ＝［ｗ＋１，ｗ＋２，…，ｗ＋Ｋ］、…、ｐｅｒｍ＿ｓ＾Ｋ＝［（ｓ−１）ｗ＋１，（ｓ−１）ｗ＋２，…，（ｓ−１）ｗ＋Ｋ］、…として、ｐｅｒｍ＿ｓ＾Ｋを生成する。なお、ｗは予め定めるパラメータ（正の整数）である。すなわち、各ｐｅｒｍ＿ｓ＾Ｋの要素が、ｐ＿ｉに関して降順に整列された属性ベクトルの要素（属性値）に関して、一定のずれを有するように生成される。そうすることで、各ｐｅｒｍ＿ｓ＾Ｋは、相互に異なるものとなる。
【００４５】
又は、例えば、確率ｐ＿ｉで属性ｉを選択するという非復元抽出をＫ回実施し、その結果選択された属性群をｐｅｒｍ＿ｓ＾Ｋとし、その手順をＳ回繰り返してもよい。
【００４６】
上記によれば、属性の選択されやすさに応じたｐｅｒｍ＿ｓ＾Ｋを生成することができる。また、正の整数であるｗを用いて、属性１，２，・・・，ｄの並びから要素をずらして選択するという規則化された演算をすることで、効率的にｐｅｒｍ＿ｓ＾Ｋを生成することができる。
【００４７】
第二の実施の形態を用いた場合の数値計算による評価結果について述べる。
【００４８】
全属性数ｄ＝１００、オブジェクト２０数Ｎ＝２４０、特定すべきオブジェクト２０（つまり、クエリベクトルｑの条件を全て満たすオブジェクト２０）の数の期待値をＨ＝１００個とする。また、Ｋ＝１０とする。オブジェクト２０は、各属性に関して一様に分布しているとする。各属性ｉについて、検索範囲を設定する次元をｄ２＝２５個選択する。その際、Ｚｉｐｆ分布に従って属性ｉを選択する（属性ｉが条件指定属性として選択される確率をｐ＿ｉとする）。また、選択されたｄ２個の属性各々について、クエリの範囲を以下のように設定する。
【００４９】
平均Ｔａｖｇ＝（Ｈ／Ｎ）（１／ｄ２）、標準偏差Ｔｓｄ＝ｍｉｎ（Ｔａｖｇ／２，（１−Ｔａｖｇ）／２）の正規分布に従う乱数の値をレンジ長Ｔｌｅｎとする。それをさらに、Ｔｌｅｎ←ｍａｘ（０．００１，ｍｉｎ（１，Ｔｌｅｎ））とする。
【００５０】
ｘｌｏｗを、［０，１−Ｔｌｅｎ］の間の一様分布に従う乱数の値とし、ｘｈｉｇｈ＝ｘｌｏｗ＋Ｔｌｅｎとする。
【００５１】
ここで、第二の実施の形態に示した方法を用いないで、要素がランダムに選択されたｐｅｒｍ＿ｓ＾Ｋを、Ｓ＝１０個用意する方法を、「ランダム法」と呼ぶ。但し、ｐｅｒｍ＿ｓ＾Ｋと、ｐｅｒｍ＿ｓ'＾Ｋとはｓ≠ｓ'のとき重複がないようにする。それに対し、属性ｉに条件が指定される確率ｐ＿ｉを用いて、第二の実施の形態の手順に従ってｐｅｒｍ＿ｓ＾Ｋを生成する方法を「提案法」と呼ぶ。その際、ｗ＝Ｋとし、Ｓ＝１０個のｐｅｒｍ＿ｓ＾Ｋを生成した場合を「提案法その１」、ｗ＝Ｋ／２とし、Ｓ＝１９個のｐｅｒｍ＿ｓ＾Ｋを生成した場合を「提案法その２」と呼ぶ。なお、いずれの方法においても、Ｓ個のｐｅｒｍ＿ｓ＾Ｋの中からＳ'＝１個を同様の方法で選択し、オブジェクト２０の検索も同様の手順で行うこととする。こうすることで、ｐｅｒｍ＿ｓ＾Ｋの生成方法の違いによる性能の比較を行う。
【００５２】
このときの評価結果は以下の通りである。ランダム法では、検索コストは、０．０３６Ｎ、誤検出率は、６．０Ｅ−０８程度であったのに対して、提案法その１では、検索コストは、０．００７８Ｎ、誤検出率は、１．５４Ｅ−８程度、提案法その２では、検索コストは、０．００６３Ｎ、誤検出率は、１．４５Ｅ−８程度と、提案法では、ランダム法に対して、検索コストと検出率とについて改善できている。
【００５３】
次に、第三の実施の形態について説明する。第三の実施の形態では第一の実施の形態と異なる点について説明する。ここで特に言及されない点については、第一の実施の形態と同様でもよい。
【００５４】
第三の実施の形態では、図４のステップＳ１０３におけるｐｅｒｍ＿ｓ＾Ｋの生成方法として、クエリで指定される属性ｉの値と属性ｊの値とに関する相関係数ｒ（ｉ，ｊ）を用い方法の一例について説明する。第三の実施の形態において、Ｋ次元ベクトル生成部１３は、例えば、以下の手順でｒ（ｉ，ｊ）を計算する。
【００５５】
Ｎｑ個のクエリベクトルｑ＿ｋ（ｋ＝１，…，Ｎｑ）が、与えられているとする。Ｎｑ個のクエリベクトルｑ＿ｋは、過去のクエリベクトルｑの履歴でもよいし、何らかの生成ルールに基づいて疑似的に生成されてもよい。
【００５６】
まず、Ｋ次元ベクトル生成部１３は、クエリベクトルｑ＿ｋにおいて、属性ｉに対して条件指定が無い場合（つまり、ｑ＿ｋのｉ番目の要素が０〜ｍ＿ｉの場合）、ｉ番目の要素を０とし、条件指定が有る場合はｉ番目の要素を１とするベクトルｑ'＿ｋを生成する。
【００５７】
続いて、Ｋ次元ベクトル生成部１３は、ベクトルｑ'＿ｋを行として有する行列（Ｎｑ行ｄ列の行列）を生成する。
【００５８】
続いて、Ｋ次元ベクトル生成部１３は、ｉ番目の列ベクトルとｊ番目の列ベクトルとについて相関係数を計算し、それをｒ（ｉ，ｊ）とする。
【００５９】
なお、ベクトルｑ'＿ｋは、次のように生成されてもよい。Ｎｑ個のクエリベクトルｑ＿ｋにおいて、属性ｉに対する条件指定（ｘｌｏｗ＿ｉ〜ｘｈｉｇｈ＿ｉ）が有る場合、当該ｘｌｏｗ＿ｉ及び当該ｘｈｉｇｈ＿ｉを用いて計算される値をｉ番目の要素とし、条件指定が無い場合、０をｉ番目の要素とするようにベクトルｑ'＿ｋが生成されてもよい。属性ｉに対する条件指定（ｘｌｏｗ＿ｉ〜ｘｈｉｇｈ＿ｉ）が有る場合、例えば、１／（ｘｈｉｇｈ＿ｉ−ｘｌｏｗ＿ｉ）が、ｉ番目の要素とされてもよい。又は、オブジェクト２０の分布関数がＦ＿ｉ（ｘ）＝Ｐ［オブジェクト２０の属性ｉの値≦ｘ］で与えられるとして、１／（Ｆ＿ｉ（ｘｈｉｇｈ＿ｉ）−Ｆ＿ｉ（ｘｌｏｗ＿ｉ））が、ｉ番目の要素とされてもよい。
【００６０】
Ｋ次元ベクトル生成部１３は、上記によって計算されたｒ（ｉ，ｊ）に基づいて、次のようにｐｅｒｍ＿ｓ＾Ｋを生成する。
【００６１】
まず、Ｋ次元ベクトル生成部１３は、或る属性ｉ（ここでは、ｉ＝１であるとする。）を選択し、ｒ（１，ｊ）に関して上位（Ｋ−１）個の属性ｊを選択する。選択された属性ｊを、ｊ＿１（１），ｊ＿１（２），…，ｊ＿１（Ｋ−１）と記すとすると、Ｋ次元ベクトル生成部１３は、ｐｅｒｍ＿１＾Ｋ＝［１，ｊ＿１（１），ｊ＿１（２），…，ｊ＿１（Ｋ−１）］となるように、ｐｅｒｍ＿１＾Ｋを生成する。
【００６２】
続いて、Ｋ次元ベクトル生成部１３は、属性１以外の属性（例えば、属性２）を選択し、同様の手順により、ｐｅｒｍ＿２＾Ｋ＝［２，ｊ＿２（１），ｊ＿２（２），…，ｊ＿２（Ｋ−１）］となるように、ｐｅｒｍ＿２＾Ｋを生成する。
【００６３】
Ｋ次元ベクトル生成部１３は、以上をＳ個の（例えば、Ｓ番目までの）属性について繰り返す。したがって、ｐｅｒｍ＿ｓ＾Ｋ＝［ｓ，ｊ＿ｓ（１），ｊ＿ｓ（２），…，ｊ＿ｓ（Ｋ−１）］となる。
【００６４】
なお、ｐｅｒｍ＿ｓ＾Ｋ（ｓ≧２）を生成する際に、ｒ（ｓ，ｊ）に関する上位（Ｋ−１）個の属性が選択されるが、ｐｅｒｍ＿１＾Ｋ、ｐｅｒｍ＿２＾Ｋ、…，ｐｅｒｍ＿｛ｓ−１｝＾Ｋに関して既に使われた全て又は一部の属性が除かれてから、上位（Ｋ−１）個の属性の選択が行われてもよい。
【００６５】
また、ｐｅｒｍ＿ｓ＾Ｋの生成は、最初に、属性ｉがｐ＿ｉに関して降順に整列されてから実施されてもよい。
【００６６】
第三の実施の形態によれば、相関関数を用いることで、ｐｅｒｍ＿ｓ＾Ｋを効率的に生成することができる。
【００６７】
次に、第四の実施の形態について説明する。第四の実施の形態では第一の実施の形態と異なる点について説明する。ここで特に言及されない点については、第一の実施の形態と同様でもよい。
【００６８】
第四の実施の形態では、確率ｐ＿ｉは、既知ではないとする。そこで、Ｋ次元ベクトル生成部１３は、当初において、Ｓ個のｐｅｒｍ＿ｓ＾Ｋの要素をランダムに選択する。但し、各ｐｅｒｍ＿ｓ＾Ｋの内容が、相互に重複しないようにする。
【００６９】
このようにして生成されたｐｅｒｍ＿ｓ＾Ｋを用いて、一定期間、情報管理装置１０の運用が行われる。すなわち、図４及び図５において説明した処理が実行される。
【００７０】
一定期間が経過すると、Ｋ次元ベクトル生成部１３は、当該期間内に受信されたクエリベクトルｑの履歴に基づいて、ｐ＿ｉを得る。ｐ＿ｉが得られたら、Ｋ次元ベクトル生成部１３は、第二の実施の形態において説明した方法によって、Ｓ個のｐｅｒｍ＿ｓ＾Ｋを生成し直す。以下、生成し直し前のｐｅｒｍ＿ｓ＾Ｋを「旧ｐｅｒｍ＿ｓ＾Ｋ」といい、生成し直し後のｐｅｒｍ＿ｓ＾Ｋを「新ｐｅｒｍ＿ｓ＾Ｋ」という。
【００７１】
オブジェクト登録部１２は、新ｐｅｒｍ＿ｓ＾Ｋの生成に応じ、旧ｐｅｒｍ＿ｓ＾Ｋに基づいて登録された情報（ｐｅｒｍ＿ｓ＾Ｋ（ｖ）⇔ＩＰ＃Ａの対応）を、新ｐｅｒｍ＿ｓ＾Ｋに基づいて移行する。すなわち、ｐｅｒｍ＿ｓ＾Ｋが変化することで、同じ情報であっても、エントリされるべきｔｒｅｅ＿ｓが異なる可能性が有るからである。移行完了後は、新ｐｅｒｍ＿ｓ＾Ｋが用いられて、図４及び図５において説明した処理が実行される。
【００７２】
その後、ｐｅｒｍ＿ｓ＾Ｋの生成のし直しが、一定期間ごとに繰り返されてもよい。なお、上記ではｐ＿ｉを用いた例を述べているが、ｐ＿ｉ代わりに、相関係数ｒ（ｉ，ｊ）が用いられて、ｐｅｒｍ＿ｓ＾Ｋの生成のし直しが実行されてもよい。
【００７３】
なお、上記各実施の形態において、情報管理装置１０は、情報管理システムの一例である。登録要求受付部１１は、第一の受信部の一例である。オブジェクト登録部１２は、登録部の一例である。名前解決要求受付部１４は、第二の受信部の一例である。オブジェクト検索部１５は、検索部の一例である。Ｋ次元ベクトル生成部１３は、生成部の一例である。
【００７４】
以上、本発明の実施例について詳述したが、本発明は斯かる特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形・変更が可能である。
【符号の説明】
【００７５】
１            情報管理システム
１０          情報管理装置
１１          登録要求受付部
１２          オブジェクト登録部
１３          Ｋ次元ベクトル生成部
１４          名前解決要求受付部
１５          オブジェクト検索部
１６          Ｋ次元ベクトル記憶部
１７          Ｋ次元データベース
２０          オブジェクト
１００        ドライブ装置
１０１        記録媒体
１０２        補助記憶装置
１０３        メモリ装置
１０４        ＣＰＵ
１０５        インタフェース装置
Ｂ            バス
Ｎ１          情報通信用のネットワーク
【図１】
2016035684.tif 000003
【図２】
2016035684.tif 000004
【図３】
2016035684.tif 000005
【図４】
2016035684.tif 000006
【図５】
2016035684.tif 000007