JP2014215806A - アドレス解決システム及び方法 - Google Patents

アドレス解決システム及び方法 Download PDF

Info

Publication number
JP2014215806A
JP2014215806A JP2013092514A JP2013092514A JP2014215806A JP 2014215806 A JP2014215806 A JP 2014215806A JP 2013092514 A JP2013092514 A JP 2013092514A JP 2013092514 A JP2013092514 A JP 2013092514A JP 2014215806 A JP2014215806 A JP 2014215806A
Authority
JP
Japan
Prior art keywords
attribute
vector
perm
score
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013092514A
Other languages
English (en)
Other versions
JP5957411B2 (ja
Inventor
川原 亮一
Ryoichi Kawahara
亮一 川原
斎藤 洋
Hiroshi Saito
洋 斎藤
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013092514A priority Critical patent/JP5957411B2/ja
Publication of JP2014215806A publication Critical patent/JP2014215806A/ja
Application granted granted Critical
Publication of JP5957411B2 publication Critical patent/JP5957411B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • G06F17/30

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】 条件にマッチするobjectを特定し、該objectのIPアドレスを特定する。
【解決手段】 本発明は、登録要求パケット内の多属性情報からobjectの属性ベクトルを生成する属性ベクトル生成手段と、検索要求パケット内の各属性に対する条件指定からクエリベクトルを生成するクエリベクトル生成手段と、を有するリゾルバと、リゾルバからobjectの属性ベクトルを取得し、各並び替えパタンに対して先頭のK個を抽出してK次元ベクトルを生成し、objectのアドレスと共に、K次元ベクトルDBに格納する登録手段と、クエリベクトルから並び替えパタンを用いてS通りのK次元ベクトルを生成する検索用ベクトル生成手段と、K次元ベクトルのk番目の要素で指定されている属性に対するレンジを用いてqのスコアを算出するスコア算出手段と、スコアが最も小さいK次元ベクトルに基づいてK次元ベクトルデータベースを検索し、各オブジェクトに対するアドレスを特定する検索手段と、を有するobject管理サーバを有する。
【選択図】 図1

Description

本発明は、アドレス解決システム及び方法に係り、特に、情報通信ネットワークにおいて、いくつかの条件指定によって、ネットワークに接続されているobject(通信機能を持つ家電品や端末などを指す)を特定し、通信できるようにするためのアドレス解決システム及び方法に関する。
従来の情報通信ネットワークは、論理空間上のアドレスにより通信対象を指定している、固定電話では電話番号、インターネットではIPアドレスがそれにあたり、これらはネットワーク上の位置とも対応しているのでその位置に接続することで通信が可能となる。
一方で、携帯電話の電話番号やインターネットでのURLは、より上位の論理アドレスまたは名前と解釈できる。つまり、これらは通信相手や情報の論理位置を示すが、ネットワーク上の接続位置は示していないため、前者ではLR(ロケーションレジスタ)、後者ではDNS(ドメインネームサーバ)により、ネットワーク上の接続位置を示すアドレスへの変換(いわゆる名前解決)が必要となる。後者の場合であれば、URLから変換後のIPアドレスを用い、接続する(例えば、非特許文献1,2参照)。
弓場英明監修、未来ねっと技術シリーズ ユビキタスネットワーク技術、電気通信協会、2003. http://www.nic.ad.jp/ja/newsletter/No22/080.html
ところで、今後、非常に多数のobjectがネットワークに接続されるようになったときに、個々のobjectに一意に付与された名前をユーザが把握した上で通信を行う代わりに、例えば、ユーザが、目の前で落し物をした自転車に乗っている人と通信したい、あるいは、ある地域である時間帯に温度が20度以上を示したセンサと通信したい、といったユーザの通信要求条件(様々な属性に対する検索条件の組み合わせ)を直接指定することでobjectを特定して通信できるようにしたい場合が想定される。
しかし、既存のシステムでは、個々のobjectに一意に付与された名前をユーザが把握した上でその名前を指定して通信を行う。例えば携帯電話であれば電話番号をユーザが指定することで通信を行う。そのため、上述のような利用形態を実現することは困難である。
本発明は、上記の点に鑑みなされたもので、objectが有する様々な属性(物理空間上の位置、時刻情報やその他の属性(色)など)に対する条件指定を行うことで、条件にマッチするobjectを特定し、該objectのIPアドレスを特定可能なアドレス解決システム及び方法を提供することを目的とする。
上記の課題を解決するため、本発明(請求項1)は、情報通信ネットワークに接続されているobjectが、複数の属性に対する値を有し、該属性の値の組み合せにより条件指定を行うことでobjectを検索し、該objectのアドレスを特定するアドレス解決システムであって、
前記情報通信ネットワークに接続されるリゾルバとobject管理サーバを有し、
前記リゾルバは、
登録要求パケットを取得して、該登録要求パケット内のobjectのアドレス、多属性情報を抽出し、該多属性情報から該objectの属性ベクトルを生成し、前記object管理サーバに送信する属性ベクトル生成手段と、
検索要求パケットを取得して、該検索要求パケット内の各属性に対する条件指定からクエリベクトルを生成し、前記object管理サーバに送信するクエリベクトル生成手段と、
を有し、
前記object管理サーバは、
前記情報通信ネットワークに接続され、前記リゾルバから前記objectの属性ベクトルを取得し、属性i(i=1〜d)の並び替えパタンをS個用意し、各並び替えパタンに対して先頭のK個(K<d)を抽出してK次元ベクトルを生成し、objectのアドレスと共に、K次元ベクトルデータベースに格納する登録手段と、
前記リゾルバから前記クエリベクトルqを取得し、前記登録手段の前記並び替えパタンを用いてS通りのK次元ベクトルPerms K(q)を生成する検索用ベクトル生成手段と、
前記K次元ベクトルPerms K(q)のk番目の要素で指定されている属性に対するレンジを用いてqのスコアCs(q)を算出するスコア算出手段と、
前記スコアが最も小さいsに対するK次元ベクトルPerms K(q)に基づいて前記K次元ベクトルデータベースを検索し、特定された各オブジェクトに対するアドレスを特定する検索手段と、を有する。
また、本発明(請求項2)は、前記スコア算出手段において、
全object集合に対する属性iに関する累積分布関数Fi(x)=P[objectの属性iの値≦xi]を作成しておき、クエリperms K (q)における属性skについてのレンジ指定が、xlowsk〜xhighskの場合、前記スコアを
Figure 2014215806
により求める(ここで、λ1,λ2は予め定めるパラメータであり、As(q),R s(q)はそれぞれ2K次元のベクトルであり、
Figure 2014215806
とし、Lは予め定める正の整数、r[x]はxの小数点以下を四捨五入して整数値に変換する関数、
Figure 2014215806
とする(pは予め定めるパラメータでp>1))手段を含む。
また、本発明(請求項3)は、前記スコア算出手段において、
ツリー型のデータ構造treesの木の高さをLmとし、treesの各ノードは、探索空間(K次元空間)の部分空間を担当しているとし、あるノードは、ある次元に関して自身の担当空間を2分割して左の子と右の子にそれぞれ分岐するような2分岐ツリーを構成しているとする。このとき、permsに対するスコアを、
Figure 2014215806
より計算する(但し、\sum{l=1} {Lm}Xl = X1 + X2+…+XLmを意味し、
Figure 2014215806
(a,bは正の整数でa≦bの場合。ただしa>bは\Pi{j=a} b=1と定義する)mod[l/K]は、lをKで割った剰余、ceil[x]は、xの少数点以下を切り上げた整数の値、floor[x]は、xの小数点以下を切り捨てた整数の値、j=1からKまでの添え字jは、perm sで指定された属性s1からsKまでを指す)手段を含む。
また、本発明(請求項4)は、前記スコア算出手段において、
属性に対するスコアf(s'k)として、前記累積分布関数Fを用いて
Figure 2014215806
を計算する手段を含む。
以上説明したように、本発明によれば、objectが有する様々な属性(物理空間上の位置や、色)に対する条件指定を行うことで、条件にマッチするobjectを特定し、該objectのIPアドレスを特定可能なアドレス解決を提供することが可能となる。
本発明の第1の実施の形態におけるシステム構成図である。 本発明の第1の実施の形態におけるリゾルバの構成図である。 本発明の第1の実施の形態におけるobject管理サーバの構成図である。 本発明の第1の実施の形態における2次元データ(x1,x2)の木構造の例である。 本発明の第1の実施の形態における次元数を変えたときの処理対象ノード数を示す図である。 本発明の第1の実施の形態における次元数を変えたときの処理対象ノード数の数値計算例である。 本発明の第1の実施の形態における登録時処理のフローチャートである。 本発明の第1の実施の形態における検索時処理のフローチャートである。
以下、図面と共に本発明の実施の形態を説明する。
[第1の実施の形態]
図1は、本発明の第1の実施の形態におけるIPネットワークの基本構成を示す。同図に示すシステムは、IPネットワーク1にobject10、リゾルバ20、object管理サーバ30が接続されている。なお、ここではIPネットワーク1を例に記載しているが、IPアドレス以外の論理アドレスを用いた他のネットワークであってもよい(つまり、論理アドレスがネットワーク上の位置を指し、かつその論理アドレスを指定すれば所望の宛先までデータやパケットを転送することが可能であれば他のネットワークであってもよい)。ここで、object10は、当該object10を識別するID、IPアドレスに加え、多属性情報(位置情報、色、時刻情報等)を有するとする。
本発明の第1の方法を用いた場合のリゾルバの構成例を図2に、object管理サーバの構成例を図3に示す。
リゾルバ20は、登録・検索要求受付部21、object・クエリベクトル生成部22を有し、object・クエリベクトル生成部22はobject管理サーバ30に接続されている。
object管理サーバ30は、object・クエリベクトル受付部31、K次元ベクトル作成部32、スコア計算部33、K次元ベクトルデータベース34を有する。
本実施の形態では、情報通信ネットワーク(IPネットワーク1)に接続されているobject10(例:通信機能をもつ家電品や端末、センサなどを指し、IPアドレス=IP#Aを持つとする)が、複数の属性(例えば、時間や位置、端末の色、センサの気温など)に対する値(例えば、時刻=10:00,位置=緯度XXX,経度YYY,色=赤,気温=20度など)を有するものとし、これら複数属性:値の組み合わせにより条件指定を行うことでobject10を検索し、該object10のアドレスIP#Aを特定することを考える。
このような、複数の属性に関して、レンジを指定することで条件にマッチするobjectを探索する方法として、R-tree(例えば、非特許文献3(A. Guttman, "R-Trees: A Dynamic Index Structure for Spatial Searching," ACM SIGMOD 1984.)、非特許文献4(L. Arge et al., "The Priority R-tree: a practically efficient and worst-case optimal R-tree," SIGMOD 2004.)や非特許文献5(http://en.wikipedia.org/wiki/K-dtree]やKD-tree)と呼ばれるツリー型のデータ構造を用いる方法が一般的である。
図4に2次元データ(x1,x 2)に対する具体例を示す。本図に示すように、各次元の値に対する範囲をいくつかの区間に分割し、それぞれの区間を担当する子ノードを用意する。例えば、本図のrootノードAにおいて、[0-1,0-1]と記載しているが、これは、本ノードの担当する範囲が1次元目、2次元目とも0から1であることを意味する。ノードBは[0-0.5,0-1]の範囲を担当している。各子ノードは自身の担当する区間を分割し、各分割区間に対応する子ノードを用意する。
(1)リゾルバ20によるobjectの登録時には、自身の値(x1,x 2)を担当するleafノード(図4の最下位層のノード)にobjectをobject管理サーバ30にエントリする。
(2)object管理サーバ30によるobjectの検索時には、指定されたレンジに対応する子ノードを辿ることで、対象objectを特定する。例えば、0.1<x1<0.3, 0.1<x2<0.25を満たすobjectを探索する場合、rootノードA→ノードB→leafノードDと辿って、object=(0.2,0.2)を見つける。
しかしながら、属性の数(=次元数)が大きくなると、このようなツリー型のデータ構造を用いた検索では、全ノード探索に近づく問題が指摘されている(次元の呪いとよばれる)(例えば、非特許文献6(C. B¨ohm et al.,"Searching in high-dimensional spaces: Index structures for improving the performance of multimedia databases," ACM Computing Surveys, 2001.)参照)。
以下では、上記の次元の呪いに対処する方法を述べている。
属性iがi=1からdまで存在するとし(以下で、属性iを次元i、属性数dを次元数dとよぶ場合がある)、属性iにおける属性値の取りうる範囲を[0,mi]とする。属性が色のような数値でない場合は数値に対応付けることにする(例えば24色で表現するとして、mi=24にし、色が白=1、黄=2、という対応付を行う)。object管理サーバ30のK次元ベクトル作成部32は、各object#jの各属性iに対する属性値x(j) iが与えられているとし、object#jの属性ベクトルv(j)を、
v(j)=[x(j), x(j), …, x(j)i, …, x(j)]
として生成しておく。
ここで、属性i=1からdの並び替えのパタンをS個用意し、それぞれの並び替えパタンに対して先頭のK個(K<d)を抽出して、K次元ベクトルを作成する。例えばd=5とし、並び替えのパタンをS=3個用意するとして、
perm1=[3,4,2,1,5],
perm2=[2,5,1,3,4],
perm3=[5,4,2,1,3]
を生成する。各perms の先頭K(=2とする)個を抽出し、perm K=[3,4], perm2 K=[2,5], perm3 K =[5,4]というS個のK次元ベクトルを作成する。
perms Kで指定された属性の順に、オブジェクトv(j)の要素を並び替える。この操作をperms K (v(j))と記載する。例えば、
v(j)=[x(j)1, x(j)2, …, x(j)i, …,x(j)5]
に対して、
perm1 K (v(j))=[x(j)3, x(j)4]
となる。以上を各objectに対して実施する。R-treeやkd-treeと呼ばれる多次元データに対するツリー型のデータ構造をs=1からS個用意しておき(これをtreesと呼ぶ)、perms K (v(j))をs番目のtreesにエントリする。これを各object10に対して実施しておく。
一方、検索を行う際には、各属性iに対して、検索条件を指定する。例えば属性iが気温とし、気温の値xiが20度≦xi≦25度というようにレンジ指定で検索を行う。具体的には、K次元ベクトル作成部32において、属性iのレンジ指定がxlowi≦xi≦xhighiの場合、クエリベクトルqを
q=[xlow〜xhigh, xlow〜xhigh ..., xlowi〜xhighi, …, xlow〜xhigh]
として生成する。
検索時には、クエリベクトルqに対してperms Kの操作を行う。例えば
q=[xlow1〜xhigh1, xlow2〜xhigh2, ..., xlowi〜xhighi, …, xlow5〜xhigh5]
に対して、
perm1 K(q)=[xlow3〜xhigh3,xlow4〜xhigh4]
となる。
スコア計算部33は、perms K (q)のk番目の要素(k=1からK)で指定されている属性sk に対するレンジ[xlowsk, xhighsk]を用いて、permに対するクエリベクトルqのスコアCs(q)を計算する。スコアはobject探索コストやobject特定精度と関連する尺度とし、スコアが小さいほど良い指標とする。Cs(q)を各s=1〜Sについて計算し、スコアが最も小さいsを選択し、該sに対するtree sにおいて、perms K(q)で指定されたレンジを満たすobjectをK次元ベクトルデータベース34を探索して取得する。
このように、object管理サーバ30のK次元ベクトル作成部32では、Kを次元数dよりも小さい値に設定することで、objectベクトルv(j)を、低次元(K次元)ベクトルへ変換し、K次元空間上で探索することで次元の呪いを回避している。
ツリー型のデータ構造を用いてレンジ検索を行う際、ツリーを構成するノードの担当範囲が、クエリでの指定範囲に包含されている場合は、該ノード配下のobjectは全て条件にマッチすると判定できるが、ノードの範囲とクエリでの指定範囲の一部が重なる場合には、該ノード配下のobjectが本当に条件を満たすかを調べる必要があり、探索に時間を要することになる。簡単な例として、1次元の場合と2次元の場合を比較する(図5-(a)と(b))。ここでは、探索空間を16個の区間に分割している場合を示している。このとき、レンジ長が全区間の半分であるクエリがあったとする。一次元の場合(図5−(a))、該クエリの指定範囲とノードの範囲の一部が重なるノード数は2ノード(ノード1と9)となる。それに対して、2次元の場合(図5−(b))、該クエリの指定範囲とノードの範囲の一部が重なるノード数は8ノード(ノード5,6,7,9,11,13,14,15)となる。このように次元が大きい方が一部と重なるケースが大きくなると考えられる。
図6は、探索空間を232個に分割したときに、各leafノードの担当範囲がクエリの指定範囲の一部と重なるようなleafノードの数Nnonoverlapを数値計算で計算した結果である。X軸は次元数d、Y軸はNnonoverlap/232としてプロットしている。これより、次元が小さいと該ノード数が少なくて済むことが分かる。
なお、object管理サーバ30のK次元空間での探索においては、一部の属性のみを対象に検索することとなるため、誤検出の可能性がある。誤検出率をなるべく小さくするために、スコアを導入している。スコア計算部33のスコアの計算方法は後述する。
object管理サーバ30において、treesを探索する際、クエリperms K(q)の探索がtreesにおけるleafノード(本ツリーの最下位層に位置するノード)まで到達した際に、leafノード配下に属するobjectがperms K(q)の条件を満たすかチェックする代わりに、以下を実施する。
perms Kで指定されている属性を除いた属性の集合Us Kを用意する。もしperms K=[3,4],全属性の集合が[1,2,3,4,5]であれば、Us K=[1,2,5]となる。スコア計算部33は、Us Kにおける(d-K)個の属性
Figure 2014215806
に対してスコアf(s'k)を計算する(スコアの具体的な計算方法は後述する)。K次元ベクトル作成部32は、本スコアについて昇順に並び替え、上位K2個の属性を調べる。その上位K2個の属性s'kそれぞれについて、leafノード配下に属するobjectが、クエリqの属性s' kに対する指定条件を満たすかチェックし、K2個全てについて条件を満たしたobjectを抽出する。
この手順について補足説明をする。図5-(b)の16個の分割空間が、それぞれツリーのleafノードに対応するとする。また、クエリの範囲は点線の矩形だったとする。このとき、leafノード10は、クエリの範囲に完全に包含されているため、該leafノード配下のobjectはクエリの条件を満たすと判定できる。一方、一部重なるleafノード5,6,7,9,11,13,14,15は、それぞれの配下のobjectがクエリの条件を満たすか、調べる必要がある。その際、各objectに対し、最悪ケースで次元数分のチェックが必要となる。また、leafノードの範囲の一部と重なっていることから、該leafノード配下のobjectはクエリの条件を満たす可能性が高いため、次元数分のチェックが必要になる確率も高くなる。(逆に、クエリの条件を満たす可能性が低いobjectに対してであれば、例えば最初の次元をチェックしただけで,クエリの条件を満たさないobjectだと判定できる可能性がある。)そこで、(通常のツリー型データ構造での探索のように)leafノードでperms K(q)の条件を満たすかチェックすることをせずに、本ツリー以外の属性(次元)に関する条件について調べることで、objectの更なる絞り込みを効率的に行っている。本発明の効果については、評価結果を後程示す。
図7は、本発明の第1の実施の形態におけるobject登録時のフローチャートである。
ステップ101) object10がネットワーク(IPネットワーク1)に接続されたら、object登録要求パケットをリゾルバ20内の登録・検索要求受付部21に送信する。その際、object10は、自身のIPアドレス、objectID(=j),多属性情報(位置情報,色,時刻情報等)を通知する。
ステップ102)object10からの登録要求パケットがリゾルバ20へ到着したら、リゾルバ20の登録・検索要求受付部21は、当該object10の各種情報を読み出し、object・クエリベクトル生成部22に通知する。object・クエリベクトル生成部22では、多属性情報から該object#jの属性ベクトルv(j)を生成する。具体的な手順は以下の通りである。
属性iがi=1からdまで存在するとし(以下で、属性iを次元i、属性数dを次元数dと呼ぶ場合がある)、属性iにおける属性値の取りうる範囲を[0,mi]とする。属性が色のような数値でない場合は数値に対応付けることにする(例えば24色で表現するとして、mi=24にし、色が白=1、黄=2、という対応付を行う)。各object#jの各属性iに対する属性値x(j) iが与えられているとし、object#jの属性ベクトルv(j)を、v(j)=[x(j)1, x(j) 2, …, x(j)i, …, x(j)d]として生成する。
生成したv(j)とIPアドレス(IP#A)の組を、object管理サーバ30へ通知する。
ステップ103) objectベクトルv(j)とIP#Aの組をobject管理サーバ30内のobject・クエリベクトル受付部31にて受信したら、それをK次元ベクトル作成部32に通知する。K次元ベクトル作成部32では、以下の手順により、S通りのK次元ベクトル
perms K(v(j))
を生成する。
属性i=1からdの並び替えのパタンをS個用意し、それぞれの並び替えパタンに対して先頭のK個(K<d)を抽出して、K次元ベクトルを作成する。例えばd=5とし、並び替えのパタンをS=3個用意するとして、
perm1=[3,4,2,1,5], perm2=[2,5,1,3,4], perm3=[5,4,2,1,3]
を生成する。各perms の先頭K(=2とする)個を抽出し、
perm1 K=[3,4], perm2 K=[2,5], perm3 K=[5,4]
というS個のK次元ベクトルを作成する。perms Kで指定された属性の順に、オブジェクトv(j)の要素を並び替える。この操作をperms K (v(j))と記載する。例えば、
v(j)=[x(j)1, x(j)2, …, x(j)i, …, x(j)5]
に対して、
perm1 k(v(j))=[x(j)3, x(j)4]
となる。
ステップ104) K次元ベクトル作成部32は、K次元ベクトルとIP#Aの組をK次元ベクトルデータベース34に格納する。具体的には、perms K(v(j))⇔objectID#jの対応、ならびに、objectID#j⇔IP#Aの対応をエントリする。(あるいは,perms K(v(j))⇔IP#AのようにIPアドレスと直接対応付けてもよい.)なお、perms K(v(j))⇔objectID#jの対応は、R-treeやkd-treeと呼ばれる多次元データに対するツリー型のデータ構造をs=1からS個用意しておき(これをtreesとよぶ)、perms K(v(j))をs番目のtreesにエントリする。これを各objectに対して実施しておく。
次にobject検索時の処理フローについて図8を用いて説明する。
ステップ201) ユーザは各属性に関する条件指定をした情報(例えば、位置が○○の範囲、時刻が△△の範囲、色=赤など)を検索要求パケットとしてリゾルバ20に送信する。
ステップ202) リゾルバ20内の登録・検索要求受付部21にて検索要求パケットを受信したら、各属性に対する条件指定を読み出し、object・クエリベクトル生成部22へ通知する。object・クエリベクトル生成部22では、以下の手順により、クエリベクトルqを生成する。属性iのレンジ指定がxlowi≦xi≦xhighiの場合、クエリベクトルqを、
q=[xlow1〜xhigh1, xlow2〜xhigh2 ..., xlowi〜xhighi…, xlowd〜xhighd]
として生成する。生成したqを、object管理サーバ30へ通知する。
ステップ203) object管理サーバ30内のobject・クエリベクトル受付部31にてクエリベクトルqを受信したら、それをK次元ベクトル作成部32に通知する。K次元ベクトル作成部32では、以下の手順により、S通りのK次元ベクトルperms K (q)を生成する。
object登録時に用いた、属性i=1からdの並び替えのパタンperms K(s=1からS)を用いてperms K (q)を生成する。例えば、object登録時のステップ103に準備した
perm1=[3,4,2,1,5], perm2=[2,5,1,3,4], perm3=[5,4,2,1,3]
を用いる。この場合、例えばs=1に対しては、
perm1 K(q)=[xlow3〜xhigh3, xlow4〜xhigh4]
となる。
ステップ204) K次元ベクトル作成部32は、生成したperms K (q)をスコア計算部33に通知する。スコア計算部33では、perms K (q)のk番目の要素(k=1からK)で指定されている属性skに対するレンジ[xlowsk, xhighsk]を用いて、qのスコアCs (q)を計算する。スコアはobject探索コストやobject特定精度と関連する尺度とし、スコアが小さいほど良い指標とする。
ここでは、以下の手順でスコアを計算する。まず、スコア計算のために、全object集合に対する属性iに関する累積分布関数Fi (x)=P[objectの属性iの≦xi]を作成しておく。クエリperms K (q)における属性skについてのレンジ指定がxlowsk〜xhighskの場合、スコアとして、
Figure 2014215806
を用いる。ここで、λ1、λ2は予め定めるパラメータであり,As(q),R s(q)はそれぞれ2K次元のベクトルであり、
Figure 2014215806
とする。Lは予め定める正の整数、r[x]はxの小数点以下を四捨五入して整数値に変換する関数である。また、
Figure 2014215806
とする(pは予め定めるパラメータでp>1)。
ステップ205) C s (q)を各s=1からSについて計算し、スコアが最も小さいsを選択し、そのsの値をK次元ベクトル作成部に返す。K次元ベクトル作成部32は、該sに対するperm s K(q)をK次元ベクトルデータベース34に通知する。K次元ベクトルデータベース34では、本データベース34上で管理されているtree sにおいて、perm s K(q)で指定されたレンジを満たすobjectを探索する。
tree sを探索する際、クエリperms K(q)の探索がtree sにおけるleafノード(本ツリーの最下位層に位置するノード)まで到達した際に、leafノード配下に属するobjectがperms K(q)の条件を満たすかチェックする代わりに、以下を実施する。perms K(q)で指定されている属性を除いた属性の集合Us Kを用意する。もしperms K=[3,4]、全属性の集合が[1,2,3,4,5]であれば、Us K=[1,2,5]となる。Us Kにおける(d-K)個の属性s'1, s'2, …s'k, …, s' {d-K}に対してスコアf(s'k)を計算する。
スコア計算部33のスコア計算として、以下の手順を用いる。
累積分布関数Fを用いて
Figure 2014215806
を計算する。本スコアについて昇順に並び替え、上位K2個の属性を調べる。その上位K2個の属性s'kそれぞれについて、leafノード配下に属するobjectが、クエリqの属性s'kに対する指定条件を満たすかチェックし、K2個全てについて条件を満たしたobjectを抽出する。
本検索により特定された各object#jに対するIP#Aを読み出し、その結果をリゾルバ20に通知する。
<評価結果>
本実施の形態を用いたときの数値計算による評価結果について述べる。
全属性数d=100, object数N=240, 特定すべきobject(つまり、クエリqの条件をすべて満たすobject)の数の期待値をH=100個とする。本実験ではKを何パターンか振らせる。
S=floor[d/K](floor()は括弧内の値の小数点以下を切り捨て)
とし、s=1からSに対して、
perm s K =[K×(s-1)+1, K×(s-1)+2, …, K×s]
とする。また、K2=10,λ1=1, λ2=0とする。object10は各属性に関して一様に分布しているとする。各属性iについて、検索範囲を設定する次元をd2=25個選択する。その際、Zipf分布に従って属性iを選択する。また、選択されたd2個の属性各々について、クエリの範囲を以下のように設定する。
・平均Tavg=(H/N)(1/d2),標準偏差Tsd=min(Tavg/2,(1-Tavg)/2)の正規分布に従う乱数の値をレンジ長Tlenとする。それをさらにTlen←min(0.001,max(1,Tlen))とする。
・xlowを、[0,1-Tlen]の間の一様分布に従う乱数の値とし、xhigh=xlow+Tlenとする。
このときの評価結果を表1に示す。
Figure 2014215806
ここで2カラム目のfprとは、本来特定すべきobject(つまり、クエリqの条件をすべて満たすobject)ではないobjectが誤って検出される確率を指す。3カラム目のcost ratioは,tree sの各階層において、クエリの範囲とその階層のノードの担当範囲の一部のみ重複したためにさらにその子ノードを調査する必要があったノードの数を、全階層について数え上げたものと、leafノードにおいてその配下にあるobjectに対して探索処理を行った回数の和である(その値をd次元ツリーを用いた場合の探索コストで正規化している)。
これより、例えばK=10とすると、d次元ツリー探索時に比べてコストを約0.0055程度に抑えつつ、誤検出率を1.45E-08とできていることが分かる。
[第2の実施の形態]
本実施の形態では、object管理サーバ30のスコア計算部33の他の計算方法について説明する。
上記の第1の実施の形態におけるtreesに対するスコア計算手順(図8のステップ204)を以下のように変更してもよい。
treesの木の高さをLmとし、treesの各ノードは、探索空間(K次元空間)の部分空間を担当しているとし、あるノードは、ある次元に関して自身の担当空間を2分割して左の子と右の子にそれぞれ分岐するような2分岐ツリーを構成しているとする。このとき、permsに対するスコアとして
Figure 2014215806
を計算する。ここで、
Figure 2014215806
(a,bは正の整数でa≦bの場合。ただしa>bは\Pi{j=a} b=1と定義する)mod[l/K]は、lをKで割った剰余、ceil[x]は、xの少数点以下を切り上げた整数の値、floor[x]は、xの小数点以下を切り捨てた整数の値、j=1からKまでの添え字jは、perm sで指定された属性s1からsKまでを指すとする。以上のスコアを、第1の実施の形態のスコアC s(q)に追加してもよいし、C s(q)の第1項目、あるいは第二項目の代わりに用いてもよい。
なお、上記の図2に示すリゾルバ20及び図3に示すobject管理サーバ30の各構成要素の動作をプログラムとして構築し、リゾルバ、object管理サーバとして利用されるコンピュータにインストールして実行させる、または、ネットワークを介して流通させることが可能である。
本発明は、上記の実施の形態に限定されることなく、特許請求の範囲内において、種々変更・応用が可能である。
1 IPネットワーク
10 object
20 リゾルバ
21 登録・検索要求受付部
22 object・クエリベクトル生成部
30 object管理サーバ
31 object・クエリベクトル受付部
32 K次元ベクトル作成部
33 スコア計算部
34 K次元ベクトルデータベース

Claims (8)

  1. 情報通信ネットワークに接続されているobjectが、複数の属性に対する値を有し、該属性の値の組み合わせにより条件指定を行うことでobjectを検索し、該objectのアドレスを特定するアドレス解決システムであって、
    前記情報通信ネットワークに接続されるリゾルバとobject管理サーバを有し、
    前記リゾルバは、
    登録要求パケットを取得して、該登録要求パケット内のobjectのアドレス、多属性情報を抽出し、該多属性情報から該objectの属性ベクトルを生成し、前記object管理サーバに送信する属性ベクトル生成手段と、
    検索要求パケットを取得して、該検索要求パケット内の各属性に対する条件指定からクエリベクトルを生成し、前記object管理サーバに送信するクエリベクトル生成手段と、
    を有し、
    前記object管理サーバは、
    前記情報通信ネットワークに接続され、前記リゾルバから前記objectの属性ベクトルを取得し、属性i(i=1〜d)の並び替えパタンをS個用意し、各並び替えパタンに対して先頭のK個(K<d)を抽出してK次元ベクトルを生成し、objectのアドレスと共に、K次元ベクトルデータベースに格納する登録手段と、
    前記リゾルバから前記クエリベクトルqを取得し、前記登録手段の前記並び替えパタンを用いてS通りのK次元ベクトルPerms K(q)を生成する検索用ベクトル生成手段と、
    前記K次元ベクトルPerms K(q)のk番目の要素で指定されている属性に対するレンジを用いてqのスコアCs(q)を算出するスコア算出手段と、
    前記スコアが最も小さいsに対するK次元ベクトルPerms K(q)に基づいて前記K次元ベクトルデータベースを検索し、特定された各オブジェクトに対するアドレスを特定する検索手段と、
    を有することを特徴とするアドレス解決システム。
  2. 前記スコア算出手段は、
    全object集合に対する属性iに関する累積分布関数Fi (x)=P[objectの属性iの値≦xi]を作成しておき、クエリperms K(q)における属性skについてのレンジ指定が、xlowsk〜xhighskの場合、前記スコアを
    Figure 2014215806
    により求める(ここで、λ1,λ2は予め定めるパラメータであり、As(q),R s(q)はそれぞれ2K次元のベクトルであり、
    Figure 2014215806
    とし、Lは予め定める正の整数、r[x]はxの小数点以下を四捨五入して整数値に変換する関数、
    Figure 2014215806
    とする(pは予め定めるパラメータでp>1))手段を含む
    請求項1記載のアドレス解決システム。
  3. 前記スコア算出手段は、
    ツリー型のデータ構造treesの木の高さをLmとし、treesの各ノードは、探索空間(K次元空間)の部分空間を担当しているとし、あるノードは、ある次元に関して自身の担当空間を2分割して左の子と右の子にそれぞれ分岐するような2分岐ツリーを構成しているとき、permsに対するスコアを、
    Figure 2014215806
    より計算する(但し、
    Figure 2014215806
    (a,bは正の整数でa≦bの場合。ただしa>bは\Pi{j=a} b=1と定義する)mod[l/K]は、lをKで割った剰余、ceil[x]は、xの少数点以下を切り上げた整数の値、floor[x]は、xの小数点以下を切り捨てた整数の値、j=1からKまでの添え字jは、perm sで指定された属性s1からsKまでを指す)手段を含む
    請求項1記載のアドレス解決システム。
  4. 前記スコア算出手段は、
    属性に対するスコアf(s' k)として、前記累積分布関数Fを用いて
    Figure 2014215806
    を計算する手段を含む請求項2記載のアドレス解決システム。
  5. 情報通信ネットワークに接続されているobjectが、複数の属性に対する値を有し、該属性の値の組み合わせにより条件指定を行うことでobjectを検索し、該objectのアドレスを特定するアドレス解決方法であって、
    前記情報通信ネットワークに接続されるリゾルバとobject管理サーバを有するシステムにおいて、
    前記リゾルバが、
    登録要求パケットを取得して、該登録要求パケット内のobjectのアドレス、多属性情報を抽出し、該多属性情報から該objectの属性ベクトルを生成し、前記object管理サーバに送信する属性ベクトル生成ステップと、
    検索要求パケットを取得して、該検索要求パケット内の各属性に対する条件指定からクエリベクトルを生成し、前記object管理サーバに送信するクエリベクトル生成ステップと、を行い、
    前記object管理サーバが、
    前記情報通信ネットワークに接続され、前記リゾルバから前記objectの属性ベクトルを取得し、属性i(i=1〜d)の並び替えパタンをS個用意し、各並び替えパタンに対して先頭のK個(K<d)を抽出してK次元ベクトルを生成し、objectのアドレスと共に、K次元ベクトルデータベースに格納する登録ステップと、
    前記リゾルバから前記クエリベクトルqを取得し、前記登録ステップにおける前記並び替えパタンを用いてS通りのK次元ベクトルPerms K(q)を生成する検索用ベクトル生成ステップと、
    前記K次元ベクトルPerms K(q)のk番目の要素で指定されている属性に対するレンジを用いてqのスコアCs(q)を算出するスコア算出ステップと、
    前記スコアが最も小さいsに対するK次元ベクトルPerms K(q)に基づいて前記K次元ベクトルデータベースを検索し、特定された各オブジェクトに対するアドレスを特定する検索ステップと、
    を行うことを特徴とするアドレス解決方法。
  6. 前記スコア算出ステップにおいて、
    全object集合に対する属性iに関する累積分布関数Fi (x)=P[objectの属性iの値≦xi]を作成しておき、クエリperms K (q)における属性skについてのレンジ指定が、xlowsk〜xhighskの場合、前記スコアを
    Figure 2014215806
    により求める(ここで、λ1,λ2は予め定めるパラメータであり、As(q),R s(q)はそれぞれ2K次元のベクトルであり、
    Figure 2014215806
    とし、Lは予め定める正の整数、r[x]はxの小数点以下を四捨五入して整数値に変換する関数、
    Figure 2014215806
    とする(pは予め定めるパラメータでp>1))
    請求項5記載のアドレス解決方法。
  7. 前記スコア算出ステップにおいて、
    ツリー型のデータ構造treesの木の高さをLmとし、treesの各ノードは、探索空間(K次元空間)の部分空間を担当しているとし、あるノードは、ある次元に関して自身の担当空間を2分割して左の子と右の子にそれぞれ分岐するような2分岐ツリーを構成しているとき、permsに対するスコアを、
    Figure 2014215806
    より計算する(但し、
    Figure 2014215806
    (a,bは正の整数でa≦bの場合。ただしa>bは\Pi{j=a} b=1と定義する)mod[l/K]は、lをKで割った剰余、ceil[x]は、xの少数点以下を切り上げた整数の値、floor[x]は、xの小数点以下を切り捨てた整数の値、j=1からKまでの添え字jは、perm sで指定された属性s1からsKまでを指す)
    請求項5記載のアドレス解決方法。
  8. 前記スコア算出ステップにおいて、
    属性に対するスコアf(s' k)として、前記累積分布関数Fを用いて
    Figure 2014215806
    を計算する
    請求項6記載のアドレス解決方法。
JP2013092514A 2013-04-25 2013-04-25 アドレス解決システム及び方法 Expired - Fee Related JP5957411B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013092514A JP5957411B2 (ja) 2013-04-25 2013-04-25 アドレス解決システム及び方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013092514A JP5957411B2 (ja) 2013-04-25 2013-04-25 アドレス解決システム及び方法

Publications (2)

Publication Number Publication Date
JP2014215806A true JP2014215806A (ja) 2014-11-17
JP5957411B2 JP5957411B2 (ja) 2016-07-27

Family

ID=51941512

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013092514A Expired - Fee Related JP5957411B2 (ja) 2013-04-25 2013-04-25 アドレス解決システム及び方法

Country Status (1)

Country Link
JP (1) JP5957411B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108234435A (zh) * 2016-12-22 2018-06-29 上海行邑信息科技有限公司 一种基于ip分类的自动检测方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020769A (ja) * 2007-07-13 2009-01-29 Toshiba Corp パターン探索装置及びその方法
JP2011123601A (ja) * 2009-12-09 2011-06-23 Nec Corp イベント一致判定装置、イベント一致判定方法、および、イベント一致判定プログラム
JP2013008295A (ja) * 2011-06-27 2013-01-10 Nippon Telegr & Teleph Corp <Ntt> 情報記録装置、情報記録方法およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009020769A (ja) * 2007-07-13 2009-01-29 Toshiba Corp パターン探索装置及びその方法
JP2011123601A (ja) * 2009-12-09 2011-06-23 Nec Corp イベント一致判定装置、イベント一致判定方法、および、イベント一致判定プログラム
JP2013008295A (ja) * 2011-06-27 2013-01-10 Nippon Telegr & Teleph Corp <Ntt> 情報記録装置、情報記録方法およびプログラム

Also Published As

Publication number Publication date
JP5957411B2 (ja) 2016-07-27

Similar Documents

Publication Publication Date Title
US20200183932A1 (en) Optimizing write operations in object schema-based application programming interfaces (apis)
US10102227B2 (en) Image-based faceted system and method
US10116725B2 (en) Processing data retrieval requests in a graph projection of an application programming interfaces (API)
JP7065082B2 (ja) 分散されたセマンティック記述子に対するセマンティッククエリ
EP2804114A1 (en) Database controller, method, and program for managing a distributed data store
US9659214B1 (en) Locally optimized feature space encoding of digital data and retrieval using such encoding
CN105138674B (zh) 一种数据库访问方法
Leung et al. Distributed uncertain data mining for frequent patterns satisfying anti-monotonic constraints
González-Beltrán et al. Range queries over skip tree graphs
JP5957411B2 (ja) アドレス解決システム及び方法
US10089361B2 (en) Efficient mechanism for managing hierarchical relationships in a relational database system
Mühleisen et al. A self-organized semantic storage service
CN117171161A (zh) 数据查询方法及装置
JP2011170461A (ja) 情報蓄積検索方法及び情報蓄積検索プログラム
Zhang et al. Storing and querying semi-structured spatio-temporal data in hbase
JP5909199B2 (ja) アドレス解決システム及び方法
Babu et al. Context aware reliable sensor selection in IoT
JP5965353B2 (ja) アドレス解決システム及び方法
JP2016035684A (ja) 情報管理システム、情報管理方法、及び情報管理プログラム
Wang et al. Hypergraph index: an index for context-aware nearest neighbor query on social networks
Zhou et al. HDKV: supporting efficient high‐dimensional similarity search in key‐value stores
Al-Ghezi Universal Workload-based Graph Partitioning and Storage Adaption for Distributed RDF Stores
Zhang et al. Extending semantic sensor networks with QueryML
Comito et al. Selectivity-based XML query processing in structured peer-to-peer networks
CN104699848B (zh) 受限Web数据库的数据抽取方法及装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150728

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160614

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160615

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160620

R150 Certificate of patent or registration of utility model

Ref document number: 5957411

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees