(57)【要約】【課題】ペナルティの算出に必要な計算量を低減して新規データの挿入処理を高速に行えるようにし、かつ検索時に辿るべきノード数を抑制して検索効率を高める。【解決手段】データ集合と、UBI-Tree構造と、ペナルティの算出に使用する属性を予め定義した着目属性リストとを予め記憶ユニット３に記憶しておき、上記UBI-Tree構造中に新規データを挿入する際に、当該新規データが有する属性のうち、上記着目属性リストに定義された属性に該当する属性のみを用いてペナルティを算出し、上記新規データの挿入を行うようにしている。また、次元抑制ペナルティ無効化フラグを記憶ユニット３にさらに記憶しておき、当該フラグがＯＮに設定されている場合には当該ノードに含まれる属性種類数をペナルティとして用いずに当該ノードが検索される確率のみをペナルティとして用いるようにしている。【選択図】図１
2014219865.tif 000002
【特許請求の範囲】
【請求項１】
属性とその属性値とからなる組を少なくとも１つ有するデータの集合を、UBI-Tree構造により記憶し管理するデータ索引装置であって、
前記データ集合と、前記UBI-Tree構造と、ペナルティの算出に使用する属性を予め定義した着目属性リストとを少なくとも記憶する木構造情報記憶手段と、
前記UBI-Tree構造中に新規データを挿入する際に、当該新規データが有する属性のうち、前記着目属性リストに定義された属性に該当する属性のみを用いてペナルティを算出し、前記新規データの挿入を行うデータ挿入手段と
を具備することを特徴とするデータ索引装置。
【請求項２】
前記木構造情報記憶手段は、対象ノードに含まれる属性種類数をペナルティとして用いるか否かを指定する次元抑制ペナルティ無効化フラグをさらに記憶し、
前記データ挿入手段は、前記UBI-Tree構造中に新規データを挿入する際に、前記次元抑制ペナルティ無効化フラグを参照し、当該フラグがオンに設定されている場合には、対象ノードに含まれる属性種類数と、対象ノードが検索される確率のうち、対象ノードが検索される確率のみをペナルティとして用いてその値を算出し、前記フラグがオフに設定されている場合には前記対象ノードに含まれる属性種類数と前記対象ノードが検索される確率の両方をペナルティとして用いてその値を算出する
ことを特徴とする請求項１記載のデータ索引装置。
【請求項３】
属性とその属性値とからなる組を少なくとも１つ有するデータの集合を、UBI-Tree構造により記憶し管理する装置が実行するデータ索引方法であって、
前記データ集合と、前記UBI-Tree構造と、ペナルティの算出に使用する属性を予め定義した着目属性リストとを少なくとも木構造情報記憶手段に記憶させる過程と、
前記UBI-Tree構造中に新規データを挿入する際に、前記着目属性リストを読み出し、前記新規データが有する属性のうち、前記読み出された着目属性リストに定義された属性に該当する属性のみを用いてペナルティを算出し、その算出結果をもとに前記新規データの挿入を行う過程と
を具備することを特徴とするデータ索引方法。
【請求項４】
前記記憶させる過程は、対象ノードに含まれる属性種類数をペナルティとして用いるか否かを指定する次元抑制ペナルティ無効化フラグをさらに記憶させ、
前記新規データの挿入を行う過程は、前記UBI-Tree構造中に新規データを挿入する際に、前記次元抑制ペナルティ無効化フラグを参照し、当該フラグがオンに設定されている場合には、対象ノードに含まれる属性種類数と、対象ノードが検索される確率のうち、対象ノードが検索される確率のみをペナルティとして用いてその値を算出し、前記フラグがオフに設定されている場合には前記対象ノードに含まれる属性種類数と前記対象ノードが検索される確率の両方をペナルティとして用いてその値を算出する
ことを特徴とする請求項３記載のデータ索引方法。
【請求項５】
請求項１又は２に記載のデータ索引装置が具備するデータ挿入手段による処理を、前記データ索引装置が備えるコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、木構造索引を用いてデータの挿入及び検索を行うデータ索引装置、データ索引方法及びプログラムに関する。
【背景技術】
【０００２】
従来、データベース技術分野において、検索を高速化するための技術としてB-TreeやR-Treeなど木構造をもつ索引技術が種々提案されている。その１つとして、センサの計測データのような情報、すなわちセンサ情報などの多様な属性と属性値の組（key-value pairとも呼ばれる）を１つ以上含むデータに対する索引技術として、UBI-Tree（特許文献１）がある。UBI-Treeを使用すると、例えば「センサＩＤ＝１、時間＝３、温度＝２０」のようにセンサIDと時間と温度という３つの属性を含むデータと、「センサＩＤ＝３、時間＝７、照度＝６、音量＝４」のようにセンサＩＤと時間と照度と音量という４つの属性を含むデータを１つの索引に効率的に索引付けすることができる。
【０００３】
ところで、UBI-Treeにおいては、新規データの索引付けを行う際、つまりUBI-Treeの木構造に対して新規データの挿入を行う際に、他の多くの木構造の索引技術と同様に、ルートノードから、挿入先ノード選択アルゴリズムに基づいて似たデータを保持する子ノードを選択しながらノードを辿り、辿り着いたリーフノードに新規データを保持させる。ここで、似たデータとは、新規データとの間で属性の種類やその属性値が互いに近いデータを指す。
【０００４】
また、UBI-Treeの木構造に新規データを挿入することで、保持するデータの数、あるいは保持する子ノードの数が上限を越えるノードが発生した場合には、ノード分割アルゴリズムに基づいてノードを２つに分割し、この分割された２つのノードにデータまたは子ノードを分配する。このとき、似たデータ同士、あるいは似たデータを下位に保持する子ノード同士を同じノードに分配する。このようにすることで、互いに似たデータを同じリーフノード、あるいは同じ部分木に分類して保持することが可能となる。これにより、検索では類似したデータを取得するための条件が設定されることが多いため、検索条件に合致するデータが１つのリーフノード、あるいは１つの部分木に集まって存在することとなり、データが大量に存在する場合でも、特定のノードだけを辿り、効率的に検索条件に合致するデータを検索することができる。
【０００５】
上記挿入先ノードの選択アルゴリズムとノード分割アルゴリズムは、R-TreeにおいてはそれぞれChooseSubtree、Splitと呼ばれる。また、両アルゴリズムともペナルティと呼ばれる指標を用いる。挿入先ノード選択アルゴリズムは、新規データを挿入した際に、ペナルティの増分が最も少ないノードを選択するアルゴリズムである。またノード分割アルゴリズムは、分割後の２つのノードのペナルティの和が最も小さくなる分割方法を行うアルゴリズムである。
【０００６】
UBI-Treeにおいては、ペナルティとして「当該ノードが検索される確率」または「当該ノードに含まれる属性種類数」、あるいはその組合せが用いられる。「当該ノードが検索される確率」をペナルティとして用いた場合、挿入先ノード選択アルゴリズムまたはノード分割アルゴリズムにおけるペナルティを小さく抑えることで、検索時に辿るべきノード数を小さくし、検索効率を高めることができる。また、「当該ノードに含まれる属性種類数」をペナルティとして用いた場合、同様にペナルティを小さく抑えることで、検索条件に指定された属性の種類に基づき検索時に辿るべきノード数を小さくし、検索効率を高めることができる。「当該ノードが検索される確率」と「当該ノードに含まれる属性種類数」の組合せをペナルティに用いた場合、両方の効果が期待できる。「当該ノードが検索される確率」は、それまでに挿入されたデータの統計情報から算出する。該統計情報は属性表に記録されており、該属性表には各属性について、挿入したデータ内での出現頻度や対応する属性値の最大値、最小値が記録されている。新規データを挿入するたびに該属性表は更新される。「当該ノードが検索される確率」は、該属性表を用いて、次式で算出される。  
当該ノードが検索される確率＝ΣXi Yi   （全属性集合Aに対し、i∈A）  
i
但し、Xi は属性i で検索された場合に当該ノードが検索される確率、Yi は検索条件に属性i が用いられる確率を示す。
【０００７】
また、「当該ノードが検索される確率」と「当該ノードに含まれる属性種類数」の組合せがペナルティに用いられる場合には、例えば先ず「当該ノードに含まれる属性種類数」をペナルティとして挿入先ノード選択アルゴリズムを適用し、それでも挿入先ノードを１つに絞り込むことができない場合に、さらに「当該ノードが検索される確率」をペナルティとして挿入先ノード選択アルゴリズムを適用し、複数の候補の中から挿入先ノードを１つに絞り込めば良い。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１１−１７０４６１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ところが、従来のUBI-Treeにおいては以下のような解決すべき課題があった。  
すなわち、従来のUBI-Treeは、ペナルティとして用いる「当該ノードが検索される確率」を算出する際に、UBI-Treeに挿入されたデータのすべての属性を考慮して計算を行っている。このため、すべての属性について計算することはそれだけ計算量が大きくなり、これによりデータ挿入処理にそれだけ多くの時間を必要とする。
【００１０】
また、従来のUBI-Treeは、それまでに挿入されたデータの統計情報から「当該ノードが検索される確率」の予測値を算出している。このため、予測値は必ずしも真の値と同じではなく、予測値と真の値の間に誤差がある場合には、検索効率の劣化が発生してしまう。
【００１１】
さらに、従来のUBI-Treeでは、ペナルティとして「当該ノードに含まれる属性種類数」と「当該ノードが検索される確率」が組み合わされて用いられる場合に、挿入されたデータの多くが含む属性を検索条件とする検索に対して「当該ノードに含まれる属性種類数」をペナルティとして各ノードに含まれる属性種類数を小さくしても、検索条件に指定された属性の種類に基づき検索時に辿るべきノード数を小さくすることができず、検索効率が劣化する。
【００１２】
この発明は上記事情に着目してなされたもので、その目的とするところは、ペナルティの算出に必要な計算量を低減して新規データの挿入処理を高速に行えるようにし、かつ検索時に辿るべきノード数を抑制して検索効率を高めたデータ索引装置、データ索引方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１３】
上記目的を達成するためにこの発明の第１の観点は、属性とその属性値とからなる組を少なくとも１つ有するデータの集合を、UBI-Tree構造により記憶し管理するデータ索引装置にあって、上記データ集合と、上記UBI-Tree構造と、ペナルティの算出に使用する属性を予め定義した着目属性リストとを少なくとも記憶しておき、上記UBI-Tree構造中に新規データを挿入する際に、当該新規データが有する属性のうち、上記着目属性リストに定義された属性に該当する属性のみを用いてペナルティを算出し、上記新規データの挿入を行うようにしたものである。
【００１４】
また、この発明の第２の観点は、対象ノードに含まれる属性種類数をペナルティとして用いるか否かを指定する次元抑制ペナルティ無効化フラグをさらに記憶しておき、上記UBI-Tree構造中に新規データを挿入する際に、上記次元抑制ペナルティ無効化フラグを参照し、当該フラグがオンに設定されている場合には、対象ノードに含まれる属性種類数と、対象ノードが検索される確率のうち、対象ノードが検索される確率のみをペナルティとして用いてその値を算出し、上記フラグがオフに設定されている場合には上記対象ノードに含まれる属性種類数と上記対象ノードが検索される確率の両方をペナルティとして用いてその値を算出するようにしたものである。
【発明の効果】
【００１５】
この発明の第１の観点によれば、UBI-Tree構造中に新規データを挿入する際に、当該新規データが有する属性のうち、予め記憶しておいた着目属性リストに定義された属性に該当する属性のみを用いてペナルティが算出される。一般に、検索条件に用いる属性集合は事前に分かっていることが多い。したがって、このような場合に検索条件に用いる属性集合を着目属性リストに定義しておけば、検索精度を維持した上で、新規データが有するすべての属性についてペナルティを算出する場合に比べペナルティの計算量を減らすことができ、これにより新規データの挿入に要する時間を短縮すると共に装置の処理負荷を軽減することが可能となる。
【００１６】
この発明の第２の観点によれば、UBI-Tree構造中に新規データを挿入する際に、予め記憶しておいた次元抑制ペナルティ無効化フラグがオンに設定されている場合には、対象ノードに含まれる属性種類数をペナルティとして用いずに、対象ノードが検索される確率のみをペナルティとして用いてペナルティの計算が行われる。先に述べたように、検索条件に用いる属性集合は事前に分かっていることが多い。そしてその属性が、挿入対象のデータの多くが含む属性である場合には、対象ノードに含まれる属性種類数を次元抑制ペナルティ無効化フラグにより事前に無効化しておけば、検索精度を維持した上でペナルティの計算量を減らすことができ、これにより新規データの挿入に要する時間を短縮すると共に装置の処理負荷を軽減することが可能となる。
【００１７】
すなわちこの発明の第１及び第２の観点によれば、ペナルティの算出に必要な計算量が低減されて新規データの挿入処理を高速に行えるようになり、かつ検索時に辿るべきノード数が抑制されて検索効率を高めることが可能なデータ索引装置、データ索引方法及びプログラムを提供することができる。
【図面の簡単な説明】
【００１８】
【図１】この発明の一実施形態に係るデータ索引装置の機能構成を示すブロック図。
【図２】図１に示したデータ索引装置の記憶ユニットに記憶されるデータの一例を示す図。
【図３】図１に示したデータ索引装置の記憶ユニットに記憶される木構造情報の一例を示す図。
【図４】図１に示したデータ索引装置の記憶ユニットに記憶される属性表情報の一例を示す図。
【図５】図１に示したデータ索引装置の記憶ユニットに記憶される着目属性リスト情報の一例を示す図。
【図６】図１に示したデータ索引装置の記憶ユニットに記憶される次元抑制ペナルティフラグの一例を示す図。
【図７】新規挿入対象のデータの一例を示す図。
【図８】データの新規挿入に伴い更新された属性表情報の一例を示す図。
【発明を実施するための形態】
【００１９】
以下、図面を参照してこの発明に係わる実施形態を説明する。  
［一実施形態］
図１は、この発明の一実施形態に係るデータ索引装置の機能構成を示すブロック図である。  
本実施形態のデータ索引装置は、例えばデータベースサーバからなり、制御ユニット１と、通信インタフェースユニット２と、記憶ユニット３を備えている。通信インタフェースユニット２は、ネットワークＮＷで規定される通信プロトコルに従い、例えば図示しないセンサ群との間でその計測データを受信する機能を有する。
【００２０】
記憶ユニット３は、記憶媒体として例えばＨＤＤ（Hard Disc Drive）またはＳＳＤ（Solid State Drive）を使用したもので、この発明の一実施形態を実現する上で必要な木構造情報を記憶する記憶領域として、データ集合記憶部３１と、木構造記憶部３２と、属性表記憶部３３と、着目属性リスト記憶部３４と、次元抑制ペナルティフラグ記憶部３５を備える。
【００２１】
データ集合記憶部３１には、上記通信インタフェースユニット２により受信された計測データの集合が記憶される。個々の計測データは、属性とその属性値とからなる組を少なくとも１つ有する。図２の２０１〜２０５は計測データの一例を示したものである。例えば、計測データ２０１は属性として「センサＩＤ」、「時間」、「温度」及び「湿度」を有し、その属性値としてそれぞれ「１」、「３」、「２０．３」及び「６０」を有する。また計測データ２０２は、属性として「センサＩＤ」、「時間」及び「照度」を有し、その属性値としてそれぞれ「３」、「７」及び「６」を有する。すなわち、計測データは、各々１つ以上の属性と属性値との組を持ち、また属性の数と種類はデータ間で異なり得る。
【００２２】
木構造記憶部３２には、上記データ集合をUBI-Treeにより索引付けした状態で管理するための木構造が記憶される。UBI-Treeの木構造は、「当該ノードが検索される確率」と「当該ノードに含まれる属性種類数」の組合せをペナルティとして用いる。図３はUBI-Treeの木構造の一例を示すもので、この例では複数のノード３０１〜３０６と、複数の計測データ２０１〜２０５とから構成される。計測データ２０１〜２０５は、図２に示したデータに対応する。
【００２３】
木の根元に位置するノード３０１はルートノードと呼ばれ、木の葉にあたるノード３０４〜３０６はリーフノードと呼ばれる。各ノード３０１〜３０６は他のノードあるいはデータへのポインタを保持する。例えば、ルートノード３０１はノード３０２へのポインタとノード３０３へのポインタを保持する。このことを単にノード３０１は子ノード３０２を保持すると表現する。ポインタにより接続されたノード間には親子関係があると見なされる。例えばルートノード３０１に対してノード３０２は子ノードと呼ばれる。逆に、ノード３０２に対してルートノード３０１は親ノードと呼ばれる。また、各ノードが保持する子ノードあるいはデータの数の上限値は「２」に設定されている。
【００２４】
なお、図３では図示を省略しているが、親ノードは各子ノードについて、当該子ノードの下位に存在するデータに関する範囲を表す情報を保持している。例えば、ルートノード３０１は、子ノード３０２以下に対し「センサＩＤ」が１〜１０、「時間」が３〜１０、「温度」が２０．３〜２１．１、「湿度」が６０〜９０のデータが存在している、という情報を保持している。同様に、ルートノード３０１は子ノード３０３以下に存在しているデータの範囲情報も保持している。検索を行う際には、当該範囲情報を用いて、検索条件を満たすノードだけを辿ることにより、検索条件を満たすデータを効率的に発見することが可能である。
【００２５】
属性表記憶部３３には、上記データ集合記憶部３１に記憶された計測データの集合が持つ属性の出現頻度、最小値及び最大値を表す情報が記憶される。図４はその一例を示すもので、図２に示したデータ集合の属性を表に表した場合を例示している。
着目属性リスト記憶部３４には、上記データ集合記憶部３１に新規データを挿入する際に、「当該ノードが検索される確率」をペナルティとして算出する場合の、算出対象とする属性のリストが予め記憶されている。図５はその一例を示すもので、この例では「時間」及び「温度」を着目属性として定義した場合を示している。
【００２６】
次元抑制ペナルティ無効化フラグ記憶部３５には、次元抑制ペナルティ無効化フラグの状態（ＯＮ／ＯＦＦ）が予め記憶される。次元抑制ペナルティ無効化フラグとは、「当該ノードに含まれる属性種類数」のことであり、これを無効化するとは「当該ノードが検索される確率」と「当該ノードに含まれる属性種類数」の組合せをペナルティとしている場合に、「当該ノードが検索される確率」だけをペナルティとすることを意味する。図６は、次元抑制ペナルティ無効化フラグがＯＮに設定された状態を例示している。
【００２７】
制御ユニット１は、例えばＣＰＵ（Central Processing Unit）を備え、この発明の一実施形態を実現するために必要な制御機能として、データ検索部１１と、データ挿入部１２を有している。なお、これらのデータ検索部１１及びデータ挿入部１２は、何れも図示しないプログラムメモリに格納されたプログラムを上記ＣＰＵに実行させることにより実現される。
【００２８】
データ検索部１１は、図示しない検索元の装置から送信されたデータ検索要求がネットワークＮＷを介して通信インタフェースユニット２で受信された場合に、当該受信されたデータ検索要求により指定された検索条件と、上記木構造記憶部３２に記憶された木構造情報、及び属性表記憶部３３に記憶された属性表情報に基づいて、ルートノード３０１から子ノード３０２，３０３及びリーフノード３０４〜３０６を順次辿って計測データを特定する。そして、この特定された計測データをデータ集合記憶部３１から読み出し、この読み出された計測データを通信インタフェース２からネットワークＮＷを介して要求元の装置へ返送する処理を行う。
【００２９】
データ挿入部１２は、以下のような処理機能を有する。  
(1) 図示しないセンサから送信された新規計測データがネットワークＮＷを介して通信インタフェースユニット２で受信された場合に、当該受信された新規計測データが持つ属性の種類のうち、着目属性リスト記憶部３４に記憶された着目属性リストに含まれる属性のみからペナルティを計算する。そして、この計算されたペナルティと、上記木構造記憶部３２に記憶された木構造情報に基づいてノードを辿り、上記新規計測データを挿入すべきノードを特定する処理。
【００３０】
(2) 上記ペナルティを算出する際に、次元抑制ペナルティ無効化フラグ記憶部３５に記憶されている次元抑制ペナルティ無効化フラグを参照し、当該フラグがＯＮであれば「当該ノードに含まれる属性種類数」をペナルティとして用いずに「当該ノードが検索される確率」のみをペナルティとして計算する処理。
【００３１】
次に、以上のように構成されたデータ索引装置ＩＵの動作を説明する。  
ここでは、次元抑制ペナルティ無効化フラグが「ＯＮ」に設定され、さらに着目属性リストには「時間」と「温度」が記述されているものとする。なお、記憶ユニット３の木構造記憶部３２には図３に示すUBI-Tree構造が、また属性表記憶部３３には図４に示す属性表がそれぞれ記憶されているものとして説明を行う。
【００３２】
いま、図示しないセンサから新たな計測データが送信され、この新規計測データがネットワークＮＷを介して通信インタフェースユニット２で受信されたとする。図７に、このとき受信された新規計測データを示す。
【００３３】
上記新規計測データが受信されると、制御ユニットＩＵはデータ挿入部１２を起動し、このデータ挿入部１２の制御の下で以下のようなデータ挿入処理を実行する。すなわち、先ず上記受信された新規計測データに基づいて、属性表記憶部３３に記憶された属性表を更新する。例えば、受信された新規計測データは属性として「センサＩＤ」、「時間」、「湿度」、「照度」、「音量」を含むため、図４に示す更新前の属性表の該当する行の出現頻度がそれぞれ“１”増加され、さらに「時間」、「照度」、「音量」の値は既存のデータ値よりも大きいため、対応する属性の最大値がそれぞれ更新される。図８はこの更新後の属性表を示す。
【００３４】
次に、木構造のルートノード３０１から、挿入先ノード選択アルゴリズムを用いながら挿入先のノードを選択していく。このとき、次元抑制ペナルティ無効化フラグ記憶部３５に記憶された次元抑制ペナルティ無効化フラグを調べる。そして、当該フラグがＯＮに設定されているかＯＦＦに設定されているかを判定し、この判定結果に応じて「当該ノードに含まれる属性種類数」と「当該ノードが検索される確率」の両方をペナルティとするか、或いは「当該ノードが検索される確率」だけをペナルティとするかを決定する。また、「当該ノードが検索される確率」を算出する際には、上記受信された新規計測データに含まれる属性のうち、上記着目属性リスト記憶部３３に記憶されている着目属性リストに記述された着目属性についてのみペナルティを算出する。
【００３５】
例えば、いま先に述べたように次元抑制ペナルティ無効化フラグがＯＮに設定され、着目属性リストには「時間」と「温度」が記述されているとする。この場合、「当該ノードに含まれる属性種類数」はペナルティから除外され、「当該ノードが検索される確率」のみがペナルティとして用いられる。また、「当該ノードが検索される確率」を計算する際に、上記受信された新規計測データには属性として「時間」、「湿度」、「照度」、「音量」が含まれているものの、着目属性リストには上記したように「時間」と「温度」のみが記述されているため、「時間」についてのみ「当該ノードが検索される確率」がペナルティとして算出される。このときの「当該ノードが検索される確率」Xと、検索条件として「時間」を用いたときの確率Yは、次式で算出される。  
当該ノードが検索される確率＝XY
すなわち、右辺はすべての属性について足し合わせるのではなく、ペナルティの算出に用いる属性である「時間」についてのみ足し合わせたものとなる。
【００３６】
データ挿入部１２は、ルートノード３０１において、挿入先ノード選択アルゴリズムを用いて挿入先のノードを以下のように選択する。すなわち、上記新規計測データをノード３０３に挿入する場合を仮定すると、ノード３０３に含まれる「時間」の値が元々「７〜９」であったものが、「７〜１１」に変化する。すなわち、値の範囲は「２」だけ広がる。これに対し、新規計測データをノード３０２に挿入する場合を仮定すると、ノード３０２に含まれる「時間」の値が元々「３〜１０」であったものが、「３〜１１」に変化する。すなわち、値の範囲は「１」だけ広がる。ここで、「当該ノードが検索される確率」をペナルティとする場合には、値の範囲の広がりが小さい方が挿入先として選択される。したがって、この場合には「時間」の値の範囲の広がりが小さいノード３０２が挿入先として選択される。
【００３７】
次に、ノード３０２において、同様に挿入先ノード選択アルゴリズムを用いて挿入先のノードを選択する。この場合、「時間」の値の範囲の広がりはノード３０４よりもノード３０５の方が小さい。このため、ノード３０５が挿入先のノードとして選択され、このノード３０５に上記新規計測データが挿入される。
【００３８】
但し、上記ノード３０５に上記新規計測データを挿入すると、ノード３０５が保持するデータ数は「３」となってしまい、各ノードが保持する子ノードあるいはデータの数の上限値「２」を超えてしまう。そこで、ノード分割アルゴリズムによりノード３０５を分割する。なお、ノードを分割する際にも、先に述べた挿入先ノード選択アルゴリズムと同様に、次元抑制ペナルティ無効化フラグを調べ、かつ「当該ノードが検索される確率」を算出する際に、着目属性リストに記述されている属性のみを算出対象とする。
【００３９】
一方、上記新規計測データを挿入する際に、次元抑制ペナルティ無効化フラグがＯＦＦに設定されていたとすると、「当該ノードに含まれる属性種類数」がペナルティとして使用される。そして、挿入先ノード選択アルゴリズムにより、ルートノード３０１に接続された２つのノード３０２，３０２ついて上記「当該ノードに含まれる属性種類数」が計算される。
【００４０】
例えば、いま新規計測データをノード３０３に挿入するものと仮定すると、ノード３０３に含まれる属性は元々「センサＩＤ」、「時間」、「照度」、「音量」の４種類であったものが、「センサＩＤ」、「時間」、「照度」、「音量」、「湿度」の５種類となり、属性種類数が「１」だけ増加する。これに対し、新規計測データをノード３０２に挿入するものと仮定すると、ノード３０２に含まれる属性が元々「センサＩＤ」、「時間」、「温度」、「湿度」の４種類であったものが、「センサＩＤ」、「時間」、「温度」、「湿度」、「照度」、「音量」の６種類となり、属性種類数が「２」増加する。このため、この場合には挿入先として属性の種類数の増加幅が少ないノード３０３が選択される。
【００４１】
このように、上記挿入先として選択されたノード３０３に連なるノードに新規計測データを挿入すれば、「音量」の属性をもつデータはノード３０３に連なるノードに絞られるため、「音量」を検索条件に用いた場合にはノード３０３以下の部分木のみを検索すれば良くなり、検索効率が向上する。
【００４２】
これに対し、挿入先としてノード３０２を選択した場合、「音量」の属性を持つ計測データがノード３０２に連なるノードとノード３０３に連なるノードに分散してしまうため、「音量＝０〜１０」を検索条件に用いた場合に、ノード３０２に連なる部分木とノード３０３に連なる部分木の両方を検索しなければならず、検索効率は低下する。
【００４３】
しかし、挿入先としてノード３０３を選択した場合、ノード３０２は「時間」の値が「３〜１０」の計測データを傘下のノードに保持し、ノード３０３は「時間」の値が「７〜１１」の計測データを傘下のノードに保持することになる。このため、例えば「時間＝１０」を検索条件に用いた場合、両方の部分木を検索する必要が生じる。これに対し、挿入先としてノード３０２を選択した場合には、「時間＝１０」という検索条件に対してノード３０２以下の部分木のみを検索すれば良い。このように、「音量＝０〜１０」のように、挿入されたすべての測定データのうち、一部のデータだけが保持する属性を検索条件とする場合には、「当該ノードに含まれる属性種類数」をペナルティとすることで検索効率が上がる。しかし、「時間」のように、多くのデータが保持する属性を検索条件とする場合には、「当該ノードに含まれる属性種類数」をペナルティとすることで検索効率が低下してしまう。したがって、多くのデータが保持する属性を検索条件とすることが多いことが事前に分かっている場合、本実施形態のように次元抑制ペナルティ無効化フラグをＯＮに設定しておき、「当該ノードに含まれる属性種類数」をペナルティとして使用しないようにすることで、検索効率を高めることが可能となる。
【００４４】
また、新規計測データを挿入する際に、ノード３０２において挿入先ノード選択アルゴリズムにより新規計測データに含まれるすべての属性を用いて「当該ノードが検索される確率」を算出すると、ノード３０５ではなくノード３０４が挿入先として選択される。そして、この選択されたノード３０４に新規計測データを挿入すると、「時間」の値の範囲は「３〜３」から「３〜１１」に増加して拡大幅が「８」になるものの、「センサＩＤ」は「１〜１」から「１〜２」へ増加するだけで拡大幅は「１」で済むことになる。また、「湿度」については値の範囲は増加しないで済む。逆に挿入先としてノード３０５を選択した場合、「時間」の値の範囲は「８〜１０」から「８〜１１」へ増加するだけで拡大幅は「１」で済むが、「センサＩＤ」や「湿度」の値の範囲の増加が大きくなる。
【００４５】
ルートノード３０１における挿入先ノードの選択アルゴリズムと同様に考えると、例えば「センサＩＤ」で検索する場合には、「センサＩＤ」の値の拡大幅が小さくなるように挿入先としてノード３０４を選択することで検索効率が向上する。一方、「時間」で検索する場合には、「時間」の値の拡大幅が小さくなるように挿入先としてノード３０５を選択することで検索効率が向上する。
【００４６】
したがって、検索条件に用いる属性が事前に分かっている場合には、本実施形態のように着目属性リスト記憶部３４に検索条件に用いる属性の種類を予め記憶しておき、新規計測データに含まれる属性のうち、上記着目属性リストに記述された属性だけを用いて「当該ノードが検索される確率」をペナルティとして算出することで、検索効率を高めることが可能となる。
【００４７】
［他の実施形態］
なお、この発明は上記実施形態に限定されるものではない。例えば、上記一実施形態では、各ノードが保持する子ノードあるいはデータの数の上限値は「２」に設定されているとしたが、これに限らず他の正数値に設定しても良い。
【００４８】
また、前記一実施形態では、ペナルティを計算する際に、着目属性リストを参照して、「当該ノードが検索される確率」の算出に用いる属性を選択したが、これに限らず、属性表を更新する際に、着目属性リストを参照して、当該着目属性リストに記述されていない属性は属性表に追記しない、というようにしても良い。このようにすることで、ペナルティを計算する際には、属性表に存在しない属性は着目属性リストに記述されていないため、属性表を参照するだけで「当該ノードが検索される確率」の算出に用いる属性を選択することが可能となる。また属性表に、１カラムを増やし、着目属性リストに記述されているかどうかを示すフラグを記憶させることとしても良い。このようにすることにより、属性表を参照するだけで「当該ノードが検索される確率」の算出に用いる属性を選択することが可能となる。
【００４９】
さらに、前記一実施形態では、挿入する新規計測データに含まれる属性のうち、着目属性リストに記述された属性のみを用いてペナルティを算出するようにしたが、挿入する計測データに含まれる属性のうち、着目属性リストに記述された属性以外の属性を用いてペナルティを算出するようにしても良い。このようにすると、「この属性では検索しない」ことが事前に分かっている場合に、着目属性リストに属性を記述しておくことでペナルティの算出に用いないようにすることが可能となる。
【００５０】
さらに、前記一実施形態では、次元抑制ペナルティ無効化フラグ及び着目属性リストを事前にそれぞれ次元抑制ペナルティ無効化フラグ記憶部３５及び着目属性記憶部３４に記憶させておくものとしたが、外部の保守端末等から書き換え可能としても良い。これにより、検索要求の変化に応じて、これらの設定を動的に変化させることが可能となる。
【００５１】
また、前記一実施形態ではデータとしてセンサにより得られた温度、湿度、照度、音量等の計測データを取り扱う場合を例にとって説明した。しかし、それに限らず電流や電圧値、流体の流量、物質の濃度、明度、騒音レベル、位置、加速度などの計測データを取り扱ってよく、さらにはセンサ以外の例えばＷｅｂやインターネットを経由して取得した情報であってもよい。また、それら値に加えて、センサの特性や状態、計測日時等を示すメタデータを含む情報を取り扱ってもよい。その他、データ索引装置の構成やデータ挿入処理の手順と処理内容等についても、この発明の要旨を逸脱しない範囲で種々変形して実施可能である。
【００５２】
要するにこの発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施形態に亘る構成要素を適宜組み合せてもよい。
【符号の説明】
【００５３】
ＩＵ…データ索引装置、ＮＷ…ネットワーク、１…制御ユニット、２…通信インタフェースユニット、３…記憶ユニット、１１…データ検索部、１２…データ挿入部、３１…データ集合記憶部、３２…木構造記憶部、３３…属性表記憶部、３４…着目属性リスト記憶部、３５…次元抑制ペナルティ無効化フラグ記憶部。
【図１】
2014219865.tif 000003
【図２】
2014219865.tif 000004
【図３】
2014219865.tif 000005
【図４】
2014219865.tif 000006
【図５】
2014219865.tif 000007
【図６】
2014219865.tif 000008
【図７】
2014219865.tif 000009
【図８】
2014219865.tif 000010